82ed285dacbe8bcb9e07b56c1bb78ac186e64a0d
[fms.git] / src / freenet / identityintroductionxml.cpp
1 #include "../../include/freenet/identityintroductionxml.h"\r
2 #include "../../include/freenet/freenetssk.h"\r
3 \r
4 #ifdef XMEM\r
5         #include <xmem.h>\r
6 #endif\r
7 \r
8 IdentityIntroductionXML::IdentityIntroductionXML()\r
9 {\r
10         Initialize();\r
11 }\r
12 \r
13 std::string IdentityIntroductionXML::GetXML()\r
14 {\r
15         Poco::AutoPtr<Poco::XML::Document> doc=new Poco::XML::Document;\r
16         //TiXmlDocument td;\r
17         //TiXmlDeclaration *tdec=new TiXmlDeclaration("1.0","UTF-8","");\r
18         Poco::XML::Element *root=doc->createElement("IdentityIntroduction");\r
19         //TiXmlElement *tid;\r
20         //TiXmlPrinter tp;\r
21 \r
22         doc->appendChild(root);\r
23         //td.LinkEndChild(tdec);\r
24         //tid=new TiXmlElement("IdentityIntroduction");\r
25         //td.LinkEndChild(tid);\r
26 \r
27         root->appendChild(XMLCreateCDATAElement(doc,"Identity",m_identity));\r
28         //tid->LinkEndChild(XMLCreateCDATAElement("Identity",m_identity));\r
29 \r
30         //td.Accept(&tp);\r
31         //return std::string(tp.CStr());\r
32         return GenerateXML(doc);\r
33 }\r
34 \r
35 void IdentityIntroductionXML::Initialize()\r
36 {\r
37         m_identity="";\r
38 }\r
39 \r
40 const bool IdentityIntroductionXML::ParseXML(const std::string &xml)\r
41 {\r
42         FreenetSSK ssk;\r
43         bool parsed=false;\r
44         Poco::XML::DOMParser dp;\r
45 \r
46         Initialize();\r
47 \r
48         try\r
49         {\r
50                 Poco::AutoPtr<Poco::XML::Document> doc=dp.parseString(FixCDATA(xml));\r
51                 Poco::XML::Element *root=XMLGetFirstChild(doc,"IdentityIntroduction");\r
52                 Poco::XML::Element *txt=NULL;\r
53 \r
54                 txt=XMLGetFirstChild(root,"Identity");\r
55                 if(txt)\r
56                 {\r
57                         if(txt->firstChild())\r
58                         {\r
59                                 m_identity=SanitizeSingleString(txt->firstChild()->getNodeValue());\r
60                         }\r
61                 }\r
62 \r
63                 ssk.SetPublicKey(m_identity);\r
64                 if(ssk.ValidPublicKey()==false)\r
65                 {\r
66                         return false;\r
67                 }\r
68 \r
69                 parsed=true;\r
70         }\r
71         catch(...)\r
72         {\r
73         }\r
74 \r
75         return parsed;\r
76 \r
77         /*\r
78         TiXmlDocument td;\r
79         td.Parse(xml.c_str());\r
80 \r
81         if(!td.Error())\r
82         {\r
83                 TiXmlText *txt;\r
84                 TiXmlHandle hnd(&td);\r
85 \r
86                 Initialize();\r
87 \r
88                 txt=hnd.FirstChild("IdentityIntroduction").FirstChild("Identity").FirstChild().ToText();\r
89                 if(txt)\r
90                 {\r
91                         m_identity=SanitizeSingleString(txt->ValueStr());\r
92                 }\r
93                 ssk.SetPublicKey(m_identity);\r
94                 if(ssk.ValidPublicKey()==false)\r
95                 {\r
96                         return false;\r
97                 }\r
98 \r
99                 return true;\r
100 \r
101         }\r
102         else\r
103         {\r
104                 return false;\r
105         }\r
106         */\r
107 \r
108 }\r