xmlsec-shim 1.2.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (969) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/README.md +2 -0
  4. data/Rakefile +2 -0
  5. data/ext/xmlsec/extconf.rb +14 -0
  6. data/lib/xmlsec-shim.rb +27 -0
  7. data/lib/xmlsec-shim/version.rb +5 -0
  8. data/vendor/xmlsec1-1.2.18/AUTHORS +8 -0
  9. data/vendor/xmlsec1-1.2.18/COPYING +105 -0
  10. data/vendor/xmlsec1-1.2.18/ChangeLog +1810 -0
  11. data/vendor/xmlsec1-1.2.18/Copyright +105 -0
  12. data/vendor/xmlsec1-1.2.18/HACKING +199 -0
  13. data/vendor/xmlsec1-1.2.18/INSTALL +38 -0
  14. data/vendor/xmlsec1-1.2.18/Makefile.am +186 -0
  15. data/vendor/xmlsec1-1.2.18/Makefile.in +1155 -0
  16. data/vendor/xmlsec1-1.2.18/NEWS +1 -0
  17. data/vendor/xmlsec1-1.2.18/README +15 -0
  18. data/vendor/xmlsec1-1.2.18/TODO +156 -0
  19. data/vendor/xmlsec1-1.2.18/aclocal.m4 +1197 -0
  20. data/vendor/xmlsec1-1.2.18/apps/Makefile.am +84 -0
  21. data/vendor/xmlsec1-1.2.18/apps/Makefile.in +694 -0
  22. data/vendor/xmlsec1-1.2.18/apps/cmdline.c +355 -0
  23. data/vendor/xmlsec1-1.2.18/apps/cmdline.h +89 -0
  24. data/vendor/xmlsec1-1.2.18/apps/crypto.c +396 -0
  25. data/vendor/xmlsec1-1.2.18/apps/crypto.h +70 -0
  26. data/vendor/xmlsec1-1.2.18/apps/xmlsec.c +3058 -0
  27. data/vendor/xmlsec1-1.2.18/config.guess +1502 -0
  28. data/vendor/xmlsec1-1.2.18/config.h.in +134 -0
  29. data/vendor/xmlsec1-1.2.18/config.sub +1714 -0
  30. data/vendor/xmlsec1-1.2.18/configure +17363 -0
  31. data/vendor/xmlsec1-1.2.18/configure.in +1633 -0
  32. data/vendor/xmlsec1-1.2.18/depcomp +630 -0
  33. data/vendor/xmlsec1-1.2.18/docs/Makefile.am +65 -0
  34. data/vendor/xmlsec1-1.2.18/docs/Makefile.in +721 -0
  35. data/vendor/xmlsec1-1.2.18/docs/api/Makefile.am +209 -0
  36. data/vendor/xmlsec1-1.2.18/docs/api/Makefile.in +664 -0
  37. data/vendor/xmlsec1-1.2.18/docs/api/chapters/compiling-and-linking.sgml +252 -0
  38. data/vendor/xmlsec1-1.2.18/docs/api/chapters/creating-templates.sgml +325 -0
  39. data/vendor/xmlsec1-1.2.18/docs/api/chapters/examples.sgml +102 -0
  40. data/vendor/xmlsec1-1.2.18/docs/api/chapters/init-and-shutdown.sgml +104 -0
  41. data/vendor/xmlsec1-1.2.18/docs/api/chapters/new-crypto.sgml +487 -0
  42. data/vendor/xmlsec1-1.2.18/docs/api/chapters/sign-and-encrypt.sgml +286 -0
  43. data/vendor/xmlsec1-1.2.18/docs/api/chapters/using-contexts.sgml +138 -0
  44. data/vendor/xmlsec1-1.2.18/docs/api/chapters/using-keys.sgml +26 -0
  45. data/vendor/xmlsec1-1.2.18/docs/api/chapters/using-keysmngr.sgml +592 -0
  46. data/vendor/xmlsec1-1.2.18/docs/api/chapters/using-transforms.sgml +67 -0
  47. data/vendor/xmlsec1-1.2.18/docs/api/chapters/using-x509-certs.sgml +197 -0
  48. data/vendor/xmlsec1-1.2.18/docs/api/chapters/verify-and-decrypt.sgml +265 -0
  49. data/vendor/xmlsec1-1.2.18/docs/api/home.png +0 -0
  50. data/vendor/xmlsec1-1.2.18/docs/api/images/diagrams.sxd +0 -0
  51. data/vendor/xmlsec1-1.2.18/docs/api/images/encryption-structure.png +0 -0
  52. data/vendor/xmlsec1-1.2.18/docs/api/images/key.png +0 -0
  53. data/vendor/xmlsec1-1.2.18/docs/api/images/keysmngr.png +0 -0
  54. data/vendor/xmlsec1-1.2.18/docs/api/images/sign-enc-model.png +0 -0
  55. data/vendor/xmlsec1-1.2.18/docs/api/images/signature-structure.png +0 -0
  56. data/vendor/xmlsec1-1.2.18/docs/api/images/structure.png +0 -0
  57. data/vendor/xmlsec1-1.2.18/docs/api/images/transform.png +0 -0
  58. data/vendor/xmlsec1-1.2.18/docs/api/images/transforms-chain.png +0 -0
  59. data/vendor/xmlsec1-1.2.18/docs/api/images/verif-dec-model.png +0 -0
  60. data/vendor/xmlsec1-1.2.18/docs/api/index.html +307 -0
  61. data/vendor/xmlsec1-1.2.18/docs/api/index.sgml +43 -0
  62. data/vendor/xmlsec1-1.2.18/docs/api/left.png +0 -0
  63. data/vendor/xmlsec1-1.2.18/docs/api/right.png +0 -0
  64. data/vendor/xmlsec1-1.2.18/docs/api/up.png +0 -0
  65. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-app.html +1525 -0
  66. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-base64.html +357 -0
  67. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-bn.html +705 -0
  68. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-buffer.html +603 -0
  69. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-custom-keys-manager.html +475 -0
  70. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-decrypt-with-keys-mngr.html +396 -0
  71. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-decrypt-with-signle-key.html +326 -0
  72. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-dl.html +245 -0
  73. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-encrypt-dynamic-template.html +386 -0
  74. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-encrypt-template-file.html +364 -0
  75. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-encrypt-with-session-key.html +495 -0
  76. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-encryption-klasses.html +101 -0
  77. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-errors.html +744 -0
  78. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-examples-sign-dynamimc-template.html +406 -0
  79. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-examples-sign-template-file.html +388 -0
  80. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-examples-sign-x509.html +447 -0
  81. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-examples.html +119 -0
  82. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-gcrypt-app.html +578 -0
  83. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-gcrypt-crypto.html +1128 -0
  84. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-gcrypt-ref.html +107 -0
  85. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-gcrypt.sgml +15 -0
  86. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-gnutls-app.html +576 -0
  87. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-gnutls-crypto.html +1076 -0
  88. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-gnutls-ref.html +107 -0
  89. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-gnutls.sgml +15 -0
  90. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-index.html +1570 -0
  91. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-index.sgml +1471 -0
  92. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-io.html +226 -0
  93. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-keyinfo.html +700 -0
  94. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-keys.html +1161 -0
  95. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-keysdata.html +2067 -0
  96. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-keysmngr.html +743 -0
  97. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-list.html +643 -0
  98. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-membuf.html +143 -0
  99. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-mscrypto-app.html +747 -0
  100. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-mscrypto-certkeys.html +252 -0
  101. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-mscrypto-crypto.html +1153 -0
  102. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-mscrypto-keysstore.html +209 -0
  103. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-mscrypto-ref.html +113 -0
  104. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-mscrypto-x509.html +478 -0
  105. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-mscrypto.sgml +21 -0
  106. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-nodeset.html +542 -0
  107. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-compiling-others.html +102 -0
  108. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-compiling-unix.html +223 -0
  109. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-compiling-windows.html +138 -0
  110. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-compiling.html +117 -0
  111. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-contexts.html +229 -0
  112. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-custom-keys-store.html +250 -0
  113. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-decrypt.html +205 -0
  114. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-dynamic-encryption-templates.html +240 -0
  115. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-dynamic-signature-templates.html +250 -0
  116. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-encrypt.html +223 -0
  117. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-include-files.html +141 -0
  118. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-init-shutdown.html +194 -0
  119. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-keys-manager-sign-enc.html +307 -0
  120. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-keys-mngr-verify-decrypt.html +179 -0
  121. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-keys.html +120 -0
  122. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-keysmngr.html +140 -0
  123. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-new-crypto-functions.html +151 -0
  124. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-new-crypto-key-stores.html +83 -0
  125. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-new-crypto-keys.html +103 -0
  126. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-new-crypto-klasses.html +217 -0
  127. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-new-crypto-sharing-results.html +125 -0
  128. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-new-crypto-simple-keys-mngr.html +102 -0
  129. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-new-crypto-skeleton.html +254 -0
  130. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-new-crypto-transforms.html +170 -0
  131. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-new-crypto.html +136 -0
  132. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-overview.html +102 -0
  133. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-sign-encrypt.html +120 -0
  134. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-sign-x509.html +176 -0
  135. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-sign.html +210 -0
  136. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-simple-keys-store.html +177 -0
  137. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-structure.html +115 -0
  138. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-templates.html +114 -0
  139. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-transforms.html +154 -0
  140. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-verify-decrypt.html +120 -0
  141. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-verify-x509.html +180 -0
  142. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-verify.html +210 -0
  143. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes-x509.html +114 -0
  144. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-notes.html +115 -0
  145. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-nss-app.html +740 -0
  146. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-nss-bignum.html +176 -0
  147. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-nss-crypto.html +978 -0
  148. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-nss-keysstore.html +209 -0
  149. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-nss-pkikeys.html +211 -0
  150. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-nss-ref.html +115 -0
  151. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-nss-x509.html +467 -0
  152. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-nss.sgml +23 -0
  153. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-openssl-app.html +800 -0
  154. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-openssl-bn.html +170 -0
  155. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-openssl-crypto.html +1329 -0
  156. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-openssl-evp.html +184 -0
  157. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-openssl-ref.html +113 -0
  158. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-openssl-x509.html +567 -0
  159. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-openssl.sgml +21 -0
  160. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-parser.html +223 -0
  161. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-ref.html +149 -0
  162. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-reference.html +106 -0
  163. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-signature-klasses.html +101 -0
  164. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-templates.html +1290 -0
  165. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-transforms.html +3059 -0
  166. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-verify-with-key.html +318 -0
  167. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-verify-with-keys-mngr.html +388 -0
  168. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-verify-with-restrictions.html +715 -0
  169. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-verify-with-x509.html +369 -0
  170. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-version.html +143 -0
  171. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-x509.html +181 -0
  172. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-xmldsig.html +853 -0
  173. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-xmlenc.html +584 -0
  174. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-xmlsec.html +300 -0
  175. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec-xmltree.html +1529 -0
  176. data/vendor/xmlsec1-1.2.18/docs/api/xmlsec.sgml +307 -0
  177. data/vendor/xmlsec1-1.2.18/docs/authors.html +59 -0
  178. data/vendor/xmlsec1-1.2.18/docs/bugs.html +106 -0
  179. data/vendor/xmlsec1-1.2.18/docs/c14n.html +73 -0
  180. data/vendor/xmlsec1-1.2.18/docs/documentation.html +65 -0
  181. data/vendor/xmlsec1-1.2.18/docs/download.html +115 -0
  182. data/vendor/xmlsec1-1.2.18/docs/faq.html +449 -0
  183. data/vendor/xmlsec1-1.2.18/docs/images/bart.gif +0 -0
  184. data/vendor/xmlsec1-1.2.18/docs/images/libxml2-logo.png +0 -0
  185. data/vendor/xmlsec1-1.2.18/docs/images/libxslt-logo.png +0 -0
  186. data/vendor/xmlsec1-1.2.18/docs/images/logo.gif +0 -0
  187. data/vendor/xmlsec1-1.2.18/docs/images/openssl-logo.png +0 -0
  188. data/vendor/xmlsec1-1.2.18/docs/images/xmlsec-logo.gif +0 -0
  189. data/vendor/xmlsec1-1.2.18/docs/index.html +109 -0
  190. data/vendor/xmlsec1-1.2.18/docs/news.html +545 -0
  191. data/vendor/xmlsec1-1.2.18/docs/related.html +165 -0
  192. data/vendor/xmlsec1-1.2.18/docs/xmldsig-verifier.html +138 -0
  193. data/vendor/xmlsec1-1.2.18/docs/xmldsig.html +646 -0
  194. data/vendor/xmlsec1-1.2.18/docs/xmlenc.html +464 -0
  195. data/vendor/xmlsec1-1.2.18/docs/xmlsec-man.html +291 -0
  196. data/vendor/xmlsec1-1.2.18/docs/xmlsec.xsl +194 -0
  197. data/vendor/xmlsec1-1.2.18/examples/Makefile +40 -0
  198. data/vendor/xmlsec1-1.2.18/examples/Makefile.w32 +88 -0
  199. data/vendor/xmlsec1-1.2.18/examples/README +126 -0
  200. data/vendor/xmlsec1-1.2.18/examples/binary.dat +1 -0
  201. data/vendor/xmlsec1-1.2.18/examples/decrypt1.c +223 -0
  202. data/vendor/xmlsec1-1.2.18/examples/decrypt2.c +293 -0
  203. data/vendor/xmlsec1-1.2.18/examples/decrypt3.c +372 -0
  204. data/vendor/xmlsec1-1.2.18/examples/deskey.bin +1 -0
  205. data/vendor/xmlsec1-1.2.18/examples/encrypt1-res.xml +13 -0
  206. data/vendor/xmlsec1-1.2.18/examples/encrypt1-tmpl.xml +13 -0
  207. data/vendor/xmlsec1-1.2.18/examples/encrypt1.c +219 -0
  208. data/vendor/xmlsec1-1.2.18/examples/encrypt2-doc.xml +9 -0
  209. data/vendor/xmlsec1-1.2.18/examples/encrypt2-res.xml +14 -0
  210. data/vendor/xmlsec1-1.2.18/examples/encrypt2.c +244 -0
  211. data/vendor/xmlsec1-1.2.18/examples/encrypt3-doc.xml +9 -0
  212. data/vendor/xmlsec1-1.2.18/examples/encrypt3-res.xml +27 -0
  213. data/vendor/xmlsec1-1.2.18/examples/encrypt3.c +340 -0
  214. data/vendor/xmlsec1-1.2.18/examples/mywin32make.bat +18 -0
  215. data/vendor/xmlsec1-1.2.18/examples/rootcert.pem +25 -0
  216. data/vendor/xmlsec1-1.2.18/examples/rsacert.pem +83 -0
  217. data/vendor/xmlsec1-1.2.18/examples/rsakey.pem +27 -0
  218. data/vendor/xmlsec1-1.2.18/examples/rsapub.pem +9 -0
  219. data/vendor/xmlsec1-1.2.18/examples/sign1-res.xml +31 -0
  220. data/vendor/xmlsec1-1.2.18/examples/sign1-tmpl.xml +27 -0
  221. data/vendor/xmlsec1-1.2.18/examples/sign1.c +212 -0
  222. data/vendor/xmlsec1-1.2.18/examples/sign2-doc.xml +9 -0
  223. data/vendor/xmlsec1-1.2.18/examples/sign2-res.xml +30 -0
  224. data/vendor/xmlsec1-1.2.18/examples/sign2.c +248 -0
  225. data/vendor/xmlsec1-1.2.18/examples/sign3-doc.xml +9 -0
  226. data/vendor/xmlsec1-1.2.18/examples/sign3-res.xml +58 -0
  227. data/vendor/xmlsec1-1.2.18/examples/sign3.c +261 -0
  228. data/vendor/xmlsec1-1.2.18/examples/verify1.c +215 -0
  229. data/vendor/xmlsec1-1.2.18/examples/verify2.c +285 -0
  230. data/vendor/xmlsec1-1.2.18/examples/verify3.c +266 -0
  231. data/vendor/xmlsec1-1.2.18/examples/verify4-bad-res.xml +90 -0
  232. data/vendor/xmlsec1-1.2.18/examples/verify4-bad-tmpl.xml +54 -0
  233. data/vendor/xmlsec1-1.2.18/examples/verify4-res.xml +80 -0
  234. data/vendor/xmlsec1-1.2.18/examples/verify4-tmpl.xml +47 -0
  235. data/vendor/xmlsec1-1.2.18/examples/verify4.c +309 -0
  236. data/vendor/xmlsec1-1.2.18/examples/xkms-server.c +839 -0
  237. data/vendor/xmlsec1-1.2.18/examples/xmldsigverify.c +381 -0
  238. data/vendor/xmlsec1-1.2.18/include/Makefile.am +4 -0
  239. data/vendor/xmlsec1-1.2.18/include/Makefile.in +656 -0
  240. data/vendor/xmlsec1-1.2.18/include/xmlsec/Makefile.am +63 -0
  241. data/vendor/xmlsec1-1.2.18/include/xmlsec/Makefile.in +767 -0
  242. data/vendor/xmlsec1-1.2.18/include/xmlsec/app.h +424 -0
  243. data/vendor/xmlsec1-1.2.18/include/xmlsec/base64.h +67 -0
  244. data/vendor/xmlsec1-1.2.18/include/xmlsec/bn.h +99 -0
  245. data/vendor/xmlsec1-1.2.18/include/xmlsec/buffer.h +108 -0
  246. data/vendor/xmlsec1-1.2.18/include/xmlsec/crypto.h +75 -0
  247. data/vendor/xmlsec1-1.2.18/include/xmlsec/dl.h +56 -0
  248. data/vendor/xmlsec1-1.2.18/include/xmlsec/errors.h +504 -0
  249. data/vendor/xmlsec1-1.2.18/include/xmlsec/exports.h +111 -0
  250. data/vendor/xmlsec1-1.2.18/include/xmlsec/gcrypt/Makefile.am +13 -0
  251. data/vendor/xmlsec1-1.2.18/include/xmlsec/gcrypt/Makefile.in +564 -0
  252. data/vendor/xmlsec1-1.2.18/include/xmlsec/gcrypt/app.h +96 -0
  253. data/vendor/xmlsec1-1.2.18/include/xmlsec/gcrypt/crypto.h +460 -0
  254. data/vendor/xmlsec1-1.2.18/include/xmlsec/gcrypt/symbols.h +104 -0
  255. data/vendor/xmlsec1-1.2.18/include/xmlsec/gnutls/Makefile.am +14 -0
  256. data/vendor/xmlsec1-1.2.18/include/xmlsec/gnutls/Makefile.in +565 -0
  257. data/vendor/xmlsec1-1.2.18/include/xmlsec/gnutls/app.h +96 -0
  258. data/vendor/xmlsec1-1.2.18/include/xmlsec/gnutls/crypto.h +462 -0
  259. data/vendor/xmlsec1-1.2.18/include/xmlsec/gnutls/symbols.h +104 -0
  260. data/vendor/xmlsec1-1.2.18/include/xmlsec/gnutls/x509.h +110 -0
  261. data/vendor/xmlsec1-1.2.18/include/xmlsec/io.h +54 -0
  262. data/vendor/xmlsec1-1.2.18/include/xmlsec/keyinfo.h +285 -0
  263. data/vendor/xmlsec1-1.2.18/include/xmlsec/keys.h +278 -0
  264. data/vendor/xmlsec1-1.2.18/include/xmlsec/keysdata.h +837 -0
  265. data/vendor/xmlsec1-1.2.18/include/xmlsec/keysmngr.h +264 -0
  266. data/vendor/xmlsec1-1.2.18/include/xmlsec/list.h +194 -0
  267. data/vendor/xmlsec1-1.2.18/include/xmlsec/membuf.h +44 -0
  268. data/vendor/xmlsec1-1.2.18/include/xmlsec/mscrypto/Makefile.am +16 -0
  269. data/vendor/xmlsec1-1.2.18/include/xmlsec/mscrypto/Makefile.in +567 -0
  270. data/vendor/xmlsec1-1.2.18/include/xmlsec/mscrypto/app.h +116 -0
  271. data/vendor/xmlsec1-1.2.18/include/xmlsec/mscrypto/certkeys.h +42 -0
  272. data/vendor/xmlsec1-1.2.18/include/xmlsec/mscrypto/crypto.h +516 -0
  273. data/vendor/xmlsec1-1.2.18/include/xmlsec/mscrypto/keysstore.h +48 -0
  274. data/vendor/xmlsec1-1.2.18/include/xmlsec/mscrypto/symbols.h +114 -0
  275. data/vendor/xmlsec1-1.2.18/include/xmlsec/mscrypto/x509.h +92 -0
  276. data/vendor/xmlsec1-1.2.18/include/xmlsec/nodeset.h +139 -0
  277. data/vendor/xmlsec1-1.2.18/include/xmlsec/nss/Makefile.am +17 -0
  278. data/vendor/xmlsec1-1.2.18/include/xmlsec/nss/Makefile.in +568 -0
  279. data/vendor/xmlsec1-1.2.18/include/xmlsec/nss/app.h +118 -0
  280. data/vendor/xmlsec1-1.2.18/include/xmlsec/nss/bignum.h +37 -0
  281. data/vendor/xmlsec1-1.2.18/include/xmlsec/nss/crypto.h +469 -0
  282. data/vendor/xmlsec1-1.2.18/include/xmlsec/nss/keysstore.h +46 -0
  283. data/vendor/xmlsec1-1.2.18/include/xmlsec/nss/pkikeys.h +44 -0
  284. data/vendor/xmlsec1-1.2.18/include/xmlsec/nss/symbols.h +106 -0
  285. data/vendor/xmlsec1-1.2.18/include/xmlsec/nss/x509.h +91 -0
  286. data/vendor/xmlsec1-1.2.18/include/xmlsec/openssl/Makefile.am +16 -0
  287. data/vendor/xmlsec1-1.2.18/include/xmlsec/openssl/Makefile.in +567 -0
  288. data/vendor/xmlsec1-1.2.18/include/xmlsec/openssl/app.h +128 -0
  289. data/vendor/xmlsec1-1.2.18/include/xmlsec/openssl/bn.h +35 -0
  290. data/vendor/xmlsec1-1.2.18/include/xmlsec/openssl/crypto.h +561 -0
  291. data/vendor/xmlsec1-1.2.18/include/xmlsec/openssl/evp.h +44 -0
  292. data/vendor/xmlsec1-1.2.18/include/xmlsec/openssl/symbols.h +123 -0
  293. data/vendor/xmlsec1-1.2.18/include/xmlsec/openssl/x509.h +109 -0
  294. data/vendor/xmlsec1-1.2.18/include/xmlsec/parser.h +51 -0
  295. data/vendor/xmlsec1-1.2.18/include/xmlsec/private.h +489 -0
  296. data/vendor/xmlsec1-1.2.18/include/xmlsec/private/Makefile.am +12 -0
  297. data/vendor/xmlsec1-1.2.18/include/xmlsec/private/Makefile.in +563 -0
  298. data/vendor/xmlsec1-1.2.18/include/xmlsec/private/xkms.h +121 -0
  299. data/vendor/xmlsec1-1.2.18/include/xmlsec/private/xslt.h +34 -0
  300. data/vendor/xmlsec1-1.2.18/include/xmlsec/skeleton/Makefile.am +13 -0
  301. data/vendor/xmlsec1-1.2.18/include/xmlsec/skeleton/app.h +97 -0
  302. data/vendor/xmlsec1-1.2.18/include/xmlsec/skeleton/crypto.h +40 -0
  303. data/vendor/xmlsec1-1.2.18/include/xmlsec/skeleton/symbols.h +117 -0
  304. data/vendor/xmlsec1-1.2.18/include/xmlsec/soap.h +130 -0
  305. data/vendor/xmlsec1-1.2.18/include/xmlsec/strings.h +610 -0
  306. data/vendor/xmlsec1-1.2.18/include/xmlsec/templates.h +162 -0
  307. data/vendor/xmlsec1-1.2.18/include/xmlsec/transforms.h +994 -0
  308. data/vendor/xmlsec1-1.2.18/include/xmlsec/version.h +61 -0
  309. data/vendor/xmlsec1-1.2.18/include/xmlsec/version.h.in +61 -0
  310. data/vendor/xmlsec1-1.2.18/include/xmlsec/x509.h +80 -0
  311. data/vendor/xmlsec1-1.2.18/include/xmlsec/xkms.h +652 -0
  312. data/vendor/xmlsec1-1.2.18/include/xmlsec/xmldsig.h +281 -0
  313. data/vendor/xmlsec1-1.2.18/include/xmlsec/xmlenc.h +163 -0
  314. data/vendor/xmlsec1-1.2.18/include/xmlsec/xmlsec.h +216 -0
  315. data/vendor/xmlsec1-1.2.18/include/xmlsec/xmltree.h +275 -0
  316. data/vendor/xmlsec1-1.2.18/install-sh +520 -0
  317. data/vendor/xmlsec1-1.2.18/ltmain.sh +8413 -0
  318. data/vendor/xmlsec1-1.2.18/m4/libtool.m4 +7377 -0
  319. data/vendor/xmlsec1-1.2.18/m4/ltoptions.m4 +368 -0
  320. data/vendor/xmlsec1-1.2.18/m4/ltsugar.m4 +123 -0
  321. data/vendor/xmlsec1-1.2.18/m4/ltversion.m4 +23 -0
  322. data/vendor/xmlsec1-1.2.18/m4/lt~obsolete.m4 +92 -0
  323. data/vendor/xmlsec1-1.2.18/man/Makefile.am +52 -0
  324. data/vendor/xmlsec1-1.2.18/man/Makefile.in +582 -0
  325. data/vendor/xmlsec1-1.2.18/man/xmlsec1-config.1 +34 -0
  326. data/vendor/xmlsec1-1.2.18/man/xmlsec1.1 +269 -0
  327. data/vendor/xmlsec1-1.2.18/missing +376 -0
  328. data/vendor/xmlsec1-1.2.18/scripts/build_release.sh +33 -0
  329. data/vendor/xmlsec1-1.2.18/scripts/change-release.sh +34 -0
  330. data/vendor/xmlsec1-1.2.18/scripts/push_release.sh +30 -0
  331. data/vendor/xmlsec1-1.2.18/scripts/remove-gtkdoclink.pl +20 -0
  332. data/vendor/xmlsec1-1.2.18/scripts/test_errors.pl +38 -0
  333. data/vendor/xmlsec1-1.2.18/scripts/test_release.sh +12 -0
  334. data/vendor/xmlsec1-1.2.18/src/Makefile.am +71 -0
  335. data/vendor/xmlsec1-1.2.18/src/Makefile.in +878 -0
  336. data/vendor/xmlsec1-1.2.18/src/app.c +1498 -0
  337. data/vendor/xmlsec1-1.2.18/src/base64.c +1034 -0
  338. data/vendor/xmlsec1-1.2.18/src/bn.c +1060 -0
  339. data/vendor/xmlsec1-1.2.18/src/buffer.c +674 -0
  340. data/vendor/xmlsec1-1.2.18/src/c14n.c +801 -0
  341. data/vendor/xmlsec1-1.2.18/src/dl.c +994 -0
  342. data/vendor/xmlsec1-1.2.18/src/enveloped.c +152 -0
  343. data/vendor/xmlsec1-1.2.18/src/errors.c +242 -0
  344. data/vendor/xmlsec1-1.2.18/src/gcrypt/Makefile.am +55 -0
  345. data/vendor/xmlsec1-1.2.18/src/gcrypt/Makefile.in +764 -0
  346. data/vendor/xmlsec1-1.2.18/src/gcrypt/README +9 -0
  347. data/vendor/xmlsec1-1.2.18/src/gcrypt/app.c +663 -0
  348. data/vendor/xmlsec1-1.2.18/src/gcrypt/asn1.c +602 -0
  349. data/vendor/xmlsec1-1.2.18/src/gcrypt/asn1.h +39 -0
  350. data/vendor/xmlsec1-1.2.18/src/gcrypt/asymkeys.c +1920 -0
  351. data/vendor/xmlsec1-1.2.18/src/gcrypt/ciphers.c +855 -0
  352. data/vendor/xmlsec1-1.2.18/src/gcrypt/crypto.c +315 -0
  353. data/vendor/xmlsec1-1.2.18/src/gcrypt/digests.c +614 -0
  354. data/vendor/xmlsec1-1.2.18/src/gcrypt/globals.h +30 -0
  355. data/vendor/xmlsec1-1.2.18/src/gcrypt/hmac.c +823 -0
  356. data/vendor/xmlsec1-1.2.18/src/gcrypt/kw_aes.c +593 -0
  357. data/vendor/xmlsec1-1.2.18/src/gcrypt/kw_des.c +607 -0
  358. data/vendor/xmlsec1-1.2.18/src/gcrypt/signatures.c +1490 -0
  359. data/vendor/xmlsec1-1.2.18/src/gcrypt/symkeys.c +441 -0
  360. data/vendor/xmlsec1-1.2.18/src/globals.h +25 -0
  361. data/vendor/xmlsec1-1.2.18/src/gnutls/Makefile.am +58 -0
  362. data/vendor/xmlsec1-1.2.18/src/gnutls/Makefile.in +786 -0
  363. data/vendor/xmlsec1-1.2.18/src/gnutls/README +6 -0
  364. data/vendor/xmlsec1-1.2.18/src/gnutls/app.c +998 -0
  365. data/vendor/xmlsec1-1.2.18/src/gnutls/asymkeys.c +455 -0
  366. data/vendor/xmlsec1-1.2.18/src/gnutls/ciphers.c +82 -0
  367. data/vendor/xmlsec1-1.2.18/src/gnutls/crypto.c +351 -0
  368. data/vendor/xmlsec1-1.2.18/src/gnutls/digests.c +112 -0
  369. data/vendor/xmlsec1-1.2.18/src/gnutls/globals.h +31 -0
  370. data/vendor/xmlsec1-1.2.18/src/gnutls/hmac.c +141 -0
  371. data/vendor/xmlsec1-1.2.18/src/gnutls/kw_aes.c +72 -0
  372. data/vendor/xmlsec1-1.2.18/src/gnutls/kw_des.c +51 -0
  373. data/vendor/xmlsec1-1.2.18/src/gnutls/signatures.c +148 -0
  374. data/vendor/xmlsec1-1.2.18/src/gnutls/symkeys.c +125 -0
  375. data/vendor/xmlsec1-1.2.18/src/gnutls/x509.c +1960 -0
  376. data/vendor/xmlsec1-1.2.18/src/gnutls/x509utils.c +1687 -0
  377. data/vendor/xmlsec1-1.2.18/src/gnutls/x509utils.h +143 -0
  378. data/vendor/xmlsec1-1.2.18/src/gnutls/x509vfy.c +802 -0
  379. data/vendor/xmlsec1-1.2.18/src/io.c +496 -0
  380. data/vendor/xmlsec1-1.2.18/src/keyinfo.c +1561 -0
  381. data/vendor/xmlsec1-1.2.18/src/keys.c +1415 -0
  382. data/vendor/xmlsec1-1.2.18/src/keysdata.c +1387 -0
  383. data/vendor/xmlsec1-1.2.18/src/keysmngr.c +745 -0
  384. data/vendor/xmlsec1-1.2.18/src/kw_aes_des.c +493 -0
  385. data/vendor/xmlsec1-1.2.18/src/kw_aes_des.h +148 -0
  386. data/vendor/xmlsec1-1.2.18/src/list.c +534 -0
  387. data/vendor/xmlsec1-1.2.18/src/membuf.c +209 -0
  388. data/vendor/xmlsec1-1.2.18/src/mscrypto/Makefile.am +62 -0
  389. data/vendor/xmlsec1-1.2.18/src/mscrypto/Makefile.in +799 -0
  390. data/vendor/xmlsec1-1.2.18/src/mscrypto/README +39 -0
  391. data/vendor/xmlsec1-1.2.18/src/mscrypto/app.c +1289 -0
  392. data/vendor/xmlsec1-1.2.18/src/mscrypto/certkeys.c +2615 -0
  393. data/vendor/xmlsec1-1.2.18/src/mscrypto/ciphers.c +937 -0
  394. data/vendor/xmlsec1-1.2.18/src/mscrypto/crypto.c +889 -0
  395. data/vendor/xmlsec1-1.2.18/src/mscrypto/csp_calg.h +105 -0
  396. data/vendor/xmlsec1-1.2.18/src/mscrypto/csp_oid.h +114 -0
  397. data/vendor/xmlsec1-1.2.18/src/mscrypto/digests.c +668 -0
  398. data/vendor/xmlsec1-1.2.18/src/mscrypto/globals.h +39 -0
  399. data/vendor/xmlsec1-1.2.18/src/mscrypto/hmac.c +963 -0
  400. data/vendor/xmlsec1-1.2.18/src/mscrypto/keysstore.c +620 -0
  401. data/vendor/xmlsec1-1.2.18/src/mscrypto/kt_rsa.c +631 -0
  402. data/vendor/xmlsec1-1.2.18/src/mscrypto/kw_aes.c +662 -0
  403. data/vendor/xmlsec1-1.2.18/src/mscrypto/kw_des.c +730 -0
  404. data/vendor/xmlsec1-1.2.18/src/mscrypto/mingw-crypt32.def +36 -0
  405. data/vendor/xmlsec1-1.2.18/src/mscrypto/private.h +130 -0
  406. data/vendor/xmlsec1-1.2.18/src/mscrypto/signatures.c +960 -0
  407. data/vendor/xmlsec1-1.2.18/src/mscrypto/symkeys.c +824 -0
  408. data/vendor/xmlsec1-1.2.18/src/mscrypto/x509.c +2281 -0
  409. data/vendor/xmlsec1-1.2.18/src/mscrypto/x509vfy.c +1406 -0
  410. data/vendor/xmlsec1-1.2.18/src/mscrypto/xmlsec-mingw.h +210 -0
  411. data/vendor/xmlsec1-1.2.18/src/nodeset.c +610 -0
  412. data/vendor/xmlsec1-1.2.18/src/nss/Makefile.am +57 -0
  413. data/vendor/xmlsec1-1.2.18/src/nss/Makefile.in +798 -0
  414. data/vendor/xmlsec1-1.2.18/src/nss/README +128 -0
  415. data/vendor/xmlsec1-1.2.18/src/nss/app.c +1598 -0
  416. data/vendor/xmlsec1-1.2.18/src/nss/bignum.c +163 -0
  417. data/vendor/xmlsec1-1.2.18/src/nss/ciphers.c +838 -0
  418. data/vendor/xmlsec1-1.2.18/src/nss/crypto.c +444 -0
  419. data/vendor/xmlsec1-1.2.18/src/nss/digests.c +576 -0
  420. data/vendor/xmlsec1-1.2.18/src/nss/globals.h +24 -0
  421. data/vendor/xmlsec1-1.2.18/src/nss/hmac.c +855 -0
  422. data/vendor/xmlsec1-1.2.18/src/nss/keysstore.c +485 -0
  423. data/vendor/xmlsec1-1.2.18/src/nss/keytrans.c +753 -0
  424. data/vendor/xmlsec1-1.2.18/src/nss/kw_aes.c +681 -0
  425. data/vendor/xmlsec1-1.2.18/src/nss/kw_des.c +663 -0
  426. data/vendor/xmlsec1-1.2.18/src/nss/pkikeys.c +1554 -0
  427. data/vendor/xmlsec1-1.2.18/src/nss/signatures.c +841 -0
  428. data/vendor/xmlsec1-1.2.18/src/nss/symkeys.c +440 -0
  429. data/vendor/xmlsec1-1.2.18/src/nss/x509.c +2223 -0
  430. data/vendor/xmlsec1-1.2.18/src/nss/x509vfy.c +808 -0
  431. data/vendor/xmlsec1-1.2.18/src/openssl/Makefile.am +56 -0
  432. data/vendor/xmlsec1-1.2.18/src/openssl/Makefile.in +790 -0
  433. data/vendor/xmlsec1-1.2.18/src/openssl/README +17 -0
  434. data/vendor/xmlsec1-1.2.18/src/openssl/app.c +1628 -0
  435. data/vendor/xmlsec1-1.2.18/src/openssl/bn.c +163 -0
  436. data/vendor/xmlsec1-1.2.18/src/openssl/ciphers.c +856 -0
  437. data/vendor/xmlsec1-1.2.18/src/openssl/crypto.c +491 -0
  438. data/vendor/xmlsec1-1.2.18/src/openssl/digests.c +682 -0
  439. data/vendor/xmlsec1-1.2.18/src/openssl/evp.c +1559 -0
  440. data/vendor/xmlsec1-1.2.18/src/openssl/globals.h +24 -0
  441. data/vendor/xmlsec1-1.2.18/src/openssl/hmac.c +857 -0
  442. data/vendor/xmlsec1-1.2.18/src/openssl/kt_rsa.c +876 -0
  443. data/vendor/xmlsec1-1.2.18/src/openssl/kw_aes.c +513 -0
  444. data/vendor/xmlsec1-1.2.18/src/openssl/kw_des.c +563 -0
  445. data/vendor/xmlsec1-1.2.18/src/openssl/signatures.c +1065 -0
  446. data/vendor/xmlsec1-1.2.18/src/openssl/symkeys.c +447 -0
  447. data/vendor/xmlsec1-1.2.18/src/openssl/x509.c +2414 -0
  448. data/vendor/xmlsec1-1.2.18/src/openssl/x509vfy.c +1284 -0
  449. data/vendor/xmlsec1-1.2.18/src/parser.c +571 -0
  450. data/vendor/xmlsec1-1.2.18/src/skeleton/Makefile.am +45 -0
  451. data/vendor/xmlsec1-1.2.18/src/skeleton/README +0 -0
  452. data/vendor/xmlsec1-1.2.18/src/skeleton/app.c +499 -0
  453. data/vendor/xmlsec1-1.2.18/src/skeleton/crypto.c +260 -0
  454. data/vendor/xmlsec1-1.2.18/src/skeleton/globals.h +24 -0
  455. data/vendor/xmlsec1-1.2.18/src/soap.c +1322 -0
  456. data/vendor/xmlsec1-1.2.18/src/strings.c +597 -0
  457. data/vendor/xmlsec1-1.2.18/src/templates.c +2091 -0
  458. data/vendor/xmlsec1-1.2.18/src/transforms.c +2902 -0
  459. data/vendor/xmlsec1-1.2.18/src/x509.c +97 -0
  460. data/vendor/xmlsec1-1.2.18/src/xkms.c +4981 -0
  461. data/vendor/xmlsec1-1.2.18/src/xmldsig.c +1795 -0
  462. data/vendor/xmlsec1-1.2.18/src/xmlenc.c +1339 -0
  463. data/vendor/xmlsec1-1.2.18/src/xmlsec.c +185 -0
  464. data/vendor/xmlsec1-1.2.18/src/xmltree.c +1908 -0
  465. data/vendor/xmlsec1-1.2.18/src/xpath.c +1148 -0
  466. data/vendor/xmlsec1-1.2.18/src/xslt.c +617 -0
  467. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/Readme.txt +52 -0
  468. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/bad-alg-enc-element-aes128-kw-3des.xml +29 -0
  469. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/dh-priv-key.der +0 -0
  470. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.data +9 -0
  471. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.tmpl +22 -0
  472. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-content-3des-kw-aes192.xml +30 -0
  473. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.data +9 -0
  474. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.tmpl +22 -0
  475. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-content-aes128-kw-3des.xml +30 -0
  476. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.data +9 -0
  477. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.tmpl +22 -0
  478. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-content-aes192-kw-aes256.xml +30 -0
  479. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.data +9 -0
  480. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.tmpl +24 -0
  481. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5.xml +63 -0
  482. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-3des-ka-dh.xml +83 -0
  483. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.data +9 -0
  484. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.tmpl +23 -0
  485. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5.xml +61 -0
  486. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.data +9 -0
  487. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.tmpl +22 -0
  488. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1.xml +63 -0
  489. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha256.xml +63 -0
  490. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha512.xml +63 -0
  491. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.data +9 -0
  492. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.tmpl +22 -0
  493. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-3des-kw-3des.xml +29 -0
  494. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes128-ka-dh.xml +83 -0
  495. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.data +9 -0
  496. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.tmpl +20 -0
  497. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5.xml +61 -0
  498. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.data +9 -0
  499. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.tmpl +22 -0
  500. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1.xml +63 -0
  501. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.data +9 -0
  502. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.tmpl +22 -0
  503. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes128.xml +29 -0
  504. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.data +9 -0
  505. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.tmpl +22 -0
  506. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes128-kw-aes256.xml +29 -0
  507. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes192-ka-dh.xml +83 -0
  508. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.data +9 -0
  509. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.tmpl +22 -0
  510. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1.xml +63 -0
  511. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.data +9 -0
  512. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.tmpl +22 -0
  513. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes192-kw-aes192.xml +29 -0
  514. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes256-ka-dh.xml +83 -0
  515. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.data +9 -0
  516. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.tmpl +22 -0
  517. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-element-aes256-kw-aes256.xml +29 -0
  518. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.data +9 -0
  519. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.tmpl +23 -0
  520. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-text-3des-kw-aes256.xml +32 -0
  521. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.data +9 -0
  522. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.tmpl +21 -0
  523. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-text-aes128-kw-aes192.xml +28 -0
  524. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.data +9 -0
  525. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.tmpl +20 -0
  526. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5.xml +62 -0
  527. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.data +9 -0
  528. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.tmpl +22 -0
  529. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1.xml +64 -0
  530. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/key.txt +117 -0
  531. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/keys.xml +61 -0
  532. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/payment.xml +9 -0
  533. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/rsa-priv-key.der +0 -0
  534. data/vendor/xmlsec1-1.2.18/tests/01-phaos-xmlenc-3/rsa-priv-key.p12 +0 -0
  535. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/bad-request-name-not-supported.xml +2 -0
  536. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/bad-request-name.xml +10 -0
  537. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/compound-example-1-no-match.xml +7 -0
  538. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/compound-example-1.xml +51 -0
  539. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/cert1.der +0 -0
  540. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/cert1.pem +26 -0
  541. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/cert2.der +0 -0
  542. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/cert2.pem +25 -0
  543. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/cert3.der +0 -0
  544. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/cert3.pem +24 -0
  545. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/create-keys.sh +73 -0
  546. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/key1-pk8.der +0 -0
  547. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/key1.der +0 -0
  548. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/key1.p12 +0 -0
  549. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/key1.pem +18 -0
  550. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/key2-pk8.der +0 -0
  551. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/key2.der +0 -0
  552. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/key2.p12 +0 -0
  553. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/key2.pem +9 -0
  554. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/key3-pk8.der +0 -0
  555. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/key3.der +0 -0
  556. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/key3.p12 +0 -0
  557. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/key3.pem +9 -0
  558. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/openssl.cnf +106 -0
  559. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/req2.pem +11 -0
  560. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/keys/req3.pem +11 -0
  561. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/locate-example-1-bad-service.xml +2 -0
  562. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/locate-example-1-no-match.xml +2 -0
  563. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/locate-example-1.xml +18 -0
  564. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/locate-example-2-no-match.xml +2 -0
  565. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/locate-example-2.xml +39 -0
  566. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/locate-opaque-client-data-no-match.xml +2 -0
  567. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/locate-opaque-client-data.xml +32 -0
  568. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/readme.txt +117 -0
  569. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/soap11-bad-request-name-msg-invalid.xml +9 -0
  570. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/soap11-bad-request-name.xml +14 -0
  571. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/soap11-locate-example-1-no-match.xml +6 -0
  572. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/soap11-locate-example-1-unsupported.xml +13 -0
  573. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/soap11-locate-example-1.xml +23 -0
  574. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/soap12-bad-request-name-msg-invalid.xml +11 -0
  575. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/soap12-bad-request-name.xml +14 -0
  576. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/soap12-locate-example-1-no-match.xml +6 -0
  577. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/soap12-locate-example-1-unsupported.xml +9 -0
  578. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/soap12-locate-example-1.xml +23 -0
  579. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/status-request-success.xml +2 -0
  580. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/status-request.xml +7 -0
  581. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/validate-example-1-no-match.xml +2 -0
  582. data/vendor/xmlsec1-1.2.18/tests/aleksey-xkms-01/validate-example-1.xml +65 -0
  583. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/README +47 -0
  584. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/dtd-hmac-91.dtd +1 -0
  585. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/dtd-hmac-91.tmpl +27 -0
  586. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/dtd-hmac-91.xml +27 -0
  587. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloped-gost.tmpl +31 -0
  588. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloped-gost.xml +42 -0
  589. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-dsa-x509chain.tmpl +18 -0
  590. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-dsa-x509chain.xml +87 -0
  591. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-expired-cert.tmpl +18 -0
  592. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-expired-cert.xml +85 -0
  593. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5-64.tmpl +16 -0
  594. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5-64.xml +15 -0
  595. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5.tmpl +14 -0
  596. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-md5-hmac-md5.xml +13 -0
  597. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-md5-rsa-md5.tmpl +17 -0
  598. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-md5-rsa-md5.xml +85 -0
  599. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64.tmpl +16 -0
  600. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64.xml +15 -0
  601. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160.tmpl +14 -0
  602. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160.xml +13 -0
  603. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160.tmpl +17 -0
  604. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160.xml +85 -0
  605. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-rsa-x509chain.tmpl +18 -0
  606. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-rsa-x509chain.xml +85 -0
  607. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1-64.tmpl +16 -0
  608. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1-64.xml +15 -0
  609. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1.tmpl +14 -0
  610. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha1-hmac-sha1.xml +13 -0
  611. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha1-rsa-sha1.tmpl +17 -0
  612. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha1-rsa-sha1.xml +85 -0
  613. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64.tmpl +16 -0
  614. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64.xml +15 -0
  615. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224.tmpl +14 -0
  616. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha224-hmac-sha224.xml +13 -0
  617. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha224-rsa-sha224.tmpl +17 -0
  618. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha224-rsa-sha224.xml +85 -0
  619. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256-64.tmpl +16 -0
  620. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256-64.xml +15 -0
  621. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256.tmpl +14 -0
  622. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha256-hmac-sha256.xml +13 -0
  623. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256.tmpl +17 -0
  624. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256.xml +85 -0
  625. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384-64.tmpl +16 -0
  626. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384-64.xml +15 -0
  627. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384.tmpl +14 -0
  628. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha384-hmac-sha384.xml +13 -0
  629. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha384-rsa-sha384.tmpl +17 -0
  630. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha384-rsa-sha384.xml +103 -0
  631. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512-64.tmpl +16 -0
  632. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512-64.xml +16 -0
  633. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512.tmpl +14 -0
  634. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha512-hmac-sha512.xml +15 -0
  635. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha512-rsa-sha512.tmpl +17 -0
  636. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/enveloping-sha512-rsa-sha512.xml +104 -0
  637. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/x509data-sn-test.tmpl +27 -0
  638. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/x509data-sn-test.xml +40 -0
  639. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/x509data-test.tmpl +31 -0
  640. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/x509data-test.xml +117 -0
  641. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/xpointer-hmac.tmpl +29 -0
  642. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmldsig-01/xpointer-hmac.xml +28 -0
  643. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.data +1 -0
  644. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.tmpl +11 -0
  645. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-aes128cbc-keyname.xml +12 -0
  646. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname-ref.data +1 -0
  647. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname-ref.xml +21 -0
  648. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.data +1 -0
  649. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.tmpl +11 -0
  650. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-aes192cbc-keyname.xml +12 -0
  651. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.data +1 -0
  652. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.tmpl +10 -0
  653. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-aes256cbc-keyname.xml +12 -0
  654. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.data +1 -0
  655. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.tmpl +16 -0
  656. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-aes192-keyname.xml +18 -0
  657. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.data +7 -0
  658. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.tmpl +11 -0
  659. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-content.xml +15 -0
  660. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.data +7 -0
  661. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.tmpl +11 -0
  662. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element-root.xml +15 -0
  663. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.data +9 -0
  664. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.tmpl +11 -0
  665. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname-element.xml +17 -0
  666. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname.data +1 -0
  667. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname.tmpl +8 -0
  668. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname.xml +8 -0
  669. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.data +1 -0
  670. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.tmpl +10 -0
  671. data/vendor/xmlsec1-1.2.18/tests/aleksey-xmlenc-01/enc-des3cbc-keyname2.xml +12 -0
  672. data/vendor/xmlsec1-1.2.18/tests/keys/README +203 -0
  673. data/vendor/xmlsec1-1.2.18/tests/keys/ca2cert.der +0 -0
  674. data/vendor/xmlsec1-1.2.18/tests/keys/ca2cert.pem +66 -0
  675. data/vendor/xmlsec1-1.2.18/tests/keys/ca2key.pem +9 -0
  676. data/vendor/xmlsec1-1.2.18/tests/keys/cacert.der +0 -0
  677. data/vendor/xmlsec1-1.2.18/tests/keys/cacert.pem +72 -0
  678. data/vendor/xmlsec1-1.2.18/tests/keys/cakey.pem +18 -0
  679. data/vendor/xmlsec1-1.2.18/tests/keys/demoCA/cacert.pem +72 -0
  680. data/vendor/xmlsec1-1.2.18/tests/keys/demoCA/careq.pem +14 -0
  681. data/vendor/xmlsec1-1.2.18/tests/keys/demoCA/index.txt +6 -0
  682. data/vendor/xmlsec1-1.2.18/tests/keys/demoCA/newcerts/01.pem +65 -0
  683. data/vendor/xmlsec1-1.2.18/tests/keys/demoCA/newcerts/02.pem +93 -0
  684. data/vendor/xmlsec1-1.2.18/tests/keys/demoCA/newcerts/03.pem +60 -0
  685. data/vendor/xmlsec1-1.2.18/tests/keys/demoCA/newcerts/04.pem +60 -0
  686. data/vendor/xmlsec1-1.2.18/tests/keys/demoCA/newcerts/05.pem +83 -0
  687. data/vendor/xmlsec1-1.2.18/tests/keys/demoCA/private/cakey.pem +18 -0
  688. data/vendor/xmlsec1-1.2.18/tests/keys/demoCA/serial +1 -0
  689. data/vendor/xmlsec1-1.2.18/tests/keys/dsacert.der +0 -0
  690. data/vendor/xmlsec1-1.2.18/tests/keys/dsacert.pem +78 -0
  691. data/vendor/xmlsec1-1.2.18/tests/keys/dsakey.der +0 -0
  692. data/vendor/xmlsec1-1.2.18/tests/keys/dsakey.p12 +0 -0
  693. data/vendor/xmlsec1-1.2.18/tests/keys/dsakey.p8-der +0 -0
  694. data/vendor/xmlsec1-1.2.18/tests/keys/dsakey.p8-pem +8 -0
  695. data/vendor/xmlsec1-1.2.18/tests/keys/dsakey.pem +14 -0
  696. data/vendor/xmlsec1-1.2.18/tests/keys/expiredcert.der +0 -0
  697. data/vendor/xmlsec1-1.2.18/tests/keys/expiredcert.pem +61 -0
  698. data/vendor/xmlsec1-1.2.18/tests/keys/expiredkey.der +0 -0
  699. data/vendor/xmlsec1-1.2.18/tests/keys/expiredkey.p12 +0 -0
  700. data/vendor/xmlsec1-1.2.18/tests/keys/expiredkey.pem +9 -0
  701. data/vendor/xmlsec1-1.2.18/tests/keys/expiredreq.pem +11 -0
  702. data/vendor/xmlsec1-1.2.18/tests/keys/gost2001ca.der +0 -0
  703. data/vendor/xmlsec1-1.2.18/tests/keys/gost2001ca.pem +13 -0
  704. data/vendor/xmlsec1-1.2.18/tests/keys/hmackey.bin +1 -0
  705. data/vendor/xmlsec1-1.2.18/tests/keys/keys.xml +83 -0
  706. data/vendor/xmlsec1-1.2.18/tests/keys/largersacert.der +0 -0
  707. data/vendor/xmlsec1-1.2.18/tests/keys/largersacert.pem +100 -0
  708. data/vendor/xmlsec1-1.2.18/tests/keys/largersakey-win.p12 +0 -0
  709. data/vendor/xmlsec1-1.2.18/tests/keys/largersakey-winxp.p12 +0 -0
  710. data/vendor/xmlsec1-1.2.18/tests/keys/largersakey.der +0 -0
  711. data/vendor/xmlsec1-1.2.18/tests/keys/largersakey.p12 +0 -0
  712. data/vendor/xmlsec1-1.2.18/tests/keys/largersakey.p8-der +0 -0
  713. data/vendor/xmlsec1-1.2.18/tests/keys/largersakey.p8-pem +53 -0
  714. data/vendor/xmlsec1-1.2.18/tests/keys/largersakey.pem +51 -0
  715. data/vendor/xmlsec1-1.2.18/tests/keys/largersareq.pem +30 -0
  716. data/vendor/xmlsec1-1.2.18/tests/keys/merlincert.pem +20 -0
  717. data/vendor/xmlsec1-1.2.18/tests/keys/openssl.cnf +316 -0
  718. data/vendor/xmlsec1-1.2.18/tests/keys/rsacert.der +0 -0
  719. data/vendor/xmlsec1-1.2.18/tests/keys/rsacert.pem +61 -0
  720. data/vendor/xmlsec1-1.2.18/tests/keys/rsakey-win.p12 +0 -0
  721. data/vendor/xmlsec1-1.2.18/tests/keys/rsakey-winxp.p12 +0 -0
  722. data/vendor/xmlsec1-1.2.18/tests/keys/rsakey.der +0 -0
  723. data/vendor/xmlsec1-1.2.18/tests/keys/rsakey.p12 +0 -0
  724. data/vendor/xmlsec1-1.2.18/tests/keys/rsakey.p8-der +0 -0
  725. data/vendor/xmlsec1-1.2.18/tests/keys/rsakey.p8-pem +11 -0
  726. data/vendor/xmlsec1-1.2.18/tests/keys/rsakey.pem +9 -0
  727. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/Readme.txt +20 -0
  728. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-0.txt +15 -0
  729. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-1.txt +15 -0
  730. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-10.txt +15 -0
  731. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-11.txt +15 -0
  732. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-12.txt +15 -0
  733. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-13.txt +15 -0
  734. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-14.txt +15 -0
  735. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-15.txt +0 -0
  736. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-16.txt +0 -0
  737. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-17.txt +15 -0
  738. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-18.txt +15 -0
  739. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-19.txt +15 -0
  740. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-2.txt +15 -0
  741. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-20.txt +15 -0
  742. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-21.txt +15 -0
  743. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-22.txt +15 -0
  744. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-23.txt +15 -0
  745. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-24.txt +1 -0
  746. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-25.txt +0 -0
  747. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-26.txt +15 -0
  748. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-27.txt +430 -0
  749. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-3.txt +15 -0
  750. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-4.txt +15 -0
  751. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-5.txt +15 -0
  752. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-6.txt +1 -0
  753. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-7.txt +1 -0
  754. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-8.txt +15 -0
  755. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/c14n-9.txt +15 -0
  756. data/vendor/xmlsec1-1.2.18/tests/merlin-c14n-three/signature.xml +526 -0
  757. data/vendor/xmlsec1-1.2.18/tests/merlin-exc-c14n-one/Readme.txt +3 -0
  758. data/vendor/xmlsec1-1.2.18/tests/merlin-exc-c14n-one/exc-signature.tmpl +52 -0
  759. data/vendor/xmlsec1-1.2.18/tests/merlin-exc-c14n-one/exc-signature.xml +73 -0
  760. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/Readme.txt +63 -0
  761. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/badb.der +0 -0
  762. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/badb.pem +20 -0
  763. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/balor.der +0 -0
  764. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/balor.pem +20 -0
  765. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/bres.pem +20 -0
  766. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/ca.der +0 -0
  767. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/ca.pem +20 -0
  768. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/lugh-cert.der +0 -0
  769. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/lugh-cert.pem +20 -0
  770. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/lugh.der +0 -0
  771. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/lugh.pem +12 -0
  772. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/macha.der +0 -0
  773. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/macha.pem +20 -0
  774. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/merlin.der +0 -0
  775. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/merlin.pem +21 -0
  776. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/morigu.pem +20 -0
  777. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/nemain.der +0 -0
  778. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/certs/nemain.pem +20 -0
  779. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-enveloped-dsa.tmpl +22 -0
  780. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-enveloped-dsa.xml +43 -0
  781. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-enveloping-b64-dsa.tmpl +21 -0
  782. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-enveloping-b64-dsa.xml +42 -0
  783. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-enveloping-dsa.tmpl +18 -0
  784. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-enveloping-dsa.xml +39 -0
  785. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1-40.tmpl +16 -0
  786. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1-40.xml +17 -0
  787. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.tmpl +14 -0
  788. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-enveloping-hmac-sha1.xml +15 -0
  789. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-enveloping-rsa.tmpl +18 -0
  790. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-enveloping-rsa.xml +31 -0
  791. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-external-b64-dsa.tmpl +20 -0
  792. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-external-b64-dsa.xml +41 -0
  793. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-external-dsa.tmpl +17 -0
  794. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-external-dsa.xml +38 -0
  795. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-keyname.tmpl +16 -0
  796. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-keyname.xml +17 -0
  797. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt.tmpl +16 -0
  798. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt.xml +17 -0
  799. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-x509-crt-crl.tmpl +17 -0
  800. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-x509-crt-crl.xml +47 -0
  801. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-x509-crt.tmpl +17 -0
  802. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-x509-crt.xml +38 -0
  803. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-x509-is.tmpl +17 -0
  804. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-x509-is.xml +24 -0
  805. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-x509-ski.tmpl +17 -0
  806. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-x509-ski.xml +21 -0
  807. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-x509-sn.tmpl +17 -0
  808. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature-x509-sn.xml +21 -0
  809. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature.tmpl +245 -0
  810. data/vendor/xmlsec1-1.2.18/tests/merlin-xmldsig-twenty-three/signature.xml +269 -0
  811. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/Readme.txt +117 -0
  812. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/bad-encrypt-content-aes128-cbc-kw-aes192.xml +42 -0
  813. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/decryption-transform-except.xml +83 -0
  814. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/decryption-transform.xml +73 -0
  815. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/dh0.p8 +0 -0
  816. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/dh1.p8 +0 -0
  817. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/dsa.p8 +0 -0
  818. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.data +27 -0
  819. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.tmpl +20 -0
  820. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-content-aes128-cbc-kw-aes192.xml +45 -0
  821. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-content-aes192-cbc-dh-sha512.xml +113 -0
  822. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.data +27 -0
  823. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.tmpl +18 -0
  824. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-content-aes256-cbc-prop.xml +42 -0
  825. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.data +27 -0
  826. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.tmpl +11 -0
  827. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-content-tripledes-cbc.xml +35 -0
  828. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.data +1 -0
  829. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.tmpl +11 -0
  830. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-data-aes128-cbc.xml +12 -0
  831. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.data +1 -0
  832. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.tmpl +20 -0
  833. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-data-aes192-cbc-kw-aes256.xml +22 -0
  834. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.data +1 -0
  835. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.tmpl +20 -0
  836. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-data-aes256-cbc-kw-tripledes.xml +22 -0
  837. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p-sha256.xml +46 -0
  838. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.data +1 -0
  839. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.tmpl +21 -0
  840. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p.xml +43 -0
  841. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.data +27 -0
  842. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.tmpl +19 -0
  843. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5.xml +63 -0
  844. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.data +36 -0
  845. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-element-aes192-cbc-ref.xml +42 -0
  846. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-carried-kw-aes256.xml +57 -0
  847. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-kw-aes256-dh-ripemd160.xml +122 -0
  848. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.data +40 -0
  849. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-element-aes256-cbc-retrieved-kw-aes256.xml +47 -0
  850. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.data +27 -0
  851. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.tmpl +20 -0
  852. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encrypt-element-tripledes-cbc-kw-aes128.xml +43 -0
  853. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encsig-hmac-sha256-dh.xml +98 -0
  854. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encsig-hmac-sha256-kw-tripledes-dh.xml +108 -0
  855. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encsig-hmac-sha256-rsa-1_5.xml +46 -0
  856. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encsig-hmac-sha256-rsa-oaep-mgf1p.xml +51 -0
  857. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.tmpl +25 -0
  858. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes.xml +27 -0
  859. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encsig-sha256-hmac-sha256-kw-aes128.xml +27 -0
  860. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encsig-sha384-hmac-sha384-kw-aes192.xml +27 -0
  861. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/encsig-sha512-hmac-sha512-kw-aes256.xml +28 -0
  862. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/ids.p12 +0 -0
  863. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/keys.xml +42 -0
  864. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/plaintext.xml +24 -0
  865. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/rsa.p8 +0 -0
  866. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/rsapriv.der +0 -0
  867. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/rsapriv.p12 +0 -0
  868. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/rsapriv.p8-der +0 -0
  869. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/rsapriv.p8-pem +17 -0
  870. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/rsapriv.pem +15 -0
  871. data/vendor/xmlsec1-1.2.18/tests/merlin-xmlenc-five/rsapub.pem +6 -0
  872. data/vendor/xmlsec1-1.2.18/tests/merlin-xpath-filter2-three/Readme.txt +23 -0
  873. data/vendor/xmlsec1-1.2.18/tests/merlin-xpath-filter2-three/sign-spec-c14n-0.txt +11 -0
  874. data/vendor/xmlsec1-1.2.18/tests/merlin-xpath-filter2-three/sign-spec-c14n-1.txt +0 -0
  875. data/vendor/xmlsec1-1.2.18/tests/merlin-xpath-filter2-three/sign-spec-c14n-2.txt +25 -0
  876. data/vendor/xmlsec1-1.2.18/tests/merlin-xpath-filter2-three/sign-spec.tmpl +50 -0
  877. data/vendor/xmlsec1-1.2.18/tests/merlin-xpath-filter2-three/sign-spec.xml +122 -0
  878. data/vendor/xmlsec1-1.2.18/tests/merlin-xpath-filter2-three/sign-xfdl-c14n-0.txt +3986 -0
  879. data/vendor/xmlsec1-1.2.18/tests/merlin-xpath-filter2-three/sign-xfdl.tmpl +4153 -0
  880. data/vendor/xmlsec1-1.2.18/tests/merlin-xpath-filter2-three/sign-xfdl.xml +4225 -0
  881. data/vendor/xmlsec1-1.2.18/tests/nss.supp +220 -0
  882. data/vendor/xmlsec1-1.2.18/tests/nssdb/cert8.db +0 -0
  883. data/vendor/xmlsec1-1.2.18/tests/nssdb/key3.db +0 -0
  884. data/vendor/xmlsec1-1.2.18/tests/nssdb/secmod.db +0 -0
  885. data/vendor/xmlsec1-1.2.18/tests/openssl.supp +63 -0
  886. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/README.txt +248 -0
  887. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/certs/crl.der +0 -0
  888. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/certs/dsa-ca-cert.der +0 -0
  889. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/certs/dsa-cert.der +0 -0
  890. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/certs/enc-dsa-key.der +0 -0
  891. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/certs/enc-rsa-key.der +0 -0
  892. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/certs/hmackey.bin +1 -0
  893. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/certs/rsa-ca-cert.der +0 -0
  894. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/certs/rsa-cert.der +0 -0
  895. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/document-stylesheet.xml +7 -0
  896. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/document.b64 +4 -0
  897. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/document.xml +6 -0
  898. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/document.xsl +45 -0
  899. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-big.xml +39 -0
  900. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-dsa-detached.xml +1 -0
  901. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-dsa-enveloped.xml +6 -0
  902. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-dsa-enveloping.xml +6 -0
  903. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-dsa-manifest.xml +1 -0
  904. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-hmac-md5-c14n-enveloping.xml +6 -0
  905. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-hmac-sha1-40-c14n-comments-detached.xml +1 -0
  906. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-hmac-sha1-40-exclusive-c14n-comments-detached.xml +1 -0
  907. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-hmac-sha1-exclusive-c14n-comments-detached.xml +1 -0
  908. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-hmac-sha1-exclusive-c14n-enveloped.xml +6 -0
  909. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-detached-b64-transform.xml +1 -0
  910. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-detached-xpath-transform.xml +1 -0
  911. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform-bad-retrieval-method.xml +6 -0
  912. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform-retrieval-method.xml +39 -0
  913. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-detached-xslt-transform.xml +39 -0
  914. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-detached.xml +1 -0
  915. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-enveloped-bad-digest-val.xml +6 -0
  916. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-enveloped-bad-sig.xml +6 -0
  917. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-enveloped.xml +6 -0
  918. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-enveloping.xml +6 -0
  919. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-cert-chain.xml +1 -0
  920. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-cert.xml +1 -0
  921. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-issuer-serial.xml +1 -0
  922. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-ski.xml +1 -0
  923. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-manifest-x509-data-subject-name.xml +1 -0
  924. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-manifest.xml +1 -0
  925. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-xpath-transform-enveloped.xml +6 -0
  926. data/vendor/xmlsec1-1.2.18/tests/phaos-xmldsig-three/signature-rsa-~x509-data-crl.xml +1 -0
  927. data/vendor/xmlsec1-1.2.18/tests/testDSig.sh +875 -0
  928. data/vendor/xmlsec1-1.2.18/tests/testEnc.sh +411 -0
  929. data/vendor/xmlsec1-1.2.18/tests/testKeys.sh +69 -0
  930. data/vendor/xmlsec1-1.2.18/tests/testRes.sh +20 -0
  931. data/vendor/xmlsec1-1.2.18/tests/testXKMS.sh +129 -0
  932. data/vendor/xmlsec1-1.2.18/tests/testrun.sh +443 -0
  933. data/vendor/xmlsec1-1.2.18/tests/xmldsig2ed-tests/c14n11/xml-base-input.xml +17 -0
  934. data/vendor/xmlsec1-1.2.18/tests/xmldsig2ed-tests/defCan-1.tmpl +2 -0
  935. data/vendor/xmlsec1-1.2.18/tests/xmldsig2ed-tests/defCan-1.xml +2 -0
  936. data/vendor/xmlsec1-1.2.18/tests/xmldsig2ed-tests/defCan-2.tmpl +2 -0
  937. data/vendor/xmlsec1-1.2.18/tests/xmldsig2ed-tests/defCan-2.xml +2 -0
  938. data/vendor/xmlsec1-1.2.18/tests/xmldsig2ed-tests/defCan-3.tmpl +2 -0
  939. data/vendor/xmlsec1-1.2.18/tests/xmldsig2ed-tests/defCan-3.xml +2 -0
  940. data/vendor/xmlsec1-1.2.18/tests/xmldsig2ed-tests/xpointer-1-SUN.xml +21 -0
  941. data/vendor/xmlsec1-1.2.18/tests/xmldsig2ed-tests/xpointer-2-SUN.xml +21 -0
  942. data/vendor/xmlsec1-1.2.18/tests/xmldsig2ed-tests/xpointer-3-SUN.xml +21 -0
  943. data/vendor/xmlsec1-1.2.18/tests/xmldsig2ed-tests/xpointer-4-SUN.xml +21 -0
  944. data/vendor/xmlsec1-1.2.18/tests/xmldsig2ed-tests/xpointer-5-SUN.xml +21 -0
  945. data/vendor/xmlsec1-1.2.18/tests/xmldsig2ed-tests/xpointer-6-SUN.xml +21 -0
  946. data/vendor/xmlsec1-1.2.18/win32/Makefile.msvc +699 -0
  947. data/vendor/xmlsec1-1.2.18/win32/README.txt +168 -12
  948. data/vendor/xmlsec1-1.2.18/win32/configure.js +395 -0
  949. data/vendor/xmlsec1-1.2.18/win32/libxmlsec.def.src +25 -0
  950. data/vendor/xmlsec1-1.2.18/win32/mycfg.bat +21 -0
  951. data/vendor/xmlsec1-1.2.18/xmlsec-config.in +243 -0
  952. data/vendor/xmlsec1-1.2.18/xmlsec-gcrypt.pc.in +11 -0
  953. data/vendor/xmlsec1-1.2.18/xmlsec-gnutls.pc.in +11 -0
  954. data/vendor/xmlsec1-1.2.18/xmlsec-nss.pc.in +11 -0
  955. data/vendor/xmlsec1-1.2.18/xmlsec-openssl.pc.in +11 -0
  956. data/vendor/xmlsec1-1.2.18/xmlsec.pc.in +11 -0
  957. data/vendor/xmlsec1-1.2.18/xmlsec.spec.in +185 -0
  958. data/vendor/xmlsec1-1.2.18/xmlsec1-config +243 -0
  959. data/vendor/xmlsec1-1.2.18/xmlsec1-gcrypt.pc +11 -0
  960. data/vendor/xmlsec1-1.2.18/xmlsec1-gnutls.pc +11 -0
  961. data/vendor/xmlsec1-1.2.18/xmlsec1-nss.pc +11 -0
  962. data/vendor/xmlsec1-1.2.18/xmlsec1-openssl.pc +11 -0
  963. data/vendor/xmlsec1-1.2.18/xmlsec1.m4 +172 -0
  964. data/vendor/xmlsec1-1.2.18/xmlsec1.pc +11 -0
  965. data/vendor/xmlsec1-1.2.18/xmlsec1.spec +185 -0
  966. data/vendor/xmlsec1-1.2.18/xmlsec1Conf.sh +13 -0
  967. data/vendor/xmlsec1-1.2.18/xmlsecConf.sh.in +13 -0
  968. data/xmlsec-shim.gemspec +18 -0
  969. metadata +1014 -0
@@ -0,0 +1,185 @@
1
+ /**
2
+ * XML Security Library (http://www.aleksey.com/xmlsec).
3
+ *
4
+ * General functions.
5
+ *
6
+ * This is free software; see Copyright file in the source
7
+ * distribution for preciese wording.
8
+ *
9
+ * Copyright (C) 2002-2003 Aleksey Sanin <aleksey@aleksey.com>
10
+ */
11
+ #include "globals.h"
12
+
13
+ #include <stdlib.h>
14
+ #include <stdio.h>
15
+
16
+ #include <libxml/tree.h>
17
+
18
+ #include <xmlsec/xmlsec.h>
19
+ #include <xmlsec/xmltree.h>
20
+ #include <xmlsec/keys.h>
21
+ #include <xmlsec/transforms.h>
22
+ #include <xmlsec/app.h>
23
+ #include <xmlsec/io.h>
24
+ #include <xmlsec/xkms.h>
25
+ #include <xmlsec/errors.h>
26
+
27
+ /**
28
+ * xmlSecInit:
29
+ *
30
+ * Initializes XML Security Library. The depended libraries
31
+ * (LibXML and LibXSLT) must be initialized before.
32
+ *
33
+ * Returns: 0 on success or a negative value otherwise.
34
+ */
35
+ int
36
+ xmlSecInit(void) {
37
+ xmlSecErrorsInit();
38
+ xmlSecIOInit();
39
+
40
+ #ifndef XMLSEC_NO_CRYPTO_DYNAMIC_LOADING
41
+ if(xmlSecCryptoDLInit() < 0) {
42
+ xmlSecError(XMLSEC_ERRORS_HERE,
43
+ NULL,
44
+ "xmlSecCryptoDLInit",
45
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
46
+ XMLSEC_ERRORS_NO_MESSAGE);
47
+ return(-1);
48
+ }
49
+ #endif /* XMLSEC_NO_CRYPTO_DYNAMIC_LOADING */
50
+
51
+ if(xmlSecKeyDataIdsInit() < 0) {
52
+ xmlSecError(XMLSEC_ERRORS_HERE,
53
+ NULL,
54
+ "xmlSecKeyDataIdsInit",
55
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
56
+ XMLSEC_ERRORS_NO_MESSAGE);
57
+ return(-1);
58
+ }
59
+
60
+ if(xmlSecTransformIdsInit() < 0) {
61
+ xmlSecError(XMLSEC_ERRORS_HERE,
62
+ NULL,
63
+ "xmlSecTransformIdsInit",
64
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
65
+ XMLSEC_ERRORS_NO_MESSAGE);
66
+ return(-1);
67
+ }
68
+
69
+ #ifndef XMLSEC_NO_XKMS
70
+ if(xmlSecXkmsRespondWithIdsInit() < 0) {
71
+ xmlSecError(XMLSEC_ERRORS_HERE,
72
+ NULL,
73
+ "xmlSecXkmsRespondWithIdsInit",
74
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
75
+ XMLSEC_ERRORS_NO_MESSAGE);
76
+ return(-1);
77
+ }
78
+ if(xmlSecXkmsServerRequestIdsInit() < 0) {
79
+ xmlSecError(XMLSEC_ERRORS_HERE,
80
+ NULL,
81
+ "xmlSecXkmsServerRequestIdsInit",
82
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
83
+ XMLSEC_ERRORS_NO_MESSAGE);
84
+ return(-1);
85
+ }
86
+ #endif /* XMLSEC_NO_XKMS */
87
+
88
+ /* we use rand() function to generate id attributes */
89
+ srand(time(NULL));
90
+ return(0);
91
+ }
92
+
93
+ /**
94
+ * xmlSecShutdown:
95
+ *
96
+ * Clean ups the XML Security Library.
97
+ *
98
+ * Returns: 0 on success or a negative value otherwise.
99
+ */
100
+ int
101
+ xmlSecShutdown(void) {
102
+ int res = 0;
103
+
104
+ #ifndef XMLSEC_NO_XKMS
105
+ xmlSecXkmsServerRequestIdsShutdown();
106
+ xmlSecXkmsRespondWithIdsShutdown();
107
+ #endif /* XMLSEC_NO_XKMS */
108
+
109
+ xmlSecTransformIdsShutdown();
110
+ xmlSecKeyDataIdsShutdown();
111
+
112
+ #ifndef XMLSEC_NO_CRYPTO_DYNAMIC_LOADING
113
+ if(xmlSecCryptoDLShutdown() < 0) {
114
+ xmlSecError(XMLSEC_ERRORS_HERE,
115
+ NULL,
116
+ "xmlSecCryptoDLShutdown",
117
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
118
+ XMLSEC_ERRORS_NO_MESSAGE);
119
+ res = -1;
120
+ }
121
+ #endif /* XMLSEC_NO_CRYPTO_DYNAMIC_LOADING */
122
+
123
+ xmlSecIOShutdown();
124
+ xmlSecErrorsShutdown();
125
+ return(res);
126
+ }
127
+
128
+ /**
129
+ * xmlSecCheckVersionExt:
130
+ * @major: the major version number.
131
+ * @minor: the minor version number.
132
+ * @subminor: the subminor version number.
133
+ * @mode: the version check mode.
134
+ *
135
+ * Checks if the loaded version of xmlsec library could be used.
136
+ *
137
+ * Returns: 1 if the loaded xmlsec library version is OK to use
138
+ * 0 if it is not or a negative value if an error occurs.
139
+ */
140
+ int
141
+ xmlSecCheckVersionExt(int major, int minor, int subminor, xmlSecCheckVersionMode mode) {
142
+ /* we always want to have a match for major version number */
143
+ if(major != XMLSEC_VERSION_MAJOR) {
144
+ xmlSecError(XMLSEC_ERRORS_HERE,
145
+ NULL,
146
+ NULL,
147
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
148
+ "expected major version=%d;real major version=%d",
149
+ XMLSEC_VERSION_MAJOR, major);
150
+ return(0);
151
+ }
152
+
153
+ switch(mode) {
154
+ case xmlSecCheckVersionExactMatch:
155
+ if((minor != XMLSEC_VERSION_MINOR) || (subminor != XMLSEC_VERSION_SUBMINOR)) {
156
+ xmlSecError(XMLSEC_ERRORS_HERE,
157
+ NULL,
158
+ NULL,
159
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
160
+ "mode=exact;expected minor version=%d;real minor version=%d;expected subminor version=%d;real subminor version=%d",
161
+ XMLSEC_VERSION_MINOR, minor,
162
+ XMLSEC_VERSION_SUBMINOR, subminor);
163
+ return(0);
164
+ }
165
+ break;
166
+ case xmlSecCheckVersionABICompatible:
167
+ if((minor < XMLSEC_VERSION_MINOR) ||
168
+ ((minor == XMLSEC_VERSION_MINOR) &&
169
+ (subminor < XMLSEC_VERSION_SUBMINOR))) {
170
+ xmlSecError(XMLSEC_ERRORS_HERE,
171
+ NULL,
172
+ NULL,
173
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
174
+ "mode=abi compatible;expected minor version=%d;real minor version=%d;expected subminor version=%d;real subminor version=%d",
175
+ XMLSEC_VERSION_MINOR, minor,
176
+ XMLSEC_VERSION_SUBMINOR, subminor);
177
+ return(0);
178
+ }
179
+ break;
180
+ }
181
+
182
+ return(1);
183
+ }
184
+
185
+
@@ -0,0 +1,1908 @@
1
+ /**
2
+ * XML Security Library (http://www.aleksey.com/xmlsec).
3
+ *
4
+ * Common XML Doc utility functions
5
+ *
6
+ * This is free software; see Copyright file in the source
7
+ * distribution for preciese wording.
8
+ *
9
+ * Copyright (C) 2002-2003 Aleksey Sanin <aleksey@aleksey.com>
10
+ */
11
+ #include "globals.h"
12
+
13
+ #include <stdlib.h>
14
+ #include <string.h>
15
+ #include <ctype.h>
16
+ #include <errno.h>
17
+
18
+ #include <libxml/tree.h>
19
+ #include <libxml/valid.h>
20
+ #include <libxml/xpath.h>
21
+ #include <libxml/xpathInternals.h>
22
+
23
+ #include <xmlsec/xmlsec.h>
24
+ #include <xmlsec/xmltree.h>
25
+ #include <xmlsec/parser.h>
26
+ #include <xmlsec/private.h>
27
+ #include <xmlsec/base64.h>
28
+ #include <xmlsec/errors.h>
29
+
30
+ /**
31
+ * xmlSecFindChild:
32
+ * @parent: the pointer to XML node.
33
+ * @name: the name.
34
+ * @ns: the namespace href (may be NULL).
35
+ *
36
+ * Searches a direct child of the @parent node having given name and
37
+ * namespace href.
38
+ *
39
+ * Returns: the pointer to the found node or NULL if an error occurs or
40
+ * node is not found.
41
+ */
42
+ xmlNodePtr
43
+ xmlSecFindChild(const xmlNodePtr parent, const xmlChar *name, const xmlChar *ns) {
44
+ xmlNodePtr cur;
45
+
46
+ xmlSecAssert2(parent != NULL, NULL);
47
+ xmlSecAssert2(name != NULL, NULL);
48
+
49
+ cur = parent->children;
50
+ while(cur != NULL) {
51
+ if(cur->type == XML_ELEMENT_NODE) {
52
+ if(xmlSecCheckNodeName(cur, name, ns)) {
53
+ return(cur);
54
+ }
55
+ }
56
+ cur = cur->next;
57
+ }
58
+ return(NULL);
59
+ }
60
+
61
+ /**
62
+ * xmlSecFindParent:
63
+ * @cur: the pointer to an XML node.
64
+ * @name: the name.
65
+ * @ns: the namespace href (may be NULL).
66
+ *
67
+ * Searches the ancestors axis of the @cur node for a node having given name
68
+ * and namespace href.
69
+ *
70
+ * Returns: the pointer to the found node or NULL if an error occurs or
71
+ * node is not found.
72
+ */
73
+ xmlNodePtr
74
+ xmlSecFindParent(const xmlNodePtr cur, const xmlChar *name, const xmlChar *ns) {
75
+ xmlSecAssert2(cur != NULL, NULL);
76
+ xmlSecAssert2(name != NULL, NULL);
77
+
78
+ if(xmlSecCheckNodeName(cur, name, ns)) {
79
+ return(cur);
80
+ } else if(cur->parent != NULL) {
81
+ return(xmlSecFindParent(cur->parent, name, ns));
82
+ }
83
+ return(NULL);
84
+ }
85
+
86
+ /**
87
+ * xmlSecFindNode:
88
+ * @parent: the pointer to XML node.
89
+ * @name: the name.
90
+ * @ns: the namespace href (may be NULL).
91
+ *
92
+ * Searches all children of the @parent node having given name and
93
+ * namespace href.
94
+ *
95
+ * Returns: the pointer to the found node or NULL if an error occurs or
96
+ * node is not found.
97
+ */
98
+ xmlNodePtr
99
+ xmlSecFindNode(const xmlNodePtr parent, const xmlChar *name, const xmlChar *ns) {
100
+ xmlNodePtr cur;
101
+ xmlNodePtr ret;
102
+
103
+ xmlSecAssert2(name != NULL, NULL);
104
+
105
+ cur = parent;
106
+ while(cur != NULL) {
107
+ if((cur->type == XML_ELEMENT_NODE) && xmlSecCheckNodeName(cur, name, ns)) {
108
+ return(cur);
109
+ }
110
+ if(cur->children != NULL) {
111
+ ret = xmlSecFindNode(cur->children, name, ns);
112
+ if(ret != NULL) {
113
+ return(ret);
114
+ }
115
+ }
116
+ cur = cur->next;
117
+ }
118
+ return(NULL);
119
+ }
120
+
121
+ /**
122
+ * xmlSecGetNodeNsHref:
123
+ * @cur: the pointer to node.
124
+ *
125
+ * Get's node's namespace href.
126
+ *
127
+ * Returns: node's namespace href.
128
+ */
129
+ const xmlChar*
130
+ xmlSecGetNodeNsHref(const xmlNodePtr cur) {
131
+ xmlNsPtr ns;
132
+
133
+ xmlSecAssert2(cur != NULL, NULL);
134
+
135
+ /* do we have a namespace in the node? */
136
+ if(cur->ns != NULL) {
137
+ return(cur->ns->href);
138
+ }
139
+
140
+ /* search for default namespace */
141
+ ns = xmlSearchNs(cur->doc, cur, NULL);
142
+ if(ns != NULL) {
143
+ return(ns->href);
144
+ }
145
+
146
+ return(NULL);
147
+ }
148
+
149
+ /**
150
+ * xmlSecCheckNodeName:
151
+ * @cur: the pointer to an XML node.
152
+ * @name: the name,
153
+ * @ns: the namespace href.
154
+ *
155
+ * Checks that the node has a given name and a given namespace href.
156
+ *
157
+ * Returns: 1 if the node matches or 0 otherwise.
158
+ */
159
+ int
160
+ xmlSecCheckNodeName(const xmlNodePtr cur, const xmlChar *name, const xmlChar *ns) {
161
+ xmlSecAssert2(cur != NULL, 0);
162
+
163
+ return(xmlStrEqual(cur->name, name) &&
164
+ xmlStrEqual(xmlSecGetNodeNsHref(cur), ns));
165
+ }
166
+
167
+ /**
168
+ * xmlSecAddChild:
169
+ * @parent: the pointer to an XML node.
170
+ * @name: the new node name.
171
+ * @ns: the new node namespace.
172
+ *
173
+ * Adds a child to the node @parent with given @name and namespace @ns.
174
+ *
175
+ * Returns: pointer to the new node or NULL if an error occurs.
176
+ */
177
+ xmlNodePtr
178
+ xmlSecAddChild(xmlNodePtr parent, const xmlChar *name, const xmlChar *ns) {
179
+ xmlNodePtr cur;
180
+ xmlNodePtr text;
181
+
182
+ xmlSecAssert2(parent != NULL, NULL);
183
+ xmlSecAssert2(name != NULL, NULL);
184
+
185
+ if(parent->children == NULL) {
186
+ /* TODO: add indents */
187
+ text = xmlNewText(xmlSecStringCR);
188
+ if(text == NULL) {
189
+ xmlSecError(XMLSEC_ERRORS_HERE,
190
+ NULL,
191
+ "xmlNewText",
192
+ XMLSEC_ERRORS_R_XML_FAILED,
193
+ XMLSEC_ERRORS_NO_MESSAGE);
194
+ return(NULL);
195
+ }
196
+ xmlAddChild(parent, text);
197
+ }
198
+
199
+ cur = xmlNewChild(parent, NULL, name, NULL);
200
+ if(cur == NULL) {
201
+ xmlSecError(XMLSEC_ERRORS_HERE,
202
+ NULL,
203
+ "xmlNewChild",
204
+ XMLSEC_ERRORS_R_XML_FAILED,
205
+ XMLSEC_ERRORS_NO_MESSAGE);
206
+ return(NULL);
207
+ }
208
+
209
+ /* namespaces support */
210
+ if(ns != NULL) {
211
+ xmlNsPtr nsPtr;
212
+
213
+ /* find namespace by href and check that its prefix is not overwritten */
214
+ nsPtr = xmlSearchNsByHref(cur->doc, cur, ns);
215
+ if((nsPtr == NULL) || (xmlSearchNs(cur->doc, cur, nsPtr->prefix) != nsPtr)) {
216
+ nsPtr = xmlNewNs(cur, ns, NULL);
217
+ }
218
+ xmlSetNs(cur, nsPtr);
219
+ }
220
+
221
+ /* TODO: add indents */
222
+ text = xmlNewText(xmlSecStringCR);
223
+ if(text == NULL) {
224
+ xmlSecError(XMLSEC_ERRORS_HERE,
225
+ NULL,
226
+ "xmlNewText",
227
+ XMLSEC_ERRORS_R_XML_FAILED,
228
+ XMLSEC_ERRORS_NO_MESSAGE);
229
+ return(NULL);
230
+ }
231
+ xmlAddChild(parent, text);
232
+
233
+ return(cur);
234
+ }
235
+
236
+ /**
237
+ * xmlSecAddChildNode:
238
+ * @parent: the pointer to an XML node.
239
+ * @child: the new node.
240
+ *
241
+ * Adds @child node to the @parent node.
242
+ *
243
+ * Returns: pointer to the new node or NULL if an error occurs.
244
+ */
245
+ xmlNodePtr
246
+ xmlSecAddChildNode(xmlNodePtr parent, xmlNodePtr child) {
247
+ xmlNodePtr text;
248
+
249
+ xmlSecAssert2(parent != NULL, NULL);
250
+ xmlSecAssert2(child != NULL, NULL);
251
+
252
+ if(parent->children == NULL) {
253
+ /* TODO: add indents */
254
+ text = xmlNewText(xmlSecStringCR);
255
+ if(text == NULL) {
256
+ xmlSecError(XMLSEC_ERRORS_HERE,
257
+ NULL,
258
+ "xmlNewText",
259
+ XMLSEC_ERRORS_R_XML_FAILED,
260
+ XMLSEC_ERRORS_NO_MESSAGE);
261
+ return(NULL);
262
+ }
263
+ xmlAddChild(parent, text);
264
+ }
265
+
266
+ xmlAddChild(parent, child);
267
+
268
+ /* TODO: add indents */
269
+ text = xmlNewText(xmlSecStringCR);
270
+ if(text == NULL) {
271
+ xmlSecError(XMLSEC_ERRORS_HERE,
272
+ NULL,
273
+ "xmlNewText",
274
+ XMLSEC_ERRORS_R_XML_FAILED,
275
+ XMLSEC_ERRORS_NO_MESSAGE);
276
+ return(NULL);
277
+ }
278
+ xmlAddChild(parent, text);
279
+
280
+ return(child);
281
+ }
282
+
283
+ /**
284
+ * xmlSecAddNextSibling
285
+ * @node: the pointer to an XML node.
286
+ * @name: the new node name.
287
+ * @ns: the new node namespace.
288
+ *
289
+ * Adds next sibling to the node @node with given @name and namespace @ns.
290
+ *
291
+ * Returns: pointer to the new node or NULL if an error occurs.
292
+ */
293
+ xmlNodePtr
294
+ xmlSecAddNextSibling(xmlNodePtr node, const xmlChar *name, const xmlChar *ns) {
295
+ xmlNodePtr cur;
296
+ xmlNodePtr text;
297
+
298
+ xmlSecAssert2(node != NULL, NULL);
299
+ xmlSecAssert2(name != NULL, NULL);
300
+
301
+ cur = xmlNewNode(NULL, name);
302
+ if(cur == NULL) {
303
+ xmlSecError(XMLSEC_ERRORS_HERE,
304
+ NULL,
305
+ "xmlNewNode",
306
+ XMLSEC_ERRORS_R_XML_FAILED,
307
+ XMLSEC_ERRORS_NO_MESSAGE);
308
+ return(NULL);
309
+ }
310
+ xmlAddNextSibling(node, cur);
311
+
312
+ /* namespaces support */
313
+ if(ns != NULL) {
314
+ xmlNsPtr nsPtr;
315
+
316
+ /* find namespace by href and check that its prefix is not overwritten */
317
+ nsPtr = xmlSearchNsByHref(cur->doc, cur, ns);
318
+ if((nsPtr == NULL) || (xmlSearchNs(cur->doc, cur, nsPtr->prefix) != nsPtr)) {
319
+ nsPtr = xmlNewNs(cur, ns, NULL);
320
+ }
321
+ xmlSetNs(cur, nsPtr);
322
+ }
323
+
324
+ /* TODO: add indents */
325
+ text = xmlNewText(xmlSecStringCR);
326
+ if(text == NULL) {
327
+ xmlSecError(XMLSEC_ERRORS_HERE,
328
+ NULL,
329
+ "xmlNewText",
330
+ XMLSEC_ERRORS_R_XML_FAILED,
331
+ XMLSEC_ERRORS_NO_MESSAGE);
332
+ return(NULL);
333
+ }
334
+ xmlAddNextSibling(node, text);
335
+
336
+ return(cur);
337
+ }
338
+
339
+ /**
340
+ * xmlSecAddPrevSibling
341
+ * @node: the pointer to an XML node.
342
+ * @name: the new node name.
343
+ * @ns: the new node namespace.
344
+ *
345
+ * Adds prev sibling to the node @node with given @name and namespace @ns.
346
+ *
347
+ * Returns: pointer to the new node or NULL if an error occurs.
348
+ */
349
+ xmlNodePtr
350
+ xmlSecAddPrevSibling(xmlNodePtr node, const xmlChar *name, const xmlChar *ns) {
351
+ xmlNodePtr cur;
352
+ xmlNodePtr text;
353
+
354
+ xmlSecAssert2(node != NULL, NULL);
355
+ xmlSecAssert2(name != NULL, NULL);
356
+
357
+ cur = xmlNewNode(NULL, name);
358
+ if(cur == NULL) {
359
+ xmlSecError(XMLSEC_ERRORS_HERE,
360
+ NULL,
361
+ "xmlNewNode",
362
+ XMLSEC_ERRORS_R_XML_FAILED,
363
+ XMLSEC_ERRORS_NO_MESSAGE);
364
+ return(NULL);
365
+ }
366
+ xmlAddPrevSibling(node, cur);
367
+
368
+ /* namespaces support */
369
+ if(ns != NULL) {
370
+ xmlNsPtr nsPtr;
371
+
372
+ /* find namespace by href and check that its prefix is not overwritten */
373
+ nsPtr = xmlSearchNsByHref(cur->doc, cur, ns);
374
+ if((nsPtr == NULL) || (xmlSearchNs(cur->doc, cur, nsPtr->prefix) != nsPtr)) {
375
+ nsPtr = xmlNewNs(cur, ns, NULL);
376
+ }
377
+ xmlSetNs(cur, nsPtr);
378
+ }
379
+
380
+ /* TODO: add indents */
381
+ text = xmlNewText(xmlSecStringCR);
382
+ if(text == NULL) {
383
+ xmlSecError(XMLSEC_ERRORS_HERE,
384
+ NULL,
385
+ "xmlNewText",
386
+ XMLSEC_ERRORS_R_XML_FAILED,
387
+ XMLSEC_ERRORS_NO_MESSAGE);
388
+ return(NULL);
389
+ }
390
+ xmlAddPrevSibling(node, text);
391
+
392
+ return(cur);
393
+ }
394
+
395
+ /**
396
+ * xmlSecGetNextElementNode:
397
+ * @cur: the pointer to an XML node.
398
+ *
399
+ * Seraches for the next element node.
400
+ *
401
+ * Returns: the pointer to next element node or NULL if it is not found.
402
+ */
403
+ xmlNodePtr
404
+ xmlSecGetNextElementNode(xmlNodePtr cur) {
405
+
406
+ while((cur != NULL) && (cur->type != XML_ELEMENT_NODE)) {
407
+ cur = cur->next;
408
+ }
409
+ return(cur);
410
+ }
411
+
412
+ /**
413
+ * xmlSecReplaceNode:
414
+ * @node: the current node.
415
+ * @newNode: the new node.
416
+ *
417
+ * Swaps the @node and @newNode in the XML tree.
418
+ *
419
+ * Returns: 0 on success or a negative value if an error occurs.
420
+ */
421
+ int
422
+ xmlSecReplaceNode(xmlNodePtr node, xmlNodePtr newNode) {
423
+ return xmlSecReplaceNodeAndReturn(node, newNode, NULL);
424
+ }
425
+
426
+ /**
427
+ * xmlSecReplaceNodeAndReturn:
428
+ * @node: the current node.
429
+ * @newNode: the new node.
430
+ * @replaced: the replaced node, or release it if NULL is given
431
+ *
432
+ * Swaps the @node and @newNode in the XML tree.
433
+ *
434
+ * Returns: 0 on success or a negative value if an error occurs.
435
+ */
436
+ int
437
+ xmlSecReplaceNodeAndReturn(xmlNodePtr node, xmlNodePtr newNode, xmlNodePtr* replaced) {
438
+ xmlNodePtr oldNode;
439
+ int restoreRoot = 0;
440
+
441
+ xmlSecAssert2(node != NULL, -1);
442
+ xmlSecAssert2(newNode != NULL, -1);
443
+
444
+ /* fix documents children if necessary first */
445
+ if((node->doc != NULL) && (node->doc->children == node)) {
446
+ node->doc->children = node->next;
447
+ restoreRoot = 1;
448
+ }
449
+ if((newNode->doc != NULL) && (newNode->doc->children == newNode)) {
450
+ newNode->doc->children = newNode->next;
451
+ }
452
+
453
+ oldNode = xmlReplaceNode(node, newNode);
454
+ if(oldNode == NULL) {
455
+ xmlSecError(XMLSEC_ERRORS_HERE,
456
+ NULL,
457
+ "xmlReplaceNode",
458
+ XMLSEC_ERRORS_R_XML_FAILED,
459
+ XMLSEC_ERRORS_NO_MESSAGE);
460
+ return(-1);
461
+ }
462
+
463
+ if(restoreRoot != 0) {
464
+ xmlDocSetRootElement(oldNode->doc, newNode);
465
+ }
466
+
467
+ /* return the old node if requested */
468
+ if(replaced != NULL) {
469
+ (*replaced) = oldNode;
470
+ } else {
471
+ xmlFreeNode(oldNode);
472
+ }
473
+
474
+ return(0);
475
+ }
476
+
477
+ /**
478
+ * xmlSecReplaceContent
479
+ * @node: the current node.
480
+ * @newNode: the new node.
481
+ *
482
+ * Swaps the content of @node and @newNode.
483
+ *
484
+ * Returns: 0 on success or a negative value if an error occurs.
485
+ */
486
+ int
487
+ xmlSecReplaceContent(xmlNodePtr node, xmlNodePtr newNode) {
488
+ return xmlSecReplaceContentAndReturn(node, newNode, NULL);
489
+ }
490
+
491
+ /**
492
+ * xmlSecReplaceContentAndReturn
493
+ * @node: the current node.
494
+ * @newNode: the new node.
495
+ * @replaced: the replaced nodes, or release them if NULL is given
496
+ *
497
+ * Swaps the content of @node and @newNode.
498
+ *
499
+ * Returns: 0 on success or a negative value if an error occurs.
500
+ */
501
+ int
502
+ xmlSecReplaceContentAndReturn(xmlNodePtr node, xmlNodePtr newNode, xmlNodePtr *replaced) {
503
+ xmlSecAssert2(node != NULL, -1);
504
+ xmlSecAssert2(newNode != NULL, -1);
505
+
506
+ xmlUnlinkNode(newNode);
507
+ xmlSetTreeDoc(newNode, node->doc);
508
+
509
+ /* return the old nodes if requested */
510
+ if(replaced != NULL) {
511
+ xmlNodePtr cur, next, tail;
512
+
513
+ (*replaced) = tail = NULL;
514
+ for(cur = node->children; (cur != NULL); cur = next) {
515
+ next = cur->next;
516
+ if((*replaced) != NULL) {
517
+ /* n is unlinked in this function */
518
+ xmlAddNextSibling(tail, cur);
519
+ tail = cur;
520
+ } else {
521
+ /* this is the first node, (*replaced) is the head */
522
+ xmlUnlinkNode(cur);
523
+ (*replaced) = tail = cur;
524
+ }
525
+ }
526
+ } else {
527
+ /* just delete the content */
528
+ xmlNodeSetContent(node, NULL);
529
+ }
530
+
531
+ xmlAddChild(node, newNode);
532
+ xmlSetTreeDoc(newNode, node->doc);
533
+
534
+ return(0);
535
+ }
536
+
537
+ /**
538
+ * xmlSecReplaceNodeBuffer:
539
+ * @node: the current node.
540
+ * @buffer: the XML data.
541
+ * @size: the XML data size.
542
+ *
543
+ * Swaps the @node and the parsed XML data from the @buffer in the XML tree.
544
+ *
545
+ * Returns: 0 on success or a negative value if an error occurs.
546
+ */
547
+ int
548
+ xmlSecReplaceNodeBuffer(xmlNodePtr node, const xmlSecByte *buffer, xmlSecSize size) {
549
+ return xmlSecReplaceNodeBufferAndReturn(node, buffer, size, NULL);
550
+ }
551
+
552
+ /**
553
+ * xmlSecReplaceNodeBufferAndReturn:
554
+ * @node: the current node.
555
+ * @buffer: the XML data.
556
+ * @size: the XML data size.
557
+ * @replaced: the replaced nodes, or release them if NULL is given
558
+ *
559
+ * Swaps the @node and the parsed XML data from the @buffer in the XML tree.
560
+ *
561
+ * Returns: 0 on success or a negative value if an error occurs.
562
+ */
563
+ int
564
+ xmlSecReplaceNodeBufferAndReturn(xmlNodePtr node, const xmlSecByte *buffer, xmlSecSize size, xmlNodePtr *replaced) {
565
+ xmlNodePtr results = NULL;
566
+ xmlNodePtr next = NULL;
567
+
568
+ xmlSecAssert2(node != NULL, -1);
569
+ xmlSecAssert2(node->parent != NULL, -1);
570
+
571
+ /* parse buffer in the context of node's parent */
572
+ if(xmlParseInNodeContext(node->parent, (const char*)buffer, size, XML_PARSE_NODICT, &results) != XML_ERR_OK) {
573
+ xmlSecError(XMLSEC_ERRORS_HERE,
574
+ NULL,
575
+ "xmlParseInNodeContext",
576
+ XMLSEC_ERRORS_R_XML_FAILED,
577
+ "Failed to parse content");
578
+ return(-1);
579
+ }
580
+
581
+ /* add new nodes */
582
+ while (results != NULL) {
583
+ next = results->next;
584
+ xmlAddPrevSibling(node, results);
585
+ results = next;
586
+ }
587
+
588
+ /* remove old node */
589
+ xmlUnlinkNode(node);
590
+
591
+ /* return the old node if requested */
592
+ if(replaced != NULL) {
593
+ (*replaced) = node;
594
+ } else {
595
+ xmlFreeNode(node);
596
+ }
597
+
598
+ return(0);
599
+ }
600
+
601
+ /**
602
+ * xmlSecNodeEncodeAndSetContent:
603
+ * @node: the pointer to an XML node.
604
+ * @buffer: the pointer to the node content.
605
+ *
606
+ * Encodes "special" characters in the @buffer and sets the result
607
+ * as the node content.
608
+ *
609
+ * Returns: 0 on success or a negative value if an error occurs.
610
+ */
611
+ int
612
+ xmlSecNodeEncodeAndSetContent(xmlNodePtr node, const xmlChar * buffer) {
613
+ xmlSecAssert2(node != NULL, -1);
614
+ xmlSecAssert2(node->doc != NULL, -1);
615
+
616
+ if(buffer != NULL) {
617
+ xmlChar * tmp;
618
+
619
+ tmp = xmlEncodeSpecialChars(node->doc, buffer);
620
+ if (tmp == NULL) {
621
+ xmlSecError(XMLSEC_ERRORS_HERE,
622
+ NULL,
623
+ "xmlEncodeSpecialChars",
624
+ XMLSEC_ERRORS_R_XML_FAILED,
625
+ "Failed to encode special characters");
626
+ return(-1);
627
+ }
628
+
629
+ xmlNodeSetContent(node, tmp);
630
+ xmlFree(tmp);
631
+ } else {
632
+ xmlNodeSetContent(node, NULL);
633
+ }
634
+
635
+ return(0);
636
+ }
637
+
638
+ /**
639
+ * xmlSecAddIDs:
640
+ * @doc: the pointer to an XML document.
641
+ * @cur: the pointer to an XML node.
642
+ * @ids: the pointer to a NULL terminated list of ID attributes.
643
+ *
644
+ * Walks thru all children of the @cur node and adds all attributes
645
+ * from the @ids list to the @doc document IDs attributes hash.
646
+ */
647
+ void
648
+ xmlSecAddIDs(xmlDocPtr doc, xmlNodePtr cur, const xmlChar** ids) {
649
+ xmlNodePtr children = NULL;
650
+
651
+ xmlSecAssert(doc != NULL);
652
+ xmlSecAssert(ids != NULL);
653
+
654
+ if((cur != NULL) && (cur->type == XML_ELEMENT_NODE)) {
655
+ xmlAttrPtr attr;
656
+ xmlAttrPtr tmp;
657
+ int i;
658
+ xmlChar* name;
659
+
660
+ for(attr = cur->properties; attr != NULL; attr = attr->next) {
661
+ for(i = 0; ids[i] != NULL; ++i) {
662
+ if(xmlStrEqual(attr->name, ids[i])) {
663
+ name = xmlNodeListGetString(doc, attr->children, 1);
664
+ if(name != NULL) {
665
+ tmp = xmlGetID(doc, name);
666
+ if(tmp == NULL) {
667
+ xmlAddID(NULL, doc, name, attr);
668
+ } else if(tmp != attr) {
669
+ xmlSecError(XMLSEC_ERRORS_HERE,
670
+ NULL,
671
+ NULL,
672
+ XMLSEC_ERRORS_R_INVALID_DATA,
673
+ "id=%s already defined",
674
+ xmlSecErrorsSafeString(name));
675
+ }
676
+ xmlFree(name);
677
+ }
678
+ }
679
+ }
680
+ }
681
+
682
+ children = cur->children;
683
+ } else if(cur == NULL) {
684
+ children = doc->children;
685
+ }
686
+
687
+ while(children != NULL) {
688
+ if(children->type == XML_ELEMENT_NODE) {
689
+ xmlSecAddIDs(doc, children, ids);
690
+ }
691
+ children = children->next;
692
+ }
693
+ }
694
+
695
+ /**
696
+ * xmlSecGenerateAndAddID:
697
+ * @node: the node to ID attr to.
698
+ * @attrName: the ID attr name.
699
+ * @prefix: the prefix to add to the generated ID (can be NULL).
700
+ * @len: the length of ID.
701
+ *
702
+ * Generates a unique ID in the format <@prefix>base64-encoded(@len random bytes)
703
+ * and puts it in the attribute @attrName.
704
+ *
705
+ * Returns: 0 on success or a negative value if an error occurs.
706
+ */
707
+ int
708
+ xmlSecGenerateAndAddID(xmlNodePtr node, const xmlChar* attrName, const xmlChar* prefix, xmlSecSize len) {
709
+ xmlChar* id;
710
+ int count;
711
+
712
+ xmlSecAssert2(node != NULL, -1);
713
+ xmlSecAssert2(attrName != NULL, -1);
714
+
715
+ /* we will try 5 times before giving up */
716
+ for(count = 0; count < 5; count++) {
717
+ id = xmlSecGenerateID(prefix, len);
718
+ if(id == NULL) {
719
+ xmlSecError(XMLSEC_ERRORS_HERE,
720
+ NULL,
721
+ "xmlSecGenerateID",
722
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
723
+ XMLSEC_ERRORS_NO_MESSAGE);
724
+ return(-1);
725
+ }
726
+
727
+ if((node->doc == NULL) || (xmlGetID(node->doc, id) == NULL)) {
728
+ /* this is a unique ID in the document and we can use it */
729
+ if(xmlSetProp(node, attrName, id) == NULL) {
730
+ xmlSecError(XMLSEC_ERRORS_HERE,
731
+ NULL,
732
+ "xmlSetProp",
733
+ XMLSEC_ERRORS_R_XML_FAILED,
734
+ XMLSEC_ERRORS_NO_MESSAGE);
735
+ xmlFree(id);
736
+ return(-1);
737
+ }
738
+
739
+ xmlFree(id);
740
+ return(0);
741
+ }
742
+ xmlFree(id);
743
+ }
744
+
745
+ return(-1);
746
+ }
747
+
748
+ /**
749
+ * xmlSecGenerateID:
750
+ * @prefix: the prefix to add to the generated ID (can be NULL).
751
+ * @len: the length of ID.
752
+ *
753
+ * Generates a unique ID in the format <@prefix>base64-encoded(@len random bytes).
754
+ * The caller is responsible for freeing returned string using @xmlFree function.
755
+ *
756
+ * Returns: pointer to generated ID string or NULL if an error occurs.
757
+ */
758
+ xmlChar*
759
+ xmlSecGenerateID(const xmlChar* prefix, xmlSecSize len) {
760
+ xmlSecBuffer buffer;
761
+ xmlSecSize i, binLen;
762
+ xmlChar* res;
763
+ xmlChar* p;
764
+ int ret;
765
+
766
+ xmlSecAssert2(len > 0, NULL);
767
+
768
+ /* we will do base64 decoding later */
769
+ binLen = (3 * len + 1) / 4;
770
+
771
+ ret = xmlSecBufferInitialize(&buffer, binLen + 1);
772
+ if(ret < 0) {
773
+ xmlSecError(XMLSEC_ERRORS_HERE,
774
+ NULL,
775
+ "xmlSecBufferInitialize",
776
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
777
+ XMLSEC_ERRORS_NO_MESSAGE);
778
+ return(NULL);
779
+ }
780
+ xmlSecAssert2(xmlSecBufferGetData(&buffer) != NULL, NULL);
781
+ xmlSecAssert2(xmlSecBufferGetMaxSize(&buffer) >= binLen, NULL);
782
+
783
+ ret = xmlSecBufferSetSize(&buffer, binLen);
784
+ if(ret < 0) {
785
+ xmlSecError(XMLSEC_ERRORS_HERE,
786
+ NULL,
787
+ "xmlSecBufferSetSize",
788
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
789
+ XMLSEC_ERRORS_NO_MESSAGE);
790
+ xmlSecBufferFinalize(&buffer);
791
+ return(NULL);
792
+ }
793
+ xmlSecAssert2(xmlSecBufferGetSize(&buffer) == binLen, NULL);
794
+
795
+ /* create random bytes */
796
+ for(i = 0; i < binLen; i++) {
797
+ (xmlSecBufferGetData(&buffer)) [i] = (xmlSecByte) (256.0 * rand() / (RAND_MAX + 1.0));
798
+ }
799
+
800
+ /* base64 encode random bytes */
801
+ res = xmlSecBase64Encode(xmlSecBufferGetData(&buffer), xmlSecBufferGetSize(&buffer), 0);
802
+ if((res == NULL) || (xmlStrlen(res) == 0)) {
803
+ xmlSecError(XMLSEC_ERRORS_HERE,
804
+ NULL,
805
+ "xmlSecBase64Encode",
806
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
807
+ XMLSEC_ERRORS_NO_MESSAGE);
808
+ xmlSecBufferFinalize(&buffer);
809
+ return(NULL);
810
+ }
811
+ xmlSecBufferFinalize(&buffer);
812
+
813
+ /* truncate the generated id attribute if needed */
814
+ if(xmlStrlen(res) > (int)len) {
815
+ res[len] = '\0';
816
+ }
817
+
818
+ /* we need to cleanup base64 encoded id because ID attr can't have '+' or '/' characters */
819
+ for(p = res; (*p) != '\0'; p++) {
820
+ if(((*p) == '+') || ((*p) == '/')) {
821
+ (*p) = '_';
822
+ }
823
+ }
824
+
825
+ /* add prefix if exist */
826
+ if(prefix) {
827
+ xmlChar* tmp;
828
+ xmlSecSize tmpLen;
829
+
830
+ tmpLen = xmlStrlen(prefix) + xmlStrlen(res) + 1;
831
+ tmp = xmlMalloc(tmpLen + 1);
832
+ if(tmp == NULL) {
833
+ xmlSecError(XMLSEC_ERRORS_HERE,
834
+ NULL,
835
+ "xmlMalloc",
836
+ XMLSEC_ERRORS_R_MALLOC_FAILED,
837
+ XMLSEC_ERRORS_NO_MESSAGE);
838
+ xmlFree(res);
839
+ return(NULL);
840
+ }
841
+
842
+ xmlSecStrPrintf(tmp, tmpLen, BAD_CAST "%s%s", prefix, res);
843
+ xmlFree(res);
844
+ res = tmp;
845
+ } else {
846
+ /* no prefix: check that ID attribute starts from a letter */
847
+ if(!(((res[0] >= 'A') && (res[0] <= 'Z')) ||
848
+ ((res[0] >= 'a') && (res[0] <= 'z')))) {
849
+ res[0] = 'A';
850
+ }
851
+ }
852
+
853
+ return(res);
854
+ }
855
+
856
+
857
+ /**
858
+ * xmlSecCreateTree:
859
+ * @rootNodeName: the root node name.
860
+ * @rootNodeNs: the root node namespace (otpional).
861
+ *
862
+ * Creates a new XML tree with one root node @rootNodeName.
863
+ *
864
+ * Returns: pointer to the newly created tree or NULL if an error occurs.
865
+ */
866
+ xmlDocPtr
867
+ xmlSecCreateTree(const xmlChar* rootNodeName, const xmlChar* rootNodeNs) {
868
+ xmlDocPtr doc;
869
+ xmlNodePtr root;
870
+ xmlNsPtr ns;
871
+
872
+ xmlSecAssert2(rootNodeName != NULL, NULL);
873
+
874
+ /* create doc */
875
+ doc = xmlNewDoc(BAD_CAST "1.0");
876
+ if(doc == NULL) {
877
+ xmlSecError(XMLSEC_ERRORS_HERE,
878
+ NULL,
879
+ "xmlNewDoc",
880
+ XMLSEC_ERRORS_R_XML_FAILED,
881
+ XMLSEC_ERRORS_NO_MESSAGE);
882
+ return(NULL);
883
+ }
884
+
885
+ /* create root node */
886
+ root = xmlNewDocNode(doc, NULL, rootNodeName, NULL);
887
+ if(root == NULL) {
888
+ xmlSecError(XMLSEC_ERRORS_HERE,
889
+ NULL,
890
+ "xmlNewDocNode",
891
+ XMLSEC_ERRORS_R_XML_FAILED,
892
+ "node=Keys");
893
+ xmlFreeDoc(doc);
894
+ return(NULL);
895
+ }
896
+ xmlDocSetRootElement(doc, root);
897
+
898
+ /* and set root node namespace */
899
+ ns = xmlNewNs(root, rootNodeNs, NULL);
900
+ if(ns == NULL) {
901
+ xmlSecError(XMLSEC_ERRORS_HERE,
902
+ NULL,
903
+ "xmlNewNs",
904
+ XMLSEC_ERRORS_R_XML_FAILED,
905
+ "ns=%s",
906
+ xmlSecErrorsSafeString(rootNodeNs));
907
+ xmlFreeDoc(doc);
908
+ return(NULL);
909
+ }
910
+ xmlSetNs(root, ns);
911
+
912
+ return(doc);
913
+ }
914
+
915
+ /**
916
+ * xmlSecIsEmptyNode:
917
+ * @node: the node to check
918
+ *
919
+ * Checks whethere the @node is empty (i.e. has only whitespaces children).
920
+ *
921
+ * Returns: 1 if @node is empty, 0 otherwise or a negative value if an error occurs.
922
+ */
923
+ int
924
+ xmlSecIsEmptyNode(xmlNodePtr node) {
925
+ xmlChar* content;
926
+ int res;
927
+
928
+ xmlSecAssert2(node != NULL, -1);
929
+
930
+ if(xmlSecGetNextElementNode(node->children) != NULL) {
931
+ return(0);
932
+ }
933
+
934
+ content = xmlNodeGetContent(node);
935
+ if(content == NULL) {
936
+ return(1);
937
+ }
938
+
939
+ res = xmlSecIsEmptyString(content);
940
+ xmlFree(content);
941
+ return(res);
942
+ }
943
+
944
+ /**
945
+ * xmlSecIsEmptyString:
946
+ * @str: the string to check
947
+ *
948
+ * Checks whethere the @str is empty (i.e. has only whitespaces children).
949
+ *
950
+ * Returns: 1 if @str is empty, 0 otherwise or a negative value if an error occurs.
951
+ */
952
+ int
953
+ xmlSecIsEmptyString(const xmlChar* str) {
954
+ xmlSecAssert2(str != NULL, -1);
955
+
956
+ for( ;*str != '\0'; ++str) {
957
+ if(!isspace((int)(*str))) {
958
+ return(0);
959
+ }
960
+ }
961
+ return(1);
962
+ }
963
+
964
+ /**
965
+ * xmlSecPrintXmlString:
966
+ * @fd: the file descriptor to write the XML string to
967
+ * @str: the string
968
+ *
969
+ * Encodes the @str (e.g. replaces '&' with '&amp;') and writes it to @fd.
970
+ *
971
+ * Returns: he number of bytes transmitted or a negative value if an error occurs.
972
+ */
973
+ int
974
+ xmlSecPrintXmlString(FILE * fd, const xmlChar * str) {
975
+ int res;
976
+
977
+ if(str != NULL) {
978
+ xmlChar * encoded_str = NULL;
979
+ encoded_str = xmlEncodeSpecialChars(NULL, str);
980
+ if(encoded_str == NULL) {
981
+ xmlSecError(XMLSEC_ERRORS_HERE,
982
+ NULL,
983
+ "xmlEncodeSpecialChars",
984
+ XMLSEC_ERRORS_R_XML_FAILED,
985
+ "string=%s",
986
+ xmlSecErrorsSafeString(str));
987
+ return(-1);
988
+ }
989
+
990
+ res = fprintf(fd, "%s", (const char*)encoded_str);
991
+ xmlFree(encoded_str);
992
+ } else {
993
+ res = fprintf(fd, "NULL");
994
+ }
995
+
996
+ if(res < 0) {
997
+ xmlSecError(XMLSEC_ERRORS_HERE,
998
+ NULL,
999
+ "fprintf",
1000
+ XMLSEC_ERRORS_R_IO_FAILED,
1001
+ "res=%d,errno=%d",
1002
+ res, errno);
1003
+ return(-1);
1004
+ }
1005
+ return(res);
1006
+ }
1007
+
1008
+
1009
+ /**
1010
+ * xmlSecGetQName:
1011
+ * @node: the context node.
1012
+ * @href: the QName href (can be NULL).
1013
+ * @local: the QName local part.
1014
+ *
1015
+ * Creates QName (prefix:local) from @href and @local in the context of the @node.
1016
+ * Caller is responsible for freeing returned string with xmlFree.
1017
+ *
1018
+ * Returns: qname or NULL if an error occurs.
1019
+ */
1020
+ xmlChar*
1021
+ xmlSecGetQName(xmlNodePtr node, const xmlChar* href, const xmlChar* local) {
1022
+ xmlChar* qname;
1023
+ xmlNsPtr ns;
1024
+
1025
+ xmlSecAssert2(node != NULL, NULL);
1026
+ xmlSecAssert2(local != NULL, NULL);
1027
+
1028
+ /* we don't want to create namespace node ourselves because
1029
+ * it might cause collisions */
1030
+ ns = xmlSearchNsByHref(node->doc, node, href);
1031
+ if((ns == NULL) && (href != NULL)) {
1032
+ xmlSecError(XMLSEC_ERRORS_HERE,
1033
+ NULL,
1034
+ "xmlSearchNsByHref",
1035
+ XMLSEC_ERRORS_R_XML_FAILED,
1036
+ "node=%s,href=%s",
1037
+ xmlSecErrorsSafeString(node->name),
1038
+ xmlSecErrorsSafeString(href));
1039
+ return(NULL);
1040
+ }
1041
+
1042
+ if((ns != NULL) && (ns->prefix != NULL)) {
1043
+ xmlSecSize len;
1044
+
1045
+ len = xmlStrlen(local) + xmlStrlen(ns->prefix) + 4;
1046
+ qname = xmlMalloc(len);
1047
+ if(qname == NULL) {
1048
+ xmlSecError(XMLSEC_ERRORS_HERE,
1049
+ NULL,
1050
+ "xmlMalloc",
1051
+ XMLSEC_ERRORS_R_MALLOC_FAILED,
1052
+ "node=%s",
1053
+ xmlSecErrorsSafeString(node->name));
1054
+ return(NULL);
1055
+ }
1056
+ xmlSecStrPrintf(qname, len, BAD_CAST "%s:%s", ns->prefix, local);
1057
+ } else {
1058
+ qname = xmlStrdup(local);
1059
+ if(qname == NULL) {
1060
+ xmlSecError(XMLSEC_ERRORS_HERE,
1061
+ NULL,
1062
+ "xmlStrdup",
1063
+ XMLSEC_ERRORS_R_MALLOC_FAILED,
1064
+ "node=%s",
1065
+ xmlSecErrorsSafeString(node->name));
1066
+ return(NULL);
1067
+ }
1068
+ }
1069
+
1070
+
1071
+ return(qname);
1072
+ }
1073
+
1074
+
1075
+ /*************************************************************************
1076
+ *
1077
+ * QName <-> Integer mapping
1078
+ *
1079
+ ************************************************************************/
1080
+ /**
1081
+ * xmlSecQName2IntegerGetInfo:
1082
+ * @info: the qname<->integer mapping information.
1083
+ * @intValue: the integer value.
1084
+ *
1085
+ * Maps integer @intValue to a QName prefix.
1086
+ *
1087
+ * Returns: the QName info that is mapped to @intValue or NULL if such value
1088
+ * is not found.
1089
+ */
1090
+ xmlSecQName2IntegerInfoConstPtr
1091
+ xmlSecQName2IntegerGetInfo(xmlSecQName2IntegerInfoConstPtr info, int intValue) {
1092
+ unsigned int ii;
1093
+
1094
+ xmlSecAssert2(info != NULL, NULL);
1095
+
1096
+ for(ii = 0; info[ii].qnameLocalPart != NULL; ii++) {
1097
+ if(info[ii].intValue == intValue) {
1098
+ return(&info[ii]);
1099
+ }
1100
+ }
1101
+
1102
+ return(NULL);
1103
+ }
1104
+
1105
+ /**
1106
+ * xmlSecQName2IntegerGetInteger:
1107
+ * @info: the qname<->integer mapping information.
1108
+ * @qnameHref: the qname href value.
1109
+ * @qnameLocalPart: the qname local part value.
1110
+ * @intValue: the pointer to result integer value.
1111
+ *
1112
+ * Maps qname qname to an integer and returns it in @intValue.
1113
+ *
1114
+ * Returns: 0 on success or a negative value if an error occurs,
1115
+ */
1116
+ int
1117
+ xmlSecQName2IntegerGetInteger(xmlSecQName2IntegerInfoConstPtr info,
1118
+ const xmlChar* qnameHref, const xmlChar* qnameLocalPart,
1119
+ int* intValue) {
1120
+ unsigned int ii;
1121
+
1122
+ xmlSecAssert2(info != NULL, -1);
1123
+ xmlSecAssert2(qnameLocalPart != NULL, -1);
1124
+ xmlSecAssert2(intValue != NULL, -1);
1125
+
1126
+ for(ii = 0; info[ii].qnameLocalPart != NULL; ii++) {
1127
+ if(xmlStrEqual(info[ii].qnameLocalPart, qnameLocalPart) &&
1128
+ xmlStrEqual(info[ii].qnameHref, qnameHref)) {
1129
+ (*intValue) = info[ii].intValue;
1130
+ return(0);
1131
+ }
1132
+ }
1133
+
1134
+ return(-1);
1135
+ }
1136
+
1137
+ /**
1138
+ * xmlSecQName2IntegerGetIntegerFromString:
1139
+ * @info: the qname<->integer mapping information.
1140
+ * @node: the pointer to node.
1141
+ * @qname: the qname string.
1142
+ * @intValue: the pointer to result integer value.
1143
+ *
1144
+ * Converts @qname into integer in context of @node.
1145
+ *
1146
+ * Returns: 0 on success or a negative value if an error occurs,
1147
+ */
1148
+ int
1149
+ xmlSecQName2IntegerGetIntegerFromString(xmlSecQName2IntegerInfoConstPtr info,
1150
+ xmlNodePtr node, const xmlChar* qname,
1151
+ int* intValue) {
1152
+ const xmlChar* qnameLocalPart = NULL;
1153
+ xmlChar* qnamePrefix = NULL;
1154
+ const xmlChar* qnameHref;
1155
+ xmlNsPtr ns;
1156
+ int ret;
1157
+
1158
+ xmlSecAssert2(info != NULL, -1);
1159
+ xmlSecAssert2(node != NULL, -1);
1160
+ xmlSecAssert2(qname != NULL, -1);
1161
+ xmlSecAssert2(intValue != NULL, -1);
1162
+
1163
+ qnameLocalPart = xmlStrchr(qname, ':');
1164
+ if(qnameLocalPart != NULL) {
1165
+ qnamePrefix = xmlStrndup(qname, qnameLocalPart - qname);
1166
+ if(qnamePrefix == NULL) {
1167
+ xmlSecError(XMLSEC_ERRORS_HERE,
1168
+ NULL,
1169
+ "xmlStrndup",
1170
+ XMLSEC_ERRORS_R_MALLOC_FAILED,
1171
+ "node=%s,value=%s",
1172
+ xmlSecErrorsSafeString(node->name),
1173
+ xmlSecErrorsSafeString(qname));
1174
+ return(-1);
1175
+ }
1176
+ qnameLocalPart++;
1177
+ } else {
1178
+ qnamePrefix = NULL;
1179
+ qnameLocalPart = qname;
1180
+ }
1181
+
1182
+ /* search namespace href */
1183
+ ns = xmlSearchNs(node->doc, node, qnamePrefix);
1184
+ if((ns == NULL) && (qnamePrefix != NULL)) {
1185
+ xmlSecError(XMLSEC_ERRORS_HERE,
1186
+ NULL,
1187
+ "xmlSearchNs",
1188
+ XMLSEC_ERRORS_R_XML_FAILED,
1189
+ "node=%s,qnamePrefix=%s",
1190
+ xmlSecErrorsSafeString(node->name),
1191
+ xmlSecErrorsSafeString(qnamePrefix));
1192
+ if(qnamePrefix != NULL) {
1193
+ xmlFree(qnamePrefix);
1194
+ }
1195
+ return(-1);
1196
+ }
1197
+ qnameHref = (ns != NULL) ? ns->href : BAD_CAST NULL;
1198
+
1199
+ /* and finally search for integer */
1200
+ ret = xmlSecQName2IntegerGetInteger(info, qnameHref, qnameLocalPart, intValue);
1201
+ if(ret < 0) {
1202
+ xmlSecError(XMLSEC_ERRORS_HERE,
1203
+ NULL,
1204
+ "xmlSecQName2IntegerGetInteger",
1205
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
1206
+ "node=%s,qnameLocalPart=%s,qnameHref=%s",
1207
+ xmlSecErrorsSafeString(node->name),
1208
+ xmlSecErrorsSafeString(qnameLocalPart),
1209
+ xmlSecErrorsSafeString(qnameHref));
1210
+ if(qnamePrefix != NULL) {
1211
+ xmlFree(qnamePrefix);
1212
+ }
1213
+ return(-1);
1214
+ }
1215
+
1216
+ if(qnamePrefix != NULL) {
1217
+ xmlFree(qnamePrefix);
1218
+ }
1219
+ return(0);
1220
+ }
1221
+
1222
+
1223
+ /**
1224
+ * xmlSecQName2IntegerGetStringFromInteger:
1225
+ * @info: the qname<->integer mapping information.
1226
+ * @node: the pointer to node.
1227
+ * @intValue: the integer value.
1228
+ *
1229
+ * Creates qname string for @intValue in context of given @node. Caller
1230
+ * is responsible for freeing returned string with @xmlFree.
1231
+ *
1232
+ * Returns: pointer to newly allocated string on success or NULL if an error occurs,
1233
+ */
1234
+ xmlChar*
1235
+ xmlSecQName2IntegerGetStringFromInteger(xmlSecQName2IntegerInfoConstPtr info,
1236
+ xmlNodePtr node, int intValue) {
1237
+ xmlSecQName2IntegerInfoConstPtr qnameInfo;
1238
+
1239
+ xmlSecAssert2(info != NULL, NULL);
1240
+ xmlSecAssert2(node != NULL, NULL);
1241
+
1242
+ qnameInfo = xmlSecQName2IntegerGetInfo(info, intValue);
1243
+ if(qnameInfo == NULL) {
1244
+ xmlSecError(XMLSEC_ERRORS_HERE,
1245
+ NULL,
1246
+ "xmlSecQName2IntegerGetInfo",
1247
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
1248
+ "node=%s,intValue=%d",
1249
+ xmlSecErrorsSafeString(node->name),
1250
+ intValue);
1251
+ return(NULL);
1252
+ }
1253
+
1254
+ return (xmlSecGetQName(node, qnameInfo->qnameHref, qnameInfo->qnameLocalPart));
1255
+ }
1256
+
1257
+ /**
1258
+ * xmlSecQName2IntegerNodeRead:
1259
+ * @info: the qname<->integer mapping information.
1260
+ * @node: the pointer to node.
1261
+ * @intValue: the pointer to result integer value.
1262
+ *
1263
+ * Reads the content of @node and converts it to an integer using mapping
1264
+ * from @info.
1265
+ *
1266
+ * Returns: 0 on success or a negative value if an error occurs,
1267
+ */
1268
+ int
1269
+ xmlSecQName2IntegerNodeRead(xmlSecQName2IntegerInfoConstPtr info, xmlNodePtr node, int* intValue) {
1270
+ xmlChar* content = NULL;
1271
+ int ret;
1272
+
1273
+ xmlSecAssert2(info != NULL, -1);
1274
+ xmlSecAssert2(node != NULL, -1);
1275
+ xmlSecAssert2(intValue != NULL, -1);
1276
+
1277
+ content = xmlNodeGetContent(node);
1278
+ if(content == NULL) {
1279
+ xmlSecError(XMLSEC_ERRORS_HERE,
1280
+ NULL,
1281
+ "xmlNodeGetContent",
1282
+ XMLSEC_ERRORS_R_XML_FAILED,
1283
+ "node=%s",
1284
+ xmlSecErrorsSafeString(node->name));
1285
+ return(-1);
1286
+ }
1287
+ /* todo: trim content? */
1288
+
1289
+ ret = xmlSecQName2IntegerGetIntegerFromString(info, node, content, intValue);
1290
+ if(ret < 0) {
1291
+ xmlSecError(XMLSEC_ERRORS_HERE,
1292
+ NULL,
1293
+ "xmlSecQName2IntegerGetIntegerFromString",
1294
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
1295
+ "node=%s,value=%s",
1296
+ xmlSecErrorsSafeString(node->name),
1297
+ xmlSecErrorsSafeString(content));
1298
+ xmlFree(content);
1299
+ return(-1);
1300
+ }
1301
+
1302
+ xmlFree(content);
1303
+ return(0);
1304
+ }
1305
+
1306
+ /**
1307
+ * xmlSecQName2IntegerNodeWrite:
1308
+ * @info: the qname<->integer mapping information.
1309
+ * @node: the parent node.
1310
+ * @nodeName: the child node name.
1311
+ * @nodeNs: the child node namespace.
1312
+ * @intValue: the integer value.
1313
+ *
1314
+ * Creates new child node in @node and sets its value to @intValue.
1315
+ *
1316
+ * Returns: 0 on success or a negative value if an error occurs,
1317
+ */
1318
+ int
1319
+ xmlSecQName2IntegerNodeWrite(xmlSecQName2IntegerInfoConstPtr info, xmlNodePtr node,
1320
+ const xmlChar* nodeName, const xmlChar* nodeNs, int intValue) {
1321
+ xmlNodePtr cur;
1322
+ xmlChar* qname = NULL;
1323
+
1324
+ xmlSecAssert2(info != NULL, -1);
1325
+ xmlSecAssert2(node != NULL, -1);
1326
+ xmlSecAssert2(nodeName != NULL, -1);
1327
+
1328
+ /* find and build qname */
1329
+ qname = xmlSecQName2IntegerGetStringFromInteger(info, node, intValue);
1330
+ if(qname == NULL) {
1331
+ xmlSecError(XMLSEC_ERRORS_HERE,
1332
+ NULL,
1333
+ "xmlSecQName2IntegerGetStringFromInteger",
1334
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
1335
+ "node=%s,intValue=%d",
1336
+ xmlSecErrorsSafeString(node->name),
1337
+ intValue);
1338
+ return(-1);
1339
+ }
1340
+
1341
+ cur = xmlSecAddChild(node, nodeName, nodeNs);
1342
+ if(cur == NULL) {
1343
+ xmlSecError(XMLSEC_ERRORS_HERE,
1344
+ NULL,
1345
+ "xmlSecAddChild",
1346
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
1347
+ "node=%s,intValue=%d",
1348
+ xmlSecErrorsSafeString(nodeName),
1349
+ intValue);
1350
+ xmlFree(qname);
1351
+ return(-1);
1352
+ }
1353
+
1354
+ xmlNodeSetContent(cur, qname);
1355
+ xmlFree(qname);
1356
+ return(0);
1357
+ }
1358
+
1359
+ /**
1360
+ * xmlSecQName2IntegerAttributeRead:
1361
+ * @info: the qname<->integer mapping information.
1362
+ * @node: the element node.
1363
+ * @attrName: the attribute name.
1364
+ * @intValue: the pointer to result integer value.
1365
+ *
1366
+ * Gets the value of @attrName atrtibute from @node and converts it to integer
1367
+ * according to @info.
1368
+ *
1369
+ * Returns: 0 on success or a negative value if an error occurs,
1370
+ */
1371
+ int
1372
+ xmlSecQName2IntegerAttributeRead(xmlSecQName2IntegerInfoConstPtr info, xmlNodePtr node,
1373
+ const xmlChar* attrName, int* intValue) {
1374
+ xmlChar* attrValue;
1375
+ int ret;
1376
+
1377
+ xmlSecAssert2(info != NULL, -1);
1378
+ xmlSecAssert2(node != NULL, -1);
1379
+ xmlSecAssert2(attrName != NULL, -1);
1380
+ xmlSecAssert2(intValue != NULL, -1);
1381
+
1382
+ attrValue = xmlGetProp(node, attrName);
1383
+ if(attrValue == NULL) {
1384
+ xmlSecError(XMLSEC_ERRORS_HERE,
1385
+ NULL,
1386
+ "xmlGetProp",
1387
+ XMLSEC_ERRORS_R_XML_FAILED,
1388
+ "node=%s,attrValue=%s",
1389
+ xmlSecErrorsSafeString(node->name),
1390
+ xmlSecErrorsSafeString(attrName));
1391
+ return(-1);
1392
+ }
1393
+ /* todo: trim value? */
1394
+
1395
+ ret = xmlSecQName2IntegerGetIntegerFromString(info, node, attrValue, intValue);
1396
+ if(ret < 0) {
1397
+ xmlSecError(XMLSEC_ERRORS_HERE,
1398
+ NULL,
1399
+ "xmlSecQName2IntegerGetIntegerFromString",
1400
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
1401
+ "node=%s,attrName=%s,attrValue=%s",
1402
+ xmlSecErrorsSafeString(node->name),
1403
+ xmlSecErrorsSafeString(attrName),
1404
+ xmlSecErrorsSafeString(attrValue));
1405
+ xmlFree(attrValue);
1406
+ return(-1);
1407
+ }
1408
+
1409
+ xmlFree(attrValue);
1410
+ return(0);
1411
+ }
1412
+
1413
+ /**
1414
+ * xmlSecQName2IntegerAttributeWrite:
1415
+ * @info: the qname<->integer mapping information.
1416
+ * @node: the parent node.
1417
+ * @attrName: the name of attribute.
1418
+ * @intValue: the integer value.
1419
+ *
1420
+ * Converts @intValue to a qname and sets it to the value of
1421
+ * attribute @attrName in @node.
1422
+ *
1423
+ * Returns: 0 on success or a negative value if an error occurs,
1424
+ */
1425
+ int
1426
+ xmlSecQName2IntegerAttributeWrite(xmlSecQName2IntegerInfoConstPtr info, xmlNodePtr node,
1427
+ const xmlChar* attrName, int intValue) {
1428
+ xmlChar* qname;
1429
+ xmlAttrPtr attr;
1430
+
1431
+ xmlSecAssert2(info != NULL, -1);
1432
+ xmlSecAssert2(node != NULL, -1);
1433
+ xmlSecAssert2(attrName != NULL, -1);
1434
+
1435
+ /* find and build qname */
1436
+ qname = xmlSecQName2IntegerGetStringFromInteger(info, node, intValue);
1437
+ if(qname == NULL) {
1438
+ xmlSecError(XMLSEC_ERRORS_HERE,
1439
+ NULL,
1440
+ "xmlSecQName2IntegerGetStringFromInteger",
1441
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
1442
+ "node=%s,attrName=%s,intValue=%d",
1443
+ xmlSecErrorsSafeString(node->name),
1444
+ xmlSecErrorsSafeString(attrName),
1445
+ intValue);
1446
+ return(-1);
1447
+ }
1448
+
1449
+ attr = xmlSetProp(node, attrName, qname);
1450
+ if(attr == NULL) {
1451
+ xmlSecError(XMLSEC_ERRORS_HERE,
1452
+ NULL,
1453
+ "xmlSecAddChildNode",
1454
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
1455
+ "node=%s,attrName=%s,intValue=%d",
1456
+ xmlSecErrorsSafeString(node->name),
1457
+ xmlSecErrorsSafeString(attrName),
1458
+ intValue);
1459
+ xmlFree(qname);
1460
+ return(-1);
1461
+ }
1462
+
1463
+ xmlFree(qname);
1464
+ return(0);
1465
+ }
1466
+
1467
+ /**
1468
+ * xmlSecQName2IntegerDebugDump:
1469
+ * @info: the qname<->integer mapping information.
1470
+ * @intValue: the integer value.
1471
+ * @name: the value name to print.
1472
+ * @output: the pointer to output FILE.
1473
+ *
1474
+ * Prints @intValue into @output.
1475
+ */
1476
+ void
1477
+ xmlSecQName2IntegerDebugDump(xmlSecQName2IntegerInfoConstPtr info, int intValue,
1478
+ const xmlChar* name, FILE* output) {
1479
+ xmlSecQName2IntegerInfoConstPtr qnameInfo;
1480
+
1481
+ xmlSecAssert(info != NULL);
1482
+ xmlSecAssert(name != NULL);
1483
+ xmlSecAssert(output != NULL);
1484
+
1485
+ qnameInfo = xmlSecQName2IntegerGetInfo(info, intValue);
1486
+ if(qnameInfo != NULL) {
1487
+ fprintf(output, "== %s: %d (name=\"%s\", href=\"%s\")\n", name, intValue,
1488
+ (qnameInfo->qnameLocalPart) ? qnameInfo->qnameLocalPart : BAD_CAST NULL,
1489
+ (qnameInfo->qnameHref) ? qnameInfo->qnameHref : BAD_CAST NULL);
1490
+ }
1491
+ }
1492
+
1493
+ /**
1494
+ * xmlSecQName2IntegerDebugXmlDump:
1495
+ * @info: the qname<->integer mapping information.
1496
+ * @intValue: the integer value.
1497
+ * @name: the value name to print.
1498
+ * @output: the pointer to output FILE.
1499
+ *
1500
+ * Prints @intValue into @output in XML format.
1501
+ */
1502
+ void
1503
+ xmlSecQName2IntegerDebugXmlDump(xmlSecQName2IntegerInfoConstPtr info, int intValue,
1504
+ const xmlChar* name, FILE* output) {
1505
+ xmlSecQName2IntegerInfoConstPtr qnameInfo;
1506
+
1507
+ xmlSecAssert(info != NULL);
1508
+ xmlSecAssert(name != NULL);
1509
+ xmlSecAssert(output != NULL);
1510
+
1511
+ qnameInfo = xmlSecQName2IntegerGetInfo(info, intValue);
1512
+ if(qnameInfo != NULL) {
1513
+ fprintf(output, "<%s value=\"%d\" href=\"%s\">%s<%s>\n", name, intValue,
1514
+ (qnameInfo->qnameHref) ? qnameInfo->qnameHref : BAD_CAST NULL,
1515
+ (qnameInfo->qnameLocalPart) ? qnameInfo->qnameLocalPart : BAD_CAST NULL,
1516
+ name);
1517
+ }
1518
+ }
1519
+
1520
+
1521
+ /*************************************************************************
1522
+ *
1523
+ * QName <-> Bits mask mapping
1524
+ *
1525
+ ************************************************************************/
1526
+ /**
1527
+ * xmlSecQName2BitMaskGetInfo:
1528
+ * @info: the qname<->bit mask mapping information.
1529
+ * @mask: the bit mask.
1530
+ *
1531
+ * Converts @mask to qname.
1532
+ *
1533
+ * Returns: pointer to the qname info for @mask or NULL if mask is unknown.
1534
+ */
1535
+ xmlSecQName2BitMaskInfoConstPtr
1536
+ xmlSecQName2BitMaskGetInfo(xmlSecQName2BitMaskInfoConstPtr info, xmlSecBitMask mask) {
1537
+ unsigned int ii;
1538
+
1539
+ xmlSecAssert2(info != NULL, NULL);
1540
+
1541
+ for(ii = 0; info[ii].qnameLocalPart != NULL; ii++) {
1542
+ xmlSecAssert2(info[ii].mask != 0, NULL);
1543
+ if(info[ii].mask == mask) {
1544
+ return(&info[ii]);
1545
+ }
1546
+ }
1547
+
1548
+ return(NULL);
1549
+ }
1550
+
1551
+ /**
1552
+ * xmlSecQName2BitMaskGetBitMask:
1553
+ * @info: the qname<->bit mask mapping information.
1554
+ * @qnameHref: the qname Href value.
1555
+ * @qnameLocalPart: the qname LocalPart value.
1556
+ * @mask: the pointer to result mask.
1557
+ *
1558
+ * Converts @qnameLocalPart to @mask.
1559
+ *
1560
+ * Returns: 0 on success or a negative value if an error occurs,
1561
+ */
1562
+ int
1563
+ xmlSecQName2BitMaskGetBitMask(xmlSecQName2BitMaskInfoConstPtr info,
1564
+ const xmlChar* qnameHref, const xmlChar* qnameLocalPart,
1565
+ xmlSecBitMask* mask) {
1566
+ unsigned int ii;
1567
+
1568
+ xmlSecAssert2(info != NULL, -1);
1569
+ xmlSecAssert2(qnameLocalPart != NULL, -1);
1570
+ xmlSecAssert2(mask != NULL, -1);
1571
+
1572
+ for(ii = 0; info[ii].qnameLocalPart != NULL; ii++) {
1573
+ xmlSecAssert2(info[ii].mask != 0, -1);
1574
+ if(xmlStrEqual(info[ii].qnameLocalPart, qnameLocalPart) &&
1575
+ xmlStrEqual(info[ii].qnameHref, qnameHref)) {
1576
+
1577
+ (*mask) = info[ii].mask;
1578
+ return(0);
1579
+ }
1580
+ }
1581
+
1582
+ return(-1);
1583
+ }
1584
+
1585
+ /**
1586
+ * xmlSecQName2BitMaskGetBitMaskFromString:
1587
+ * @info: the qname<->integer mapping information.
1588
+ * @node: the pointer to node.
1589
+ * @qname: the qname string.
1590
+ * @mask: the pointer to result msk value.
1591
+ *
1592
+ * Converts @qname into integer in context of @node.
1593
+ *
1594
+ * Returns: 0 on success or a negative value if an error occurs,
1595
+ */
1596
+ int
1597
+ xmlSecQName2BitMaskGetBitMaskFromString(xmlSecQName2BitMaskInfoConstPtr info,
1598
+ xmlNodePtr node, const xmlChar* qname,
1599
+ xmlSecBitMask* mask) {
1600
+ const xmlChar* qnameLocalPart = NULL;
1601
+ xmlChar* qnamePrefix = NULL;
1602
+ const xmlChar* qnameHref;
1603
+ xmlNsPtr ns;
1604
+ int ret;
1605
+
1606
+ xmlSecAssert2(info != NULL, -1);
1607
+ xmlSecAssert2(node != NULL, -1);
1608
+ xmlSecAssert2(qname != NULL, -1);
1609
+ xmlSecAssert2(mask != NULL, -1);
1610
+
1611
+ qnameLocalPart = xmlStrchr(qname, ':');
1612
+ if(qnameLocalPart != NULL) {
1613
+ qnamePrefix = xmlStrndup(qname, qnameLocalPart - qname);
1614
+ if(qnamePrefix == NULL) {
1615
+ xmlSecError(XMLSEC_ERRORS_HERE,
1616
+ NULL,
1617
+ "xmlStrndup",
1618
+ XMLSEC_ERRORS_R_MALLOC_FAILED,
1619
+ "node=%s,value=%s",
1620
+ xmlSecErrorsSafeString(node->name),
1621
+ xmlSecErrorsSafeString(qname));
1622
+ return(-1);
1623
+ }
1624
+ qnameLocalPart++;
1625
+ } else {
1626
+ qnamePrefix = NULL;
1627
+ qnameLocalPart = qname;
1628
+ }
1629
+
1630
+ /* search namespace href */
1631
+ ns = xmlSearchNs(node->doc, node, qnamePrefix);
1632
+ if((ns == NULL) && (qnamePrefix != NULL)) {
1633
+ xmlSecError(XMLSEC_ERRORS_HERE,
1634
+ NULL,
1635
+ "xmlSearchNs",
1636
+ XMLSEC_ERRORS_R_XML_FAILED,
1637
+ "node=%s,qnamePrefix=%s",
1638
+ xmlSecErrorsSafeString(node->name),
1639
+ xmlSecErrorsSafeString(qnamePrefix));
1640
+ if(qnamePrefix != NULL) {
1641
+ xmlFree(qnamePrefix);
1642
+ }
1643
+ return(-1);
1644
+ }
1645
+ qnameHref = (ns != NULL) ? ns->href : BAD_CAST NULL;
1646
+
1647
+ /* and finally search for integer */
1648
+ ret = xmlSecQName2BitMaskGetBitMask(info, qnameHref, qnameLocalPart, mask);
1649
+ if(ret < 0) {
1650
+ xmlSecError(XMLSEC_ERRORS_HERE,
1651
+ NULL,
1652
+ "xmlSecQName2BitMaskGetBitMask",
1653
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
1654
+ "node=%s,qnameLocalPart=%s,qnameHref=%s",
1655
+ xmlSecErrorsSafeString(node->name),
1656
+ xmlSecErrorsSafeString(qnameLocalPart),
1657
+ xmlSecErrorsSafeString(qnameHref));
1658
+ if(qnamePrefix != NULL) {
1659
+ xmlFree(qnamePrefix);
1660
+ }
1661
+ return(-1);
1662
+ }
1663
+
1664
+ if(qnamePrefix != NULL) {
1665
+ xmlFree(qnamePrefix);
1666
+ }
1667
+ return(0);
1668
+ }
1669
+
1670
+
1671
+ /**
1672
+ * xmlSecQName2BitMaskGetStringFromBitMask:
1673
+ * @info: the qname<->integer mapping information.
1674
+ * @node: the pointer to node.
1675
+ * @mask: the mask.
1676
+ *
1677
+ * Creates qname string for @mask in context of given @node. Caller
1678
+ * is responsible for freeing returned string with @xmlFree.
1679
+ *
1680
+ * Returns: pointer to newly allocated string on success or NULL if an error occurs,
1681
+ */
1682
+ xmlChar*
1683
+ xmlSecQName2BitMaskGetStringFromBitMask(xmlSecQName2BitMaskInfoConstPtr info,
1684
+ xmlNodePtr node, xmlSecBitMask mask) {
1685
+ xmlSecQName2BitMaskInfoConstPtr qnameInfo;
1686
+
1687
+ xmlSecAssert2(info != NULL, NULL);
1688
+ xmlSecAssert2(node != NULL, NULL);
1689
+
1690
+ qnameInfo = xmlSecQName2BitMaskGetInfo(info, mask);
1691
+ if(qnameInfo == NULL) {
1692
+ xmlSecError(XMLSEC_ERRORS_HERE,
1693
+ NULL,
1694
+ "xmlSecQName2BitMaskGetInfo",
1695
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
1696
+ "node=%s,mask=%d",
1697
+ xmlSecErrorsSafeString(node->name),
1698
+ mask);
1699
+ return(NULL);
1700
+ }
1701
+
1702
+ return(xmlSecGetQName(node, qnameInfo->qnameHref, qnameInfo->qnameLocalPart));
1703
+ }
1704
+
1705
+ /**
1706
+ * xmlSecQName2BitMaskNodesRead:
1707
+ * @info: the qname<->bit mask mapping information.
1708
+ * @node: the start.
1709
+ * @nodeName: the mask nodes name.
1710
+ * @nodeNs: the mask nodes namespace.
1711
+ * @stopOnUnknown: if this flag is set then function exits if unknown
1712
+ * value was found.
1713
+ * @mask: the pointer to result mask.
1714
+ *
1715
+ * Reads <@nodeNs:@nodeName> elements and puts the result bit mask
1716
+ * into @mask. When function exits, @node points to the first element node
1717
+ * after all the <@nodeNs:@nodeName> elements.
1718
+ *
1719
+ * Returns: 0 on success or a negative value if an error occurs,
1720
+ */
1721
+ int
1722
+ xmlSecQName2BitMaskNodesRead(xmlSecQName2BitMaskInfoConstPtr info, xmlNodePtr* node,
1723
+ const xmlChar* nodeName, const xmlChar* nodeNs,
1724
+ int stopOnUnknown, xmlSecBitMask* mask) {
1725
+ xmlNodePtr cur;
1726
+ xmlChar* content;
1727
+ xmlSecBitMask tmp;
1728
+ int ret;
1729
+
1730
+ xmlSecAssert2(info != NULL, -1);
1731
+ xmlSecAssert2(node != NULL, -1);
1732
+ xmlSecAssert2(mask != NULL, -1);
1733
+
1734
+ (*mask) = 0;
1735
+ cur = (*node);
1736
+ while((cur != NULL) && (xmlSecCheckNodeName(cur, nodeName, nodeNs))) {
1737
+ content = xmlNodeGetContent(cur);
1738
+ if(content == NULL) {
1739
+ xmlSecError(XMLSEC_ERRORS_HERE,
1740
+ NULL,
1741
+ "xmlNodeGetContent",
1742
+ XMLSEC_ERRORS_R_XML_FAILED,
1743
+ "node=%s",
1744
+ xmlSecErrorsSafeString(cur->name));
1745
+ return(-1);
1746
+ }
1747
+
1748
+ ret = xmlSecQName2BitMaskGetBitMaskFromString(info, cur, content, &tmp);
1749
+ if(ret < 0) {
1750
+ xmlSecError(XMLSEC_ERRORS_HERE,
1751
+ NULL,
1752
+ "xmlSecQName2BitMaskGetBitMaskFromString",
1753
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
1754
+ "value=%s",
1755
+ xmlSecErrorsSafeString(content));
1756
+ xmlFree(content);
1757
+ return(-1);
1758
+ }
1759
+ xmlFree(content);
1760
+
1761
+ if((stopOnUnknown != 0) && (tmp == 0)) {
1762
+ /* todo: better error */
1763
+ xmlSecError(XMLSEC_ERRORS_HERE,
1764
+ NULL,
1765
+ "xmlSecQName2BitMaskGetBitMaskFromString",
1766
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
1767
+ "value=%s",
1768
+ xmlSecErrorsSafeString(content));
1769
+ return(-1);
1770
+ }
1771
+
1772
+ (*mask) |= tmp;
1773
+ cur = xmlSecGetNextElementNode(cur->next);
1774
+ }
1775
+
1776
+ (*node) = cur;
1777
+ return(0);
1778
+ }
1779
+
1780
+ /**
1781
+ * xmlSecQName2BitMaskNodesWrite:
1782
+ * @info: the qname<->bit mask mapping information.
1783
+ * @node: the parent element for mask nodes.
1784
+ * @nodeName: the mask nodes name.
1785
+ * @nodeNs: the mask nodes namespace.
1786
+ * @mask: the bit mask.
1787
+ *
1788
+ * Writes <@nodeNs:@nodeName> elemnts with values from @mask to @node.
1789
+ *
1790
+ * Returns: 0 on success or a negative value if an error occurs,
1791
+ */
1792
+ int
1793
+ xmlSecQName2BitMaskNodesWrite(xmlSecQName2BitMaskInfoConstPtr info, xmlNodePtr node,
1794
+ const xmlChar* nodeName, const xmlChar* nodeNs,
1795
+ xmlSecBitMask mask) {
1796
+ unsigned int ii;
1797
+
1798
+ xmlSecAssert2(info != NULL, -1);
1799
+ xmlSecAssert2(node != NULL, -1);
1800
+ xmlSecAssert2(nodeName != NULL, -1);
1801
+
1802
+ for(ii = 0; (mask != 0) && (info[ii].qnameLocalPart != NULL); ii++) {
1803
+ xmlSecAssert2(info[ii].mask != 0, -1);
1804
+
1805
+ if((mask & info[ii].mask) != 0) {
1806
+ xmlNodePtr cur;
1807
+ xmlChar* qname;
1808
+
1809
+ qname = xmlSecGetQName(node, info[ii].qnameHref, info[ii].qnameLocalPart);
1810
+ if(qname == NULL) {
1811
+ xmlSecError(XMLSEC_ERRORS_HERE,
1812
+ NULL,
1813
+ "xmlSecGetQName",
1814
+ XMLSEC_ERRORS_R_XML_FAILED,
1815
+ "node=%s",
1816
+ xmlSecErrorsSafeString(nodeName));
1817
+ return(-1);
1818
+ }
1819
+
1820
+ cur = xmlSecAddChild(node, nodeName, nodeNs);
1821
+ if(cur == NULL) {
1822
+ xmlSecError(XMLSEC_ERRORS_HERE,
1823
+ NULL,
1824
+ "xmlSecAddChild",
1825
+ XMLSEC_ERRORS_R_XML_FAILED,
1826
+ "node=%s",
1827
+ xmlSecErrorsSafeString(nodeName));
1828
+ xmlFree(qname);
1829
+ return(-1);
1830
+ }
1831
+
1832
+ xmlNodeSetContent(cur, qname);
1833
+ xmlFree(qname);
1834
+ }
1835
+ }
1836
+ return(0);
1837
+ }
1838
+
1839
+ /**
1840
+ * xmlSecQName2BitMaskDebugDump:
1841
+ * @info: the qname<->bit mask mapping information.
1842
+ * @mask: the bit mask.
1843
+ * @name: the value name to print.
1844
+ * @output: the pointer to output FILE.
1845
+ *
1846
+ * Prints debug information about @mask to @output.
1847
+ */
1848
+ void
1849
+ xmlSecQName2BitMaskDebugDump(xmlSecQName2BitMaskInfoConstPtr info, xmlSecBitMask mask,
1850
+ const xmlChar* name, FILE* output) {
1851
+ unsigned int ii;
1852
+
1853
+ xmlSecAssert(info != NULL);
1854
+ xmlSecAssert(name != NULL);
1855
+ xmlSecAssert(output != NULL);
1856
+
1857
+ if(mask == 0) {
1858
+ return;
1859
+ }
1860
+
1861
+ fprintf(output, "== %s (0x%08x): ", name, mask);
1862
+ for(ii = 0; (mask != 0) && (info[ii].qnameLocalPart != NULL); ii++) {
1863
+ xmlSecAssert(info[ii].mask != 0);
1864
+
1865
+ if((mask & info[ii].mask) != 0) {
1866
+ fprintf(output, "name=\"%s\" (href=\"%s\"),", info[ii].qnameLocalPart, info[ii].qnameHref);
1867
+ }
1868
+ }
1869
+ fprintf(output, "\n");
1870
+ }
1871
+
1872
+ /**
1873
+ * xmlSecQName2BitMaskDebugXmlDump:
1874
+ * @info: the qname<->bit mask mapping information.
1875
+ * @mask: the bit mask.
1876
+ * @name: the value name to print.
1877
+ * @output: the pointer to output FILE.
1878
+ *
1879
+ * Prints debug information about @mask to @output in XML format.
1880
+ */
1881
+ void
1882
+ xmlSecQName2BitMaskDebugXmlDump(xmlSecQName2BitMaskInfoConstPtr info, xmlSecBitMask mask,
1883
+ const xmlChar* name, FILE* output) {
1884
+ unsigned int ii;
1885
+
1886
+ xmlSecAssert(info != NULL);
1887
+ xmlSecAssert(name != NULL);
1888
+ xmlSecAssert(output != NULL);
1889
+
1890
+ if(mask == 0) {
1891
+ return;
1892
+ }
1893
+
1894
+ fprintf(output, "<%sList>\n", name);
1895
+ for(ii = 0; (mask != 0) && (info[ii].qnameLocalPart != NULL); ii++) {
1896
+ xmlSecAssert(info[ii].mask != 0);
1897
+
1898
+ if((mask & info[ii].mask) != 0) {
1899
+ fprintf(output, "<%s href=\"%s\">%s</%s>\n", name,
1900
+ info[ii].qnameHref, info[ii].qnameLocalPart, name);
1901
+ }
1902
+ }
1903
+ fprintf(output, "</%sList>\n", name);
1904
+ }
1905
+
1906
+
1907
+
1908
+