[xml/sgml-commit] [xmlsec1] 24/32: Imported Upstream version 1.2.23
Rene Engelhard
rene at moszumanska.debian.org
Sun Jun 25 17:46:32 UTC 2017
This is an automated email from the git hooks/post-receive script.
rene pushed a commit to branch experimental
in repository xmlsec1.
commit 1689c44b030b620e9d3d9b6c44d14a947420e985
Author: Rene Engelhard <rene at rene-engelhard.de>
Date: Fri Jun 23 12:58:13 2017 +0200
Imported Upstream version 1.2.23
---
COPYING | 106 +-
ChangeLog | 68 +-
Copyright | 6 +-
HACKING | 33 +-
Makefile.am | 71 +-
Makefile.in | 149 +-
README | 8 +
aclocal.m4 | 213 +-
apps/Makefile.am | 8 +-
apps/Makefile.in | 65 +-
apps/cmdline.c | 18 +-
apps/cmdline.h | 4 +-
apps/crypto.c | 4 +-
apps/crypto.h | 2 +-
apps/xmlsec.c | 326 +-
compile | 347 +
config.guess | 192 +-
config.h.in | 5 +-
config.sub | 30 +-
configure | 1272 ++--
configure.in => configure.ac | 281 +-
depcomp | 2 +-
docs/Makefile.am | 93 +-
docs/Makefile.in | 196 +-
docs/api/Makefile.am | 389 +-
docs/api/Makefile.in | 433 +-
docs/api/home.png | Bin 654 -> 169 bytes
docs/api/index.html | 26 +-
docs/api/index.sgml | 43 -
docs/api/left.png | Bin 459 -> 187 bytes
docs/api/right.png | Bin 472 -> 186 bytes
.../{ => src}/chapters/compiling-and-linking.sgml | 0
.../api/{ => src}/chapters/creating-templates.sgml | 0
docs/api/{ => src}/chapters/examples.sgml | 0
docs/api/{ => src}/chapters/init-and-shutdown.sgml | 2 +-
docs/api/{ => src}/chapters/new-crypto.sgml | 39 +-
docs/api/{ => src}/chapters/sign-and-encrypt.sgml | 0
docs/api/{ => src}/chapters/using-contexts.sgml | 0
docs/api/{ => src}/chapters/using-keys.sgml | 0
docs/api/{ => src}/chapters/using-keysmngr.sgml | 0
docs/api/{ => src}/chapters/using-transforms.sgml | 0
docs/api/{ => src}/chapters/using-x509-certs.sgml | 0
.../api/{ => src}/chapters/verify-and-decrypt.sgml | 0
docs/api/{ => src}/xmlsec.sgml | 92 +-
docs/api/tmpl/base/app.sgml | 1112 ++++
docs/api/tmpl/base/base64.sgml | 129 +
docs/api/tmpl/base/bn.sgml | 263 +
docs/api/tmpl/base/buffer.sgml | 232 +
docs/api/tmpl/base/dl.sgml | 94 +
docs/api/tmpl/base/errors.sgml | 490 ++
docs/api/tmpl/base/exports.sgml | 29 +
docs/api/tmpl/base/io.sgml | 103 +
docs/api/tmpl/base/keyinfo.sgml | 312 +
docs/api/tmpl/base/keys.sgml | 521 ++
docs/api/tmpl/base/keysdata.sgml | 930 +++
docs/api/tmpl/base/keysmngr.sgml | 303 +
docs/api/tmpl/base/list.sgml | 275 +
docs/api/tmpl/base/membuf.sgml | 47 +
docs/api/tmpl/base/nodeset.sgml | 172 +
docs/api/tmpl/base/parser.sgml | 72 +
docs/api/tmpl/base/private.sgml | 288 +
docs/api/tmpl/base/templates.sgml | 449 ++
docs/api/tmpl/base/transforms.sgml | 1323 ++++
docs/api/tmpl/base/version.sgml | 57 +
docs/api/tmpl/base/x509.sgml | 74 +
docs/api/tmpl/base/xmldsig.sgml | 316 +
docs/api/tmpl/base/xmlenc.sgml | 194 +
docs/api/tmpl/base/xmlsec-unused.sgml | 794 +++
docs/api/tmpl/base/xmlsec.sgml | 151 +
docs/api/tmpl/base/xmltree.sgml | 574 ++
docs/api/tmpl/gcrypt/app.sgml | 189 +
docs/api/tmpl/gcrypt/crypto.sgml | 708 +++
docs/api/tmpl/gcrypt/xmlsec-gcrypt-unused.sgml | 15 +
docs/api/tmpl/gnutls/app.sgml | 189 +
docs/api/tmpl/gnutls/crypto.sgml | 674 ++
docs/api/tmpl/gnutls/x509.sgml | 193 +
docs/api/tmpl/gnutls/xmlsec-gnutls-unused.sgml | 78 +
docs/api/tmpl/mscrypto/app.sgml | 258 +
docs/api/tmpl/mscrypto/certkeys.sgml | 96 +
docs/api/tmpl/mscrypto/crypto.sgml | 728 +++
docs/api/tmpl/mscrypto/keysstore.sgml | 70 +
docs/api/tmpl/mscrypto/x509.sgml | 197 +
docs/api/tmpl/mscrypto/xmlsec-mscrypto-unused.sgml | 141 +
docs/api/tmpl/nss/app.sgml | 247 +
docs/api/tmpl/nss/bignum.sgml | 44 +
docs/api/tmpl/nss/crypto.sgml | 653 ++
docs/api/tmpl/nss/keysstore.sgml | 70 +
docs/api/tmpl/nss/pkikeys.sgml | 69 +
docs/api/tmpl/nss/x509.sgml | 192 +
docs/api/tmpl/nss/xmlsec-nss-unused.sgml | 8 +
docs/api/tmpl/openssl/app.sgml | 267 +
docs/api/tmpl/openssl/bn.sgml | 43 +
docs/api/tmpl/openssl/ciphers.sgml | 18 +
docs/api/tmpl/openssl/crypto.sgml | 1126 ++++
docs/api/tmpl/openssl/evp.sgml | 59 +
docs/api/tmpl/openssl/x509.sgml | 237 +
docs/api/tmpl/openssl/xmlsec-openssl-unused.sgml | 78 +
docs/api/up.png | Bin 406 -> 187 bytes
docs/api/xmlsec-app.html | 3391 ++++++----
docs/api/xmlsec-base64.html | 544 +-
docs/api/xmlsec-bn.html | 1323 ++--
docs/api/xmlsec-buffer.html | 1095 +++-
docs/api/xmlsec-custom-keys-manager.html | 46 +-
docs/api/xmlsec-decrypt-with-keys-mngr.html | 40 +-
docs/api/xmlsec-decrypt-with-signle-key.html | 40 +-
docs/api/xmlsec-dl.html | 326 +-
docs/api/xmlsec-encrypt-dynamic-template.html | 48 +-
docs/api/xmlsec-encrypt-template-file.html | 44 +-
docs/api/xmlsec-encrypt-with-session-key.html | 70 +-
docs/api/xmlsec-encryption-klasses.html | 36 +-
docs/api/xmlsec-errors.html | 1242 ++--
.../xmlsec-examples-sign-dynamimc-template.html | 50 +-
docs/api/xmlsec-examples-sign-template-file.html | 44 +-
docs/api/xmlsec-examples-sign-x509.html | 70 +-
docs/api/xmlsec-examples.html | 34 +-
docs/api/xmlsec-gcrypt-app.html | 904 ++-
docs/api/xmlsec-gcrypt-crypto.html | 2207 ++++---
docs/api/xmlsec-gcrypt-ref.html | 34 +-
docs/api/xmlsec-gcrypt.sgml | 15 -
docs/api/xmlsec-gnutls-app.html | 904 ++-
docs/api/xmlsec-gnutls-crypto.html | 2021 +++---
docs/api/xmlsec-gnutls-ref.html | 34 +-
docs/api/xmlsec-gnutls.sgml | 15 -
docs/api/xmlsec-index.html | 66 +-
docs/api/xmlsec-index.sgml | 1509 -----
docs/api/xmlsec-io.html | 311 +-
docs/api/xmlsec-keyinfo.html | 1197 ++--
docs/api/xmlsec-keys.html | 2634 +++++---
docs/api/xmlsec-keysdata.html | 4418 ++++++++-----
docs/api/xmlsec-keysmngr.html | 1377 ++--
docs/api/xmlsec-list.html | 1187 +++-
docs/api/xmlsec-membuf.html | 142 +-
docs/api/xmlsec-mscrypto-app.html | 1264 ++--
docs/api/xmlsec-mscrypto-certkeys.html | 370 +-
docs/api/xmlsec-mscrypto-crypto.html | 2217 ++++---
docs/api/xmlsec-mscrypto-keysstore.html | 267 +-
docs/api/xmlsec-mscrypto-ref.html | 34 +-
docs/api/xmlsec-mscrypto-x509.html | 852 ++-
docs/api/xmlsec-mscrypto.sgml | 21 -
docs/api/xmlsec-nodeset.html | 938 ++-
docs/api/xmlsec-notes-compiling-others.html | 34 +-
docs/api/xmlsec-notes-compiling-unix.html | 36 +-
docs/api/xmlsec-notes-compiling-windows.html | 36 +-
docs/api/xmlsec-notes-compiling.html | 34 +-
docs/api/xmlsec-notes-contexts.html | 34 +-
docs/api/xmlsec-notes-custom-keys-store.html | 34 +-
docs/api/xmlsec-notes-decrypt.html | 36 +-
.../xmlsec-notes-dynamic-encryption-templates.html | 34 +-
.../xmlsec-notes-dynamic-signature-templates.html | 34 +-
docs/api/xmlsec-notes-encrypt.html | 38 +-
docs/api/xmlsec-notes-include-files.html | 36 +-
docs/api/xmlsec-notes-init-shutdown.html | 36 +-
docs/api/xmlsec-notes-keys-manager-sign-enc.html | 34 +-
.../api/xmlsec-notes-keys-mngr-verify-decrypt.html | 34 +-
docs/api/xmlsec-notes-keys.html | 34 +-
docs/api/xmlsec-notes-keysmngr.html | 34 +-
docs/api/xmlsec-notes-new-crypto-functions.html | 34 +-
docs/api/xmlsec-notes-new-crypto-key-stores.html | 53 +-
docs/api/xmlsec-notes-new-crypto-keys.html | 34 +-
docs/api/xmlsec-notes-new-crypto-klasses.html | 36 +-
.../xmlsec-notes-new-crypto-sharing-results.html | 60 +-
.../xmlsec-notes-new-crypto-simple-keys-mngr.html | 34 +-
docs/api/xmlsec-notes-new-crypto-skeleton.html | 50 +-
docs/api/xmlsec-notes-new-crypto-transforms.html | 34 +-
docs/api/xmlsec-notes-new-crypto.html | 34 +-
docs/api/xmlsec-notes-overview.html | 34 +-
docs/api/xmlsec-notes-sign-encrypt.html | 34 +-
docs/api/xmlsec-notes-sign-x509.html | 38 +-
docs/api/xmlsec-notes-sign.html | 36 +-
docs/api/xmlsec-notes-simple-keys-store.html | 34 +-
docs/api/xmlsec-notes-structure.html | 34 +-
docs/api/xmlsec-notes-templates.html | 34 +-
docs/api/xmlsec-notes-transforms.html | 36 +-
docs/api/xmlsec-notes-verify-decrypt.html | 34 +-
docs/api/xmlsec-notes-verify-x509.html | 34 +-
docs/api/xmlsec-notes-verify.html | 36 +-
docs/api/xmlsec-notes-x509.html | 34 +-
docs/api/xmlsec-notes.html | 32 +-
docs/api/xmlsec-nss-app.html | 1202 ++--
docs/api/xmlsec-nss-bignum.html | 173 +-
docs/api/xmlsec-nss-crypto.html | 1766 +++---
docs/api/xmlsec-nss-keysstore.html | 267 +-
docs/api/xmlsec-nss-pkikeys.html | 273 +-
docs/api/xmlsec-nss-ref.html | 34 +-
docs/api/xmlsec-nss-x509.html | 811 ++-
docs/api/xmlsec-nss.sgml | 23 -
docs/api/xmlsec-openssl-app.html | 1314 ++--
docs/api/xmlsec-openssl-bn.html | 165 +-
docs/api/xmlsec-openssl-crypto.html | 3388 ++++++----
docs/api/xmlsec-openssl-evp.html | 225 +-
docs/api/xmlsec-openssl-ref.html | 34 +-
docs/api/xmlsec-openssl-x509.html | 1030 +--
docs/api/xmlsec-openssl.sgml | 21 -
docs/api/xmlsec-parser.html | 282 +-
docs/api/xmlsec-ref.html | 34 +-
docs/api/xmlsec-reference.html | 32 +-
docs/api/xmlsec-signature-klasses.html | 36 +-
docs/api/xmlsec-templates.html | 2611 +++++---
docs/api/xmlsec-transforms.html | 6594 ++++++++++++--------
docs/api/xmlsec-verify-with-key.html | 40 +-
docs/api/xmlsec-verify-with-keys-mngr.html | 40 +-
docs/api/xmlsec-verify-with-restrictions.html | 68 +-
docs/api/xmlsec-verify-with-x509.html | 42 +-
docs/api/xmlsec-version.html | 102 +-
docs/api/xmlsec-x509.html | 202 +-
docs/api/xmlsec-xmldsig.html | 1552 +++--
docs/api/xmlsec-xmlenc.html | 1052 ++--
docs/api/xmlsec-xmlsec.html | 464 +-
docs/api/xmlsec-xmltree.html | 3214 ++++++----
docs/authors.html | 53 +-
docs/bugs.html | 61 +-
docs/c14n.html | 53 +-
docs/documentation.html | 53 +-
docs/download.html | 68 +-
docs/faq.html | 72 +-
docs/favicon.ico | Bin 0 -> 318 bytes
docs/index.html | 100 +-
docs/news.html | 91 +-
docs/related.html | 55 +-
docs/xmldsig-verifier.html | 55 +-
docs/xmldsig.html | 53 +-
docs/xmlenc.html | 53 +-
docs/xmlsec-man.html | 44 +-
docs/xmlsec.xsl | 25 +-
examples/Makefile | 7 +-
examples/Makefile.w32 | 24 +-
examples/README | 158 +-
examples/decrypt1.c | 4 +-
examples/decrypt2.c | 4 +-
examples/decrypt3.c | 4 +-
examples/encrypt1.c | 4 +-
examples/encrypt2.c | 4 +-
examples/encrypt3-res.xml | 16 +-
examples/encrypt3.c | 4 +-
examples/mywin32make.bat | 2 +-
examples/sign1.c | 4 +-
examples/sign2.c | 4 +-
examples/sign3.c | 20 +-
examples/verify1.c | 4 +-
examples/verify2.c | 4 +-
examples/verify3.c | 6 +-
examples/verify4.c | 10 +-
examples/xkms-server.c | 839 ---
examples/xmldsigverify.c | 4 +-
include/Makefile.in | 36 +-
include/xmlsec/Makefile.am | 1 -
include/xmlsec/Makefile.in | 39 +-
include/xmlsec/app.h | 47 +-
include/xmlsec/base64.h | 2 +-
include/xmlsec/bn.h | 2 +-
include/xmlsec/buffer.h | 2 +-
include/xmlsec/crypto.h | 2 +-
include/xmlsec/dl.h | 2 +-
include/xmlsec/errors.h | 6 +-
include/xmlsec/exports.h | 2 +-
include/xmlsec/gcrypt/Makefile.in | 38 +-
include/xmlsec/gcrypt/app.h | 2 +-
include/xmlsec/gcrypt/crypto.h | 2 +-
include/xmlsec/gcrypt/symbols.h | 2 +-
include/xmlsec/gnutls/Makefile.in | 38 +-
include/xmlsec/gnutls/app.h | 2 +-
include/xmlsec/gnutls/crypto.h | 2 +-
include/xmlsec/gnutls/symbols.h | 2 +-
include/xmlsec/gnutls/x509.h | 2 +-
include/xmlsec/io.h | 3 +-
include/xmlsec/keyinfo.h | 2 +-
include/xmlsec/keys.h | 2 +-
include/xmlsec/keysdata.h | 2 +-
include/xmlsec/keysmngr.h | 2 +-
include/xmlsec/list.h | 2 +-
include/xmlsec/membuf.h | 2 +-
include/xmlsec/mscrypto/Makefile.in | 38 +-
include/xmlsec/mscrypto/certkeys.h | 1 +
include/xmlsec/nodeset.h | 2 +-
include/xmlsec/nss/Makefile.in | 38 +-
include/xmlsec/nss/app.h | 2 +-
include/xmlsec/nss/crypto.h | 2 +-
include/xmlsec/nss/symbols.h | 2 +-
include/xmlsec/openssl/Makefile.in | 38 +-
include/xmlsec/openssl/app.h | 2 +-
include/xmlsec/openssl/bn.h | 2 +-
include/xmlsec/openssl/crypto.h | 77 +-
include/xmlsec/openssl/evp.h | 2 +-
include/xmlsec/openssl/symbols.h | 2 +-
include/xmlsec/openssl/x509.h | 2 +-
include/xmlsec/parser.h | 2 +-
include/xmlsec/private.h | 18 +-
include/xmlsec/private/Makefile.am | 1 -
include/xmlsec/private/Makefile.in | 39 +-
include/xmlsec/private/xkms.h | 121 -
include/xmlsec/private/xslt.h | 4 +-
include/xmlsec/skeleton/app.h | 2 +-
include/xmlsec/skeleton/crypto.h | 2 +-
include/xmlsec/skeleton/symbols.h | 2 +-
include/xmlsec/strings.h | 170 +-
include/xmlsec/templates.h | 6 +-
include/xmlsec/transforms.h | 13 +-
include/xmlsec/version.h | 8 +-
include/xmlsec/version.h.in | 2 +-
include/xmlsec/x509.h | 5 +-
include/xmlsec/xkms.h | 652 --
include/xmlsec/xmldsig.h | 2 +-
include/xmlsec/xmlenc.h | 2 +-
include/xmlsec/xmlsec.h | 21 +-
include/xmlsec/xmltree.h | 8 +-
install-sh | 366 +-
ltmain.sh | 4 +-
m4/libtool.m4 | 12 +-
man/Makefile.am | 81 +-
man/Makefile.in | 152 +-
man/xmlsec1-config.1 | 40 +-
man/xmlsec1.1 | 8 +-
missing | 6 +-
scripts/build_release.sh | 7 +-
scripts/remove-gtkdoclink.pl | 8 +-
src/Makefile.am | 5 +-
src/Makefile.in | 69 +-
src/app.c | 139 +-
src/base64.c | 4 +-
src/bn.c | 2 +-
src/buffer.c | 4 +-
src/c14n.c | 2 +-
src/dl.c | 73 +-
src/enveloped.c | 11 +-
src/errors.c | 2 +-
src/gcrypt/Makefile.in | 89 +-
src/gcrypt/app.c | 2 +-
src/gcrypt/asn1.c | 12 +-
src/gcrypt/asn1.h | 4 +-
src/gcrypt/asymkeys.c | 7 +-
src/gcrypt/ciphers.c | 2 +-
src/gcrypt/crypto.c | 2 +-
src/gcrypt/digests.c | 2 +-
src/gcrypt/globals.h | 2 +-
src/gcrypt/hmac.c | 2 +-
src/gcrypt/kw_aes.c | 2 +-
src/gcrypt/kw_des.c | 2 +-
src/gcrypt/signatures.c | 2 +-
src/gcrypt/symkeys.c | 2 +-
src/globals.h | 2 +-
src/gnutls/Makefile.in | 89 +-
src/gnutls/app.c | 2 +-
src/gnutls/asymkeys.c | 16 +-
src/gnutls/ciphers.c | 2 +-
src/gnutls/crypto.c | 2 +-
src/gnutls/digests.c | 2 +-
src/gnutls/globals.h | 2 +-
src/gnutls/hmac.c | 2 +-
src/gnutls/kw_aes.c | 2 +-
src/gnutls/kw_des.c | 2 +-
src/gnutls/signatures.c | 2 +-
src/gnutls/symkeys.c | 2 +-
src/gnutls/x509.c | 32 +-
src/gnutls/x509utils.c | 2 +-
src/gnutls/x509utils.h | 6 +-
src/gnutls/x509vfy.c | 2 +-
src/io.c | 51 +-
src/keyinfo.c | 15 +-
src/keys.c | 6 +-
src/keysdata.c | 4 +-
src/keysmngr.c | 4 +-
src/kw_aes_des.c | 28 +-
src/kw_aes_des.h | 4 +-
src/list.c | 6 +-
src/membuf.c | 2 +-
src/mscrypto/Makefile.in | 88 +-
src/mscrypto/app.c | 2 +-
src/mscrypto/certkeys.c | 39 +-
src/mscrypto/ciphers.c | 2 +-
src/mscrypto/crypto.c | 2 +-
src/mscrypto/globals.h | 13 -
src/mscrypto/hmac.c | 2 +-
src/mscrypto/keysstore.c | 2 +-
src/mscrypto/kw_aes.c | 2 +-
src/mscrypto/kw_des.c | 2 +-
src/mscrypto/private.h | 4 +-
src/mscrypto/signatures.c | 103 +-
src/mscrypto/x509.c | 32 +-
src/mscrypto/x509vfy.c | 4 +-
src/mscrypto/xmlsec-mingw.h | 2 +-
src/nodeset.c | 4 +-
src/nss/Makefile.in | 88 +-
src/nss/app.c | 2 +-
src/nss/ciphers.c | 2 +-
src/nss/crypto.c | 2 +-
src/nss/digests.c | 2 +-
src/nss/globals.h | 2 +-
src/nss/hmac.c | 2 +-
src/nss/keysstore.c | 2 +-
src/nss/kw_aes.c | 2 +-
src/nss/kw_des.c | 2 +-
src/nss/pkikeys.c | 9 +
src/nss/symkeys.c | 2 +-
src/nss/x509.c | 30 +-
src/nss/x509vfy.c | 18 +-
src/openssl/Makefile.am | 2 +
src/openssl/Makefile.in | 108 +-
src/openssl/README | 8 +-
src/openssl/app.c | 44 +-
src/openssl/bn.c | 2 +-
src/openssl/ciphers.c | 409 +-
src/openssl/crypto.c | 21 +-
src/openssl/digests.c | 180 +-
src/openssl/evp.c | 665 +-
src/openssl/{signatures.c => evp_signatures.c} | 1475 +----
src/openssl/globals.h | 2 +-
src/openssl/hmac.c | 69 +-
src/openssl/kt_rsa.c | 73 +-
src/openssl/kw_aes.c | 5 +-
src/openssl/kw_des.c | 33 +-
src/openssl/openssl11_wrapper.h | 213 +
src/openssl/signatures.c | 1928 ++----
src/openssl/symkeys.c | 7 +-
src/openssl/x509.c | 49 +-
src/openssl/x509vfy.c | 271 +-
src/parser.c | 6 +-
src/relationship.c | 829 +++
src/skeleton/app.c | 2 +-
src/skeleton/crypto.c | 7 +-
src/skeleton/globals.h | 2 +-
src/strings.c | 172 +-
src/templates.c | 2 +-
src/transforms.c | 36 +-
src/x509.c | 23 +-
src/xkms.c | 4981 ---------------
src/xmldsig.c | 203 +-
src/xmlenc.c | 16 +-
src/xmlsec.c | 38 +-
src/xmltree.c | 92 +-
src/xpath.c | 23 +-
src/xslt.c | 4 +-
tests/README | 10 +
.../bad-request-name-not-supported.xml | 2 -
tests/aleksey-xkms-01/bad-request-name.xml | 10 -
.../compound-example-1-no-match.xml | 7 -
tests/aleksey-xkms-01/compound-example-1.xml | 51 -
tests/aleksey-xkms-01/keys/cert1.der | Bin 1137 -> 0 bytes
tests/aleksey-xkms-01/keys/cert1.pem | 26 -
tests/aleksey-xkms-01/keys/cert2.der | Bin 1065 -> 0 bytes
tests/aleksey-xkms-01/keys/cert2.pem | 25 -
tests/aleksey-xkms-01/keys/cert3.der | Bin 1041 -> 0 bytes
tests/aleksey-xkms-01/keys/cert3.pem | 24 -
tests/aleksey-xkms-01/keys/create-keys.sh | 73 -
tests/aleksey-xkms-01/keys/key1-pk8.der | Bin 677 -> 0 bytes
tests/aleksey-xkms-01/keys/key1.der | Bin 608 -> 0 bytes
tests/aleksey-xkms-01/keys/key1.p12 | Bin 2206 -> 0 bytes
tests/aleksey-xkms-01/keys/key1.pem | 18 -
tests/aleksey-xkms-01/keys/key2-pk8.der | Bin 389 -> 0 bytes
tests/aleksey-xkms-01/keys/key2.der | Bin 320 -> 0 bytes
tests/aleksey-xkms-01/keys/key2.p12 | Bin 1846 -> 0 bytes
tests/aleksey-xkms-01/keys/key2.pem | 9 -
tests/aleksey-xkms-01/keys/key3-pk8.der | Bin 389 -> 0 bytes
tests/aleksey-xkms-01/keys/key3.der | Bin 318 -> 0 bytes
tests/aleksey-xkms-01/keys/key3.p12 | Bin 1822 -> 0 bytes
tests/aleksey-xkms-01/keys/key3.pem | 9 -
tests/aleksey-xkms-01/keys/openssl.cnf | 106 -
tests/aleksey-xkms-01/keys/req2.pem | 11 -
tests/aleksey-xkms-01/keys/req3.pem | 11 -
.../locate-example-1-bad-service.xml | 2 -
.../aleksey-xkms-01/locate-example-1-no-match.xml | 2 -
tests/aleksey-xkms-01/locate-example-1.xml | 18 -
.../aleksey-xkms-01/locate-example-2-no-match.xml | 2 -
tests/aleksey-xkms-01/locate-example-2.xml | 39 -
.../locate-opaque-client-data-no-match.xml | 2 -
.../aleksey-xkms-01/locate-opaque-client-data.xml | 32 -
tests/aleksey-xkms-01/readme.txt | 117 -
.../soap11-bad-request-name-msg-invalid.xml | 9 -
tests/aleksey-xkms-01/soap11-bad-request-name.xml | 14 -
.../soap11-locate-example-1-no-match.xml | 6 -
.../soap11-locate-example-1-unsupported.xml | 13 -
tests/aleksey-xkms-01/soap11-locate-example-1.xml | 23 -
.../soap12-bad-request-name-msg-invalid.xml | 11 -
tests/aleksey-xkms-01/soap12-bad-request-name.xml | 14 -
.../soap12-locate-example-1-no-match.xml | 6 -
.../soap12-locate-example-1-unsupported.xml | 9 -
tests/aleksey-xkms-01/soap12-locate-example-1.xml | 23 -
tests/aleksey-xkms-01/status-request-success.xml | 2 -
tests/aleksey-xkms-01/status-request.xml | 7 -
.../validate-example-1-no-match.xml | 2 -
tests/aleksey-xkms-01/validate-example-1.xml | 65 -
.../aleksey-xmldsig-01/enveloping-gost2012-256.xml | 1 +
.../aleksey-xmldsig-01/enveloping-gots2012-512.xml | 1 +
.../enveloping-sha1-ecdsa-sha1.tmpl | 17 +
.../enveloping-sha1-ecdsa-sha1.xml | 80 +
.../enveloping-sha256-dsa2048-sha256.tmpl | 17 +
.../enveloping-sha256-dsa2048-sha256.xml | 97 +
.../enveloping-sha256-dsa3072-sha256.tmpl | 17 +
.../enveloping-sha256-dsa3072-sha256.xml | 105 +
.../enveloping-sha256-ecdsa-sha256.tmpl | 17 +
.../enveloping-sha256-ecdsa-sha256.xml | 80 +
.../enveloping-sha256-rsa-sha256-relationship.tmpl | 22 +
.../enveloping-sha256-rsa-sha256-relationship.xml | 86 +
.../enveloping-sha512-ecdsa-sha512.tmpl | 17 +
.../enveloping-sha512-ecdsa-sha512.xml | 81 +
.../relationship/xml-base-input.xml | 2 +
tests/keys/README | 56 +-
tests/keys/demoCA/index.txt | 3 +
tests/keys/demoCA/index.txt.old | 3 +
tests/keys/demoCA/newcerts/AFA28BB933ADDAB2.pem | 128 +
tests/keys/demoCA/newcerts/AFA28BB933ADDAB3.pem | 160 +
tests/keys/demoCA/newcerts/AFA28BB933ADDAB4.pem | 58 +
tests/keys/demoCA/serial | 2 +-
tests/keys/demoCA/serial.old | 2 +-
tests/keys/dsa2048cert.der | Bin 0 -> 1693 bytes
tests/keys/dsa2048cert.pem | 128 +
tests/keys/dsa2048key.der | Bin 0 -> 858 bytes
tests/keys/dsa2048key.p12 | Bin 0 -> 4874 bytes
tests/keys/dsa2048key.p8-der | Bin 0 -> 661 bytes
tests/keys/dsa2048key.p8-pem | 16 +
tests/keys/dsa2048key.pem | 34 +
tests/keys/dsa3072cert.der | Bin 0 -> 2078 bytes
tests/keys/dsa3072cert.pem | 160 +
tests/keys/dsa3072key.der | Bin 0 -> 1243 bytes
tests/keys/dsa3072key.p12 | Bin 0 -> 5514 bytes
tests/keys/dsa3072key.p8-der | Bin 0 -> 917 bytes
tests/keys/dsa3072key.p8-pem | 22 +
tests/keys/dsa3072key.pem | 48 +
tests/keys/ecdsa-secp256k1-cert.der | Bin 0 -> 896 bytes
tests/keys/ecdsa-secp256k1-cert.pem | 58 +
tests/keys/ecdsa-secp256k1-key.der | Bin 0 -> 118 bytes
tests/keys/ecdsa-secp256k1-key.p12 | Bin 0 -> 3613 bytes
tests/keys/ecdsa-secp256k1-key.p8-der | Bin 0 -> 171 bytes
tests/keys/ecdsa-secp256k1-key.pem | 5 +
tests/keys/gost2012_256.pem | 8 +
tests/keys/gost2012_512.pem | 11 +
tests/testDSig.sh | 60 +-
tests/testEnc.sh | 6 +-
tests/testXKMS.sh | 129 -
tests/testrun.sh | 94 +-
win32/Makefile.msvc | 39 +-
win32/README.txt | 2 +-
win32/configure.js | 16 +-
win32/mycfg.bat | 2 +-
xmlsec-config.in | 182 +-
xmlsec-gcrypt.pc.in | 4 +-
xmlsec-gnutls.pc.in | 4 +-
xmlsec-nss.pc.in | 4 +-
xmlsec-openssl.pc.in | 4 +-
xmlsec.pc.in | 4 +-
xmlsec.spec.in | 5 +-
xmlsec1-config | 186 +-
xmlsec1-gcrypt.pc | 6 +-
xmlsec1-gnutls.pc | 6 +-
xmlsec1-nss.pc | 4 +-
xmlsec1-openssl.pc | 8 +-
xmlsec1.pc | 4 +-
xmlsec1.spec | 17 +-
xmlsec1Conf.sh | 6 +-
xmlsecConf.sh.in | 4 +-
549 files changed, 66108 insertions(+), 36745 deletions(-)
diff --git a/COPYING b/COPYING
index 23e4372..80f3ec8 100644
--- a/COPYING
+++ b/COPYING
@@ -1,105 +1 @@
-xmlsec, xmlsec-openssl, xmlsec-gnutls, xmlsec-gcrypt libraries
-------------------------------------------------------------------------------
-
-Copyright (C) 2002-2010 Aleksey Sanin. All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is fur-
-nished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
-NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-ALEKSEY SANIN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
-NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Aleksey Sanin shall not
-be used in advertising or otherwise to promote the sale, use or other deal-
-ings in this Software without prior written authorization from him.
-
-
-xmlsec-nss library
-------------------------------------------------------------------------------
-Copyright (C) 2002-2010 Aleksey Sanin. All Rights Reserved.
-Copyright (c) 2003 America Online, Inc. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is fur-
-nished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-Portions of the Software were created using source code and/or APIs
-governed by the Mozilla Public License (MPL). The MPL is available
-at http://www.mozilla.org/MPL/MPL-1.1.html. The MPL permits such
-portions to be distributed with code not governed by MPL, as long
-as the requirements of MPL are fulfilled for such portions.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
-NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-ALEKSEY SANIN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
-NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Aleksey Sanin shall not
-be used in advertising or otherwise to promote the sale, use or other deal-
-ings in this Software without prior written authorization from him.
-
-
-xmlsec-mscrypto library
-------------------------------------------------------------------------------
-
-Copyright (C) 2002-2010 Aleksey Sanin. All Rights Reserved.
-Copyright (C) 2003 Cordys R&D BV, All rights reserved.
-Copyright (C) 2007 Roumen Petrov.
-Copyright (c) 2005-2006 Cryptocom LTD (http://www.cryptocom.ru).
-
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is fur-
-nished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
-NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-ALEKSEY SANIN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
-NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Aleksey Sanin shall not
-be used in advertising or otherwise to promote the sale, use or other deal-
-ings in this Software without prior written authorization from him.
-
-
-
-References
-------------------------------------------------------------------------------
-
-* AOL
-http://www.aleksey.com/pipermail/xmlsec/2003/005488.html
-http://www.aleksey.com/pipermail/xmlsec/attachments/20030729/0e25648e/attachment.htm
-
-* Cordys R&D BV
-http://www.aleksey.com/pipermail/xmlsec/2003/005581.html
-
-* Cryptocom LTD
-http://www.aleksey.com/pipermail/xmlsec/2006/007410.html
-
+See Copyright file for information about the copyright
diff --git a/ChangeLog b/ChangeLog
index 2bd755e..e25f8e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,69 @@
+2016-10-15 Aleksey Sanin <aleksey at aleksey.com>
+ * 1.2.23 release
+
+2016-10-14 Aleksey Sanin <aleksey at aleksey.com>
+ * Fixed gcrypto RSA/DSA keys params ordering
+
+2016-10-12 Aleksey Sanin <aleksey at aleksey.com>
+ * Better X509Data templates
+
+2016-10-07 Aleksey Sanin <aleksey at aleksey.com>
+ * Fixed memory leak caused by xmlGetProp (patch from Dafan Zhai)
+ * Fixed KW transforms (overlapping buffer error) for OpenSSL 1.1.0
+ * Fixed pkg-config detection
+
+2016-09-27 Aleksey Sanin <aleksey at aleksey.com>
+ * Added initial support OpenSSL 1.1.0 (patch from Andrzej Siewior)
+
+2016-09-19 Aleksey Sanin <aleksey at aleksey.com>
+ * Fixed signing with RSA SHA2 via mscrypto (patch from PepaRokos)
+
+2016-07-08 Aleksey Sanin <aleksey at aleksey.com>
+ * Fixed mscrypto undeclared XMLSEC_DEFAULT_CRYPTO (patch from vmiklos)
+
+2016-05-31 Aleksey Sanin <aleksey at aleksey.com>
+ * Fixed mismatched conditional for XMLSEC_NO_ECDSA (patch from Eric Sproul)
+
+2016-05-20 Aleksey Sanin <aleksey at aleksey.com>
+ * Fixed openssl cert depth verification param usage (patch from R-Tur)
+
+2016-04-22 Aleksey Sanin <aleksey at aleksey.com>
+ * Fixed stdin/stdout in xmlsec1 app
+
+2016-04-20 Aleksey Sanin <aleksey at aleksey.com>
+ * Restored SOAP support for Lasso
+ * 1.2.22 release
+
+2016-04-12 Aleksey Sanin <aleksey at aleksey.com>
+ * 1.2.21 release
+
+2016-02-17 Aleksey Sanin <aleksey at aleksey.com>
+ * Added OOXML Relationships Transform Algorithm (patch from Miklos Vajna)
+
+2016-02-06 Aleksey Sanin <aleksey at aleksey.com>
+ * Deprecated XMLSEC_CRYPTO define in favor of xmlSecGetDefaultCrypto() function
+
+2016-02-05 Aleksey Sanin <aleksey at aleksey.com>
+ * Revamped manpages/documentation build to completely pass 'make distcheck' tests
+
+2016-01-28 Aleksey Sanin <aleksey at aleksey.com>
+ * Added OpenSSL 1.1.0 API support (major refactoring for block ciphers and DSA/ECDSA signatures)
+
+2016-01-28 Aleksey Sanin <aleksey at aleksey.com>
+ * Migrated to GitHub (https://github.com/lsh123/xmlsec)
+
+2015-03-10 Aleksey Sanin <aleksey at aleksey.com>
+ * Removed support for legacy OpenSSL 0.9.6 (last release: March, 2004) and 0.9.7 (last release: February, 2007)
+
+2014-10-2014 Aleksey Sanin <aleksey at aleksey.com>
+ * Added experimental GOST2012 support (patch from Nikolay Shaplov)
+
+2014-06-04 Aleksey Sanin <aleksey at aleksey.com>
+ * Fixed several compaints from Clang and Coverity (based on patches from Simo Sorce)
+
+2014-02-25 Aleksey Sanin <aleksey at aleksey.com>
+ * Removed XKMS support -- it was never completed and not worth keeping
+
2013-05-23 Aleksey Sanin <aleksey at aleksey.com>
* 1.2.20 release
@@ -1153,7 +1219,7 @@ Mon 07 Jul 2003 08:05:18 AM PDT Aleksey Sanin <aleksey at aleksey.com>
Mon 07 Jul 2003 07:02:46 AM PDT Aleksey Sanin <aleksey at aleksey.com>
- * Makefile.am: fixed test suite problem when builddir != sourcedir
+ * Makefile.am: fixed test suite problem when builddir != srcdir
(reported by Roumen)
Thu Jul 3 07:57:25 2003 Aleksey Sanin <aleksey at aleksey.com>
diff --git a/Copyright b/Copyright
index 23e4372..efb24df 100644
--- a/Copyright
+++ b/Copyright
@@ -1,7 +1,7 @@
xmlsec, xmlsec-openssl, xmlsec-gnutls, xmlsec-gcrypt libraries
------------------------------------------------------------------------------
-Copyright (C) 2002-2010 Aleksey Sanin. All Rights Reserved.
+Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -27,7 +27,7 @@ ings in this Software without prior written authorization from him.
xmlsec-nss library
------------------------------------------------------------------------------
-Copyright (C) 2002-2010 Aleksey Sanin. All Rights Reserved.
+Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
Copyright (c) 2003 America Online, Inc. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -61,7 +61,7 @@ ings in this Software without prior written authorization from him.
xmlsec-mscrypto library
------------------------------------------------------------------------------
-Copyright (C) 2002-2010 Aleksey Sanin. All Rights Reserved.
+Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
Copyright (C) 2003 Cordys R&D BV, All rights reserved.
Copyright (C) 2007 Roumen Petrov.
Copyright (c) 2005-2006 Cryptocom LTD (http://www.cryptocom.ru).
diff --git a/HACKING b/HACKING
index 851d162..b9f96d6 100644
--- a/HACKING
+++ b/HACKING
@@ -122,36 +122,13 @@ Igor Zlatkovic get an exception for the send before commit rule.
This greatly helps when one needs to write a logs parser. For example, to
find the reason of memory allocation failures.
-3) Preparing and submiting a patch.
-If you want to submit a patch please do following:
- - Get a CVS source copy (see http://www.aleksey.com/xmlsec/download.html).
- It's much easier to prepare patch from CVS than to diff two set of files.
- - Test your patch! Make sure that your patch complain with xmlsec coding
- style (see above) and that you don't introduce new warnings or memory leaks
- (also see above). If you have a new functionality in the patch,
- do not forget to add a test case(s) in the xmlsec test suite.
- - If you have new files in your patch mark them "to be added" with
- cvs add <filename>
- command. If you have binary files, do not forget to use '-kb' option
- cvs add -kb <filename>
- If you have new folders in your patch and you don't have write access to CVS,
- send a mail to xmlsec at aleksey.com and I'll create them for you.
- - Prepare patch by running diff command from the top of the source tree:
- cvs -z3 diff -uN [<file or folder names>...] > <output filename>
- The file or folder names are optional and you can use it to save
- yourself some time. "-u" option produces a human readble diff,
- "-N" option includes to the diff new files created on prevous step.
- Finally, "-z3" forces cvs to compress the network traffic and make things
- faster. Please use ".diff" extension in your output filename. This will
- add colors to my editor when I would be looking at it :)
- - Gzip or zip your diff file! Don't send plain diff file because some mailers
- corrupt it.
- - Send your patch along with a short description of the problem or feature
+3) Preparing and submitting a patch.
+If you want to submit a patch please create a pull request on GitHub and then
+ send your pull request along with a short description of the problem or feature
you are fixing/implementing to the xmlsec at aleksey.com mailing list
(you must be subscribed to the list, go to http://www.aleksey.com/mailman/listinfo/xmlsec to subscribe).
- If you are fixing a bug, it might be a good idea to bugzilla it first
- (http://www.aleksey.com/xmlsec/bugs.html) for the record. Do not forget
- to put link or bug number in your message if the bug is in bugzilla.
+ If you are fixing a bug, it might be a good idea to create a GitHub ticket first
+ (http://www.aleksey.com/xmlsec/bugs.html) for the record.
4) Building a release
- Cleanup, make sure no other changes are pending
diff --git a/Makefile.am b/Makefile.am
index 669f996..3453c01 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,9 +1,9 @@
NULL =
SAFE_VERSION = @XMLSEC_VERSION_SAFE@
-SUBDIRS = include src apps man docs
-TEST_APP = apps/xmlsec1$(EXEEXT)
-DEFAULT_CRYPTO = @XMLSEC_CRYPTO@
+SUBDIRS = include src apps man docs
+TEST_APP = apps/xmlsec1$(EXEEXT)
+DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
bin_SCRIPTS = xmlsec1-config
pkgconfig_DATA = xmlsec1.pc @XMLSEC_CRYPTO_PC_FILES_LIST@
@@ -88,31 +88,35 @@ docs-man:
check: check-all check-info
check-all: $(TEST_APP)
- @($(PRECHECK_COMMANDS) && \
for crypto in $(CHECK_CRYPTO_LIST) ; do \
- echo "=================== Checking xmlsec-$$crypto =================================" && \
- $(SHELL) ./tests/testrun.sh \
- $(ABS_SRCDIR)/tests/testKeys.sh \
- $$crypto \
- $(ABS_SRCDIR)/tests \
- $(ABS_BUILDDIR)/$(TEST_APP) der \
- && \
- $(SHELL) ./tests/testrun.sh \
- $(ABS_SRCDIR)/tests/testDSig.sh \
- $$crypto \
- $(ABS_SRCDIR)/tests \
- $(ABS_BUILDDIR)/$(TEST_APP) \
- der \
- && \
- $(SHELL) ./tests/testrun.sh \
- $(ABS_SRCDIR)/tests/testEnc.sh \
- $$crypto \
- $(ABS_SRCDIR)/tests \
- $(ABS_BUILDDIR)/$(TEST_APP) \
- der \
- ; \
- done; )
+ make check-crypto-$$crypto ; \
+ done
+check-crypto-%: $(TEST_APP)
+ @($(PRECHECK_COMMANDS) && \
+ echo "=================== Checking xmlsec-$* =================================" && \
+ $(SHELL) ./tests/testrun.sh \
+ $(ABS_SRCDIR)/tests/testKeys.sh \
+ $* \
+ $(ABS_SRCDIR)/tests \
+ $(ABS_BUILDDIR)/$(TEST_APP) der \
+ && \
+ $(SHELL) ./tests/testrun.sh \
+ $(ABS_SRCDIR)/tests/testDSig.sh \
+ $* \
+ $(ABS_SRCDIR)/tests \
+ $(ABS_BUILDDIR)/$(TEST_APP) \
+ der \
+ && \
+ $(SHELL) ./tests/testrun.sh \
+ $(ABS_SRCDIR)/tests/testEnc.sh \
+ $* \
+ $(ABS_SRCDIR)/tests \
+ $(ABS_BUILDDIR)/$(TEST_APP) \
+ der \
+ ; \
+ )
+
check-info:
@echo "---------------------------- ATTENTION -----------------------------------"
@echo "--- Some of the tests use resources located on external HTTP servers. ---"
@@ -150,20 +154,13 @@ check-enc: $(TEST_APP)
der \
)
-check-xkms: $(TEST_APP)
- @($(PRECHECK_COMMANDS) && \
- $(SHELL) ./tests/testrun.sh \
- $(ABS_SRCDIR)/tests/testXKMS.sh \
- $(DEFAULT_CRYPTO) \
- $(ABS_SRCDIR)/tests \
- $(ABS_BUILDDIR)/$(TEST_APP) \
- der \
- )
-
memcheck-res:
@grep -i 'ERROR SUMMARY' /tmp/*.log | sed 's/.*==.*== *//' | sort -u
@grep -i 'in use at exit' /tmp/*.log | sed 's/.*==.*== *//' | sort -u
- @grep -i 'total heap usage' /tmp/*.log | sed 's/.*==.*== *//' | sort -u
+ @grep -i 'definitely lost:' /tmp/*.log | sed 's/.*==.*== *//' | sort -u
+ @grep -i 'indirectly lost:' /tmp/*.log | sed 's/.*==.*== *//' | sort -u
+ @grep -i 'possibly lost:' /tmp/*.log | sed 's/.*==.*== *//' | sort -u
+ @grep -i 'still reachable:' /tmp/*.log | sed 's/.*==.*== *//' | sort -u
memcheck: $(TEST_APP)
@(export DEBUG_MEMORY=1 && $(MAKE) check && $(MAKE) memcheck-res)
diff --git a/Makefile.in b/Makefile.in
index 9b252ff..f35b430 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -80,29 +90,22 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = .
-DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog COPYING \
- $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/configure $(am__configure_deps) \
- $(srcdir)/config.h.in $(srcdir)/xmlsec.pc.in \
- $(srcdir)/xmlsecConf.sh.in $(srcdir)/xmlsec-config.in \
- $(srcdir)/xmlsec-openssl.pc.in $(srcdir)/xmlsec-gnutls.pc.in \
- $(srcdir)/xmlsec-gcrypt.pc.in $(srcdir)/xmlsec-nss.pc.in \
- $(srcdir)/xmlsec.spec.in TODO config.guess config.sub \
- install-sh missing ltmain.sh
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+ $(am__configure_deps) $(am__DIST_COMMON)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = xmlsec1.pc xmlsec1Conf.sh xmlsec1-config \
- xmlsec1-openssl.pc xmlsec1-gnutls.pc xmlsec1-gcrypt.pc \
- xmlsec1-nss.pc xmlsec1.spec
+CONFIG_CLEAN_FILES = xmlsec1.pc xmlsec1-openssl.pc xmlsec1-gnutls.pc \
+ xmlsec1-gcrypt.pc xmlsec1-nss.pc xmlsec1.spec xmlsec1Conf.sh \
+ xmlsec1-config
CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
@@ -192,6 +195,13 @@ ETAGS = etags
CTAGS = ctags
CSCOPE = cscope
DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+ $(srcdir)/xmlsec-config.in $(srcdir)/xmlsec-gcrypt.pc.in \
+ $(srcdir)/xmlsec-gnutls.pc.in $(srcdir)/xmlsec-nss.pc.in \
+ $(srcdir)/xmlsec-openssl.pc.in $(srcdir)/xmlsec.pc.in \
+ $(srcdir)/xmlsec.spec.in $(srcdir)/xmlsecConf.sh.in AUTHORS \
+ COPYING ChangeLog INSTALL NEWS README TODO compile \
+ config.guess config.sub install-sh ltmain.sh missing
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
@@ -269,6 +279,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -288,6 +302,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -326,7 +341,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -342,7 +357,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -350,6 +364,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -369,6 +384,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -383,7 +399,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -398,6 +413,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -454,7 +470,7 @@ NULL =
SAFE_VERSION = @XMLSEC_VERSION_SAFE@
SUBDIRS = include src apps man docs
TEST_APP = apps/xmlsec1$(EXEEXT)
-DEFAULT_CRYPTO = @XMLSEC_CRYPTO@
+DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
bin_SCRIPTS = xmlsec1-config
pkgconfig_DATA = xmlsec1.pc @XMLSEC_CRYPTO_PC_FILES_LIST@
pkgconfigdir = $(libdir)/pkgconfig
@@ -542,7 +558,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -563,8 +578,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
config.h: stamp-h1
- @if test ! -f $@; then rm -f stamp-h1; else :; fi
- @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+ @test -f $@ || rm -f stamp-h1
+ @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
@@ -578,10 +593,6 @@ distclean-hdr:
-rm -f config.h stamp-h1
xmlsec1.pc: $(top_builddir)/config.status $(srcdir)/xmlsec.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $@
-xmlsec1Conf.sh: $(top_builddir)/config.status $(srcdir)/xmlsecConf.sh.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
-xmlsec1-config: $(top_builddir)/config.status $(srcdir)/xmlsec-config.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
xmlsec1-openssl.pc: $(top_builddir)/config.status $(srcdir)/xmlsec-openssl.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $@
xmlsec1-gnutls.pc: $(top_builddir)/config.status $(srcdir)/xmlsec-gnutls.pc.in
@@ -592,6 +603,10 @@ xmlsec1-nss.pc: $(top_builddir)/config.status $(srcdir)/xmlsec-nss.pc.in
cd $(top_builddir) && $(SHELL) ./config.status $@
xmlsec1.spec: $(top_builddir)/config.status $(srcdir)/xmlsec.spec.in
cd $(top_builddir) && $(SHELL) ./config.status $@
+xmlsec1Conf.sh: $(top_builddir)/config.status $(srcdir)/xmlsecConf.sh.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+xmlsec1-config: $(top_builddir)/config.status $(srcdir)/xmlsec-config.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
install-binSCRIPTS: $(bin_SCRIPTS)
@$(NORMAL_INSTALL)
@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
@@ -890,10 +905,16 @@ dist-xz: distdir
$(am__post_remove_distdir)
dist-tarZ: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__post_remove_distdir)
dist-shar: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__post_remove_distdir)
@@ -928,16 +949,17 @@ distcheck: dist
esac
chmod -R a-w $(distdir)
chmod u+w $(distdir)
- mkdir $(distdir)/_build $(distdir)/_inst
+ mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
- && $(am__cd) $(distdir)/_build \
- && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ && $(am__cd) $(distdir)/_build/sub \
+ && ../../configure \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=../.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
@@ -1122,6 +1144,8 @@ uninstall-am: uninstall-binSCRIPTS uninstall-confexecDATA \
uninstall-binSCRIPTS uninstall-confexecDATA \
uninstall-m4dataDATA uninstall-pkgconfigDATA
+.PRECIOUS: Makefile
+
docs: docs-man
@(cd docs && $(MAKE) docs)
@@ -1135,30 +1159,34 @@ docs-man:
check: check-all check-info
check-all: $(TEST_APP)
- @($(PRECHECK_COMMANDS) && \
for crypto in $(CHECK_CRYPTO_LIST) ; do \
- echo "=================== Checking xmlsec-$$crypto =================================" && \
- $(SHELL) ./tests/testrun.sh \
- $(ABS_SRCDIR)/tests/testKeys.sh \
- $$crypto \
- $(ABS_SRCDIR)/tests \
- $(ABS_BUILDDIR)/$(TEST_APP) der \
- && \
- $(SHELL) ./tests/testrun.sh \
- $(ABS_SRCDIR)/tests/testDSig.sh \
- $$crypto \
- $(ABS_SRCDIR)/tests \
- $(ABS_BUILDDIR)/$(TEST_APP) \
- der \
- && \
- $(SHELL) ./tests/testrun.sh \
- $(ABS_SRCDIR)/tests/testEnc.sh \
- $$crypto \
- $(ABS_SRCDIR)/tests \
- $(ABS_BUILDDIR)/$(TEST_APP) \
- der \
- ; \
- done; )
+ make check-crypto-$$crypto ; \
+ done
+
+check-crypto-%: $(TEST_APP)
+ @($(PRECHECK_COMMANDS) && \
+ echo "=================== Checking xmlsec-$* =================================" && \
+ $(SHELL) ./tests/testrun.sh \
+ $(ABS_SRCDIR)/tests/testKeys.sh \
+ $* \
+ $(ABS_SRCDIR)/tests \
+ $(ABS_BUILDDIR)/$(TEST_APP) der \
+ && \
+ $(SHELL) ./tests/testrun.sh \
+ $(ABS_SRCDIR)/tests/testDSig.sh \
+ $* \
+ $(ABS_SRCDIR)/tests \
+ $(ABS_BUILDDIR)/$(TEST_APP) \
+ der \
+ && \
+ $(SHELL) ./tests/testrun.sh \
+ $(ABS_SRCDIR)/tests/testEnc.sh \
+ $* \
+ $(ABS_SRCDIR)/tests \
+ $(ABS_BUILDDIR)/$(TEST_APP) \
+ der \
+ ; \
+ )
check-info:
@echo "---------------------------- ATTENTION -----------------------------------"
@@ -1197,20 +1225,13 @@ check-enc: $(TEST_APP)
der \
)
-check-xkms: $(TEST_APP)
- @($(PRECHECK_COMMANDS) && \
- $(SHELL) ./tests/testrun.sh \
- $(ABS_SRCDIR)/tests/testXKMS.sh \
- $(DEFAULT_CRYPTO) \
- $(ABS_SRCDIR)/tests \
- $(ABS_BUILDDIR)/$(TEST_APP) \
- der \
- )
-
memcheck-res:
@grep -i 'ERROR SUMMARY' /tmp/*.log | sed 's/.*==.*== *//' | sort -u
@grep -i 'in use at exit' /tmp/*.log | sed 's/.*==.*== *//' | sort -u
- @grep -i 'total heap usage' /tmp/*.log | sed 's/.*==.*== *//' | sort -u
+ @grep -i 'definitely lost:' /tmp/*.log | sed 's/.*==.*== *//' | sort -u
+ @grep -i 'indirectly lost:' /tmp/*.log | sed 's/.*==.*== *//' | sort -u
+ @grep -i 'possibly lost:' /tmp/*.log | sed 's/.*==.*== *//' | sort -u
+ @grep -i 'still reachable:' /tmp/*.log | sed 's/.*==.*== *//' | sort -u
memcheck: $(TEST_APP)
@(export DEBUG_MEMORY=1 && $(MAKE) check && $(MAKE) memcheck-res)
diff --git a/README b/README
index ef62ab0..cdb4fe1 100644
--- a/README
+++ b/README
@@ -3,13 +3,21 @@ XMLSec Library
XMLSec library provides C based implementation for major XML Security
standards:
+
* XML Signature Syntax and Processing
http://www.w3.org/TR/xmldsig-core
+
* XML Encryption Syntax and Processing
http://www.w3.org/TR/xmlenc-core/
+
XMLSec is based on well known LibXML (http://xmlsoft.org), LibXSLT
(http://xmlsoft.org/XSLT) and OpenSSL (http://www.openssl.org) libraries.
+XMLSec library documentation is available here:
+
+http://www.aleksey.com/xmlsec/
+
This code is released under the MIT Licence see the Copyright file.
Aleksey Sanin <aleksey at aleksey.com>
+
diff --git a/aclocal.m4 b/aclocal.m4
index fbd21d5..e538221 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.13.3 -*- Autoconf -*-
+# generated automatically by aclocal 1.15 -*- Autoconf -*-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -180,7 +180,62 @@ else
fi[]dnl
])# PKG_CHECK_MODULES
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+
+# PKG_INSTALLDIR(DIRECTORY)
+# -------------------------
+# Substitutes the variable pkgconfigdir as the location where a module
+# should install pkg-config .pc files. By default the directory is
+# $libdir/pkgconfig, but the default can be changed by passing
+# DIRECTORY. The user can override through the --with-pkgconfigdir
+# parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+ [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+ [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+]) dnl PKG_INSTALLDIR
+
+
+# PKG_NOARCH_INSTALLDIR(DIRECTORY)
+# -------------------------
+# Substitutes the variable noarch_pkgconfigdir as the location where a
+# module should install arch-independent pkg-config .pc files. By
+# default the directory is $datadir/pkgconfig, but the default can be
+# changed by passing DIRECTORY. The user can override through the
+# --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+ [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+ [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+]) dnl PKG_NOARCH_INSTALLDIR
+
+
+# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# -------------------------------------------
+# Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])# PKG_CHECK_VAR
+
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -192,10 +247,10 @@ fi[]dnl
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.13'
+[am__api_version='1.15'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.13.3], [],
+m4_if([$1], [1.15], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -211,14 +266,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.13.3])dnl
+[AM_AUTOMAKE_VERSION([1.15])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -263,15 +318,14 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# configured tree to be moved without reconfiguration.
AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
])
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -302,7 +356,7 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -493,7 +547,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -569,7 +623,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -578,6 +632,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
# This macro actually does too much. Some checks are only needed if
# your package does certain things. But this isn't really a big deal.
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
# AM_INIT_AUTOMAKE([OPTIONS])
# -----------------------------------------------
@@ -653,8 +713,8 @@ AC_REQUIRE([AC_PROG_MKDIR_P])dnl
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
@@ -686,6 +746,51 @@ dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
AC_CONFIG_COMMANDS_PRE(dnl
[m4_provide_if([_AM_COMPILER_EXEEXT],
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake at gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
])
dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
@@ -694,7 +799,6 @@ dnl mangled by Autoconf and run in a shell conditional statement.
m4_define([_AC_COMPILER_EXEEXT],
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
-
# When config.status generates a header, we must update the stamp-h file.
# This file resides in the same directory as the config header
# that is generated. The stamp files are numbered to have different names.
@@ -716,7 +820,7 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -727,7 +831,7 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co
# Define $install_sh.
AC_DEFUN([AM_PROG_INSTALL_SH],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
+if test x"${install_sh+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
@@ -737,7 +841,7 @@ if test x"${install_sh}" != xset; then
fi
AC_SUBST([install_sh])])
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+# Copyright (C) 2003-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -759,7 +863,7 @@ AC_SUBST([am__leading_dot])])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -794,7 +898,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -844,7 +948,7 @@ rm -f confinc confmf
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -883,7 +987,7 @@ fi
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -912,7 +1016,54 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+ [whether $CC understands -c and -o together],
+ [am_cv_prog_cc_c_o],
+ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -931,7 +1082,7 @@ AC_DEFUN([AM_RUN_LOG],
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1012,7 +1163,7 @@ AC_CONFIG_COMMANDS_PRE(
rm -f conftest.file
])
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1072,7 +1223,7 @@ AC_SUBST([AM_BACKSLASH])dnl
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1100,7 +1251,7 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2013 Free Software Foundation, Inc.
+# Copyright (C) 2006-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1119,7 +1270,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2013 Free Software Foundation, Inc.
+# Copyright (C) 2004-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
diff --git a/apps/Makefile.am b/apps/Makefile.am
index 278ddf4..cbaf439 100644
--- a/apps/Makefile.am
+++ b/apps/Makefile.am
@@ -9,7 +9,7 @@ XMLSEC_LIBS = $(top_builddir)/src/libxmlsec1.la
if XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING
CRYPTO_DEPS = \
- $(top_builddir)/src/$(XMLSEC_CRYPTO)/lib$(XMLSEC_CRYPTO_LIB).la \
+ $(top_builddir)/src/@XMLSEC_DEFAULT_CRYPTO@/lib$(XMLSEC_CRYPTO_LIB).la \
$(NULL)
CRYPTO_INCLUDES = \
@@ -42,9 +42,7 @@ CRYPTO_LD_ADD = \
endif
-
-INCLUDES = \
- -DXMLSEC_CRYPTO=\"@XMLSEC_CRYPTO@\" \
+AM_CFLAGS = \
-DPACKAGE=\"@PACKAGE@\" \
-I../include \
-I$(top_srcdir)/include \
@@ -65,8 +63,8 @@ xmlsec1_SOURCES = \
xmlsec1_LDFLAGS = \
- $(CRYPTO_LD_FLAGS) \
@XMLSEC_STATIC_BINARIES@ \
+ $(CRYPTO_LD_FLAGS) \
$(NULL)
xmlsec1_LDADD = \
diff --git a/apps/Makefile.in b/apps/Makefile.in
index d5b8603..6561820 100644
--- a/apps/Makefile.in
+++ b/apps/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -80,15 +90,14 @@ build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = xmlsec1$(EXEEXT)
subdir = apps
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -101,7 +110,7 @@ am_xmlsec1_OBJECTS = xmlsec.$(OBJEXT) crypto.$(OBJEXT) \
xmlsec1_OBJECTS = $(am_xmlsec1_OBJECTS)
am__DEPENDENCIES_1 =
@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE at am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
- at XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@am__DEPENDENCIES_2 = $(top_builddir)/src/$(XMLSEC_CRYPTO)/lib$(XMLSEC_CRYPTO_LIB).la \
+ at XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@am__DEPENDENCIES_2 = $(top_builddir)/src/@XMLSEC_DEFAULT_CRYPTO@/lib$(XMLSEC_CRYPTO_LIB).la \
@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(am__DEPENDENCIES_1)
@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE at am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2) \
@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(am__DEPENDENCIES_1)
@@ -175,6 +184,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -211,6 +221,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -230,6 +244,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -268,7 +283,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -284,7 +299,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -292,6 +306,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -311,6 +326,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -325,7 +341,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -340,6 +355,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -399,7 +415,7 @@ NULL =
# check if we use dynamic loading for xmlsec-crypto or not
@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE at CRYPTO_DEPS = \
- at XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(top_builddir)/src/$(XMLSEC_CRYPTO)/lib$(XMLSEC_CRYPTO_LIB).la \
+ at XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(top_builddir)/src/@XMLSEC_DEFAULT_CRYPTO@/lib$(XMLSEC_CRYPTO_LIB).la \
@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(NULL)
@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE at CRYPTO_INCLUDES = \
@@ -424,8 +440,7 @@ NULL =
@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(CRYPTO_DEPS) \
@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(NULL)
-INCLUDES = \
- -DXMLSEC_CRYPTO=\"@XMLSEC_CRYPTO@\" \
+AM_CFLAGS = \
-DPACKAGE=\"@PACKAGE@\" \
-I../include \
-I$(top_srcdir)/include \
@@ -446,8 +461,8 @@ xmlsec1_SOURCES = \
$(NULL)
xmlsec1_LDFLAGS = \
- $(CRYPTO_LD_FLAGS) \
@XMLSEC_STATIC_BINARIES@ \
+ $(CRYPTO_LD_FLAGS) \
$(NULL)
xmlsec1_LDADD = \
@@ -479,7 +494,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu apps/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu apps/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -562,22 +576,25 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xmlsec.Po at am__quote@
.c.o:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+ at am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
@@ -793,6 +810,8 @@ uninstall-am: uninstall-binPROGRAMS
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-binPROGRAMS
+.PRECIOUS: Makefile
+
@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(NULL)
# Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/apps/cmdline.c b/apps/cmdline.c
index b9ecafb..4dd22ea 100644
--- a/apps/cmdline.c
+++ b/apps/cmdline.c
@@ -5,9 +5,9 @@
*
* See Copyright for the status of this software.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) && _MSC_VER < 1900
#define snprintf _snprintf
#endif
@@ -84,7 +84,7 @@ xmlSecAppCmdLineParamsListParse(xmlSecAppCmdLineParamPtr* params,
assert(params != NULL);
assert(argv != NULL);
- while((pos < argc) && (argv[pos][0] == '-')) {
+ while((pos < argc) && (argv[pos][0] == '-') && (strcmp(argv[pos], XMLSEC_STDOUT_FILENAME) != 0)) {
param = xmlSecAppCmdLineParamsListFind(params, topics, argv[pos]);
if(param == NULL) {
fprintf(stderr, "Error: parameter \"%s\" is not supported or the requested\nfeature might have been disabled during compilation.\n", argv[pos]);
@@ -101,15 +101,13 @@ xmlSecAppCmdLineParamsListParse(xmlSecAppCmdLineParamPtr* params,
/* check that all parameters at the end are filenames */
for(ii = pos; (ii < argc); ++ii) {
- if(argv[ii][0] == '-') {
+ if((argv[ii][0] == '-') && (strcmp(argv[pos], XMLSEC_STDOUT_FILENAME) != 0)) {
fprintf(stderr, "Error: filename is expected instead of parameter \"%s\".\n", argv[ii]);
return(-1);
-
}
}
-
-
-
+
+ /* done */
return(pos);
}
@@ -152,7 +150,7 @@ xmlSecAppCmdLineValueCreate(xmlSecAppCmdLineParamPtr param, int pos) {
assert(param != NULL);
value = (xmlSecAppCmdLineValuePtr) malloc(sizeof(xmlSecAppCmdLineValue));
if(value == NULL) {
- fprintf(stderr, "Error: malloc failed (%d bytes).\n", sizeof(xmlSecAppCmdLineValue));
+ fprintf(stderr, "Error: malloc failed (%d bytes).\n", (int)sizeof(xmlSecAppCmdLineValue));
return(NULL);
}
memset(value, 0, sizeof(xmlSecAppCmdLineValue));
@@ -284,7 +282,7 @@ xmlSecAppCmdLineParamRead(xmlSecAppCmdLineParamPtr param, const char** argv, int
value->strValue = argv[++pos];
buf = (char*)malloc(strlen(value->strValue) + 2);
if(buf == NULL) {
- fprintf(stderr, "Error: failed to allocate memory (%d bytes).\n", strlen(value->strValue) + 2);
+ fprintf(stderr, "Error: failed to allocate memory (%d bytes).\n", (int)strlen(value->strValue) + 2);
return(-1);
}
memset(buf, 0, strlen(value->strValue) + 2);
diff --git a/apps/cmdline.h b/apps/cmdline.h
index 9466f97..0ca9a75 100644
--- a/apps/cmdline.h
+++ b/apps/cmdline.h
@@ -5,7 +5,7 @@
*
* See Copyright for the status of this software.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_APPS_CMDLINE_H__
#define __XMLSEC_APPS_CMDLINE_H__
@@ -26,6 +26,8 @@ typedef unsigned int xmlSecAppCmdLineParamTopic;
#define xmlSecAppCmdLineParamFlagParamNameValue 0x0001
#define xmlSecAppCmdLineParamFlagMultipleValues 0x0002
+#define XMLSEC_STDOUT_FILENAME "-"
+
typedef enum {
xmlSecAppCmdLineParamTypeFlag,
xmlSecAppCmdLineParamTypeString,
diff --git a/apps/crypto.c b/apps/crypto.c
index 49dd127..1e53bc7 100644
--- a/apps/crypto.c
+++ b/apps/crypto.c
@@ -5,9 +5,9 @@
*
* See Copyright for the status of this software.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) && _MSC_VER < 1900
#define snprintf _snprintf
#endif
diff --git a/apps/crypto.h b/apps/crypto.h
index 63a94a4..b41d0c0 100644
--- a/apps/crypto.h
+++ b/apps/crypto.h
@@ -4,7 +4,7 @@
*
* See Copyright for the status of this software.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_APPS_CRYPTO_H__
#define __XMLSEC_APPS_CRYPTO_H__
diff --git a/apps/xmlsec.c b/apps/xmlsec.c
index c2f3196..85cc040 100644
--- a/apps/xmlsec.c
+++ b/apps/xmlsec.c
@@ -3,13 +3,13 @@
*
* See Copyright for the status of this software.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
#include <time.h>
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) && _MSC_VER < 1900
#define snprintf _snprintf
#endif
@@ -36,7 +36,6 @@
#include <xmlsec/transforms.h>
#include <xmlsec/xmldsig.h>
#include <xmlsec/xmlenc.h>
-#include <xmlsec/xkms.h>
#include <xmlsec/parser.h>
#include <xmlsec/templates.h>
#include <xmlsec/errors.h>
@@ -46,7 +45,7 @@
static const char copyright[] =
"Written by Aleksey Sanin <aleksey at aleksey.com>.\n\n"
- "Copyright (C) 2002-2003 Aleksey Sanin.\n"
+ "Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved..\n"
"This is free software: see the source for copying information.\n";
static const char bugs[] =
@@ -75,9 +74,6 @@ static const char helpCommands2[] =
" --encrypt " "\tencrypt data and output XML document\n"
" --decrypt " "\tdecrypt data from XML document\n"
#endif /* XMLSEC_NO_XMLENC */
-#ifndef XMLSEC_NO_XKMS
- " --xkms-server-request ""\tprocess data as XKMS server request\n"
-#endif /* XMLSEC_NO_XKMS */
;
static const char helpVersion[] =
@@ -113,10 +109,6 @@ static const char helpDecrypt[] =
"Usage: xmlsec decrypt [<options>] <file>\n"
"Decrypts XML Encryption data in the <file>\n";
-static const char helpXkmsServerRequest[] =
- "Usage: xmlsec xkms-server-request [<options>] <file>\n"
- "Processes the <file> as XKMS server request and outputs the response\n";
-
static const char helpListKeyData[] =
"Usage: xmlsec list-key-data\n"
"Prints the list of known key data klasses\n";
@@ -140,7 +132,7 @@ static const char helpCheckTransforms[] =
#define xmlSecAppCmdLineTopicEncCommon 0x0010
#define xmlSecAppCmdLineTopicEncEncrypt 0x0020
#define xmlSecAppCmdLineTopicEncDecrypt 0x0040
-#define xmlSecAppCmdLineTopicXkmsCommon 0x0080
+/* #define UNUSED 0x0080 */
#define xmlSecAppCmdLineTopicKeysMngr 0x1000
#define xmlSecAppCmdLineTopicX509Certs 0x2000
#define xmlSecAppCmdLineTopicVersion 0x4000
@@ -419,8 +411,7 @@ static xmlSecAppCmdLineParam sessionKeyParam = {
static xmlSecAppCmdLineParam outputParam = {
xmlSecAppCmdLineTopicDSigCommon |
- xmlSecAppCmdLineTopicEncCommon |
- xmlSecAppCmdLineTopicXkmsCommon,
+ xmlSecAppCmdLineTopicEncCommon,
"--output",
"-o",
"--output <filename>"
@@ -432,8 +423,7 @@ static xmlSecAppCmdLineParam outputParam = {
static xmlSecAppCmdLineParam nodeIdParam = {
xmlSecAppCmdLineTopicDSigCommon |
- xmlSecAppCmdLineTopicEncCommon |
- xmlSecAppCmdLineTopicXkmsCommon,
+ xmlSecAppCmdLineTopicEncCommon,
"--node-id",
NULL,
"--node-id <id>"
@@ -445,8 +435,7 @@ static xmlSecAppCmdLineParam nodeIdParam = {
static xmlSecAppCmdLineParam nodeNameParam = {
xmlSecAppCmdLineTopicDSigCommon |
- xmlSecAppCmdLineTopicEncCommon |
- xmlSecAppCmdLineTopicXkmsCommon,
+ xmlSecAppCmdLineTopicEncCommon,
"--node-name",
NULL,
"--node-name [<namespace-uri>:]<name>"
@@ -459,8 +448,7 @@ static xmlSecAppCmdLineParam nodeNameParam = {
static xmlSecAppCmdLineParam nodeXPathParam = {
xmlSecAppCmdLineTopicDSigCommon |
- xmlSecAppCmdLineTopicEncCommon |
- xmlSecAppCmdLineTopicXkmsCommon,
+ xmlSecAppCmdLineTopicEncCommon,
"--node-xpath",
NULL,
"--node-xpath <expr>"
@@ -473,8 +461,7 @@ static xmlSecAppCmdLineParam nodeXPathParam = {
static xmlSecAppCmdLineParam dtdFileParam = {
xmlSecAppCmdLineTopicDSigCommon |
- xmlSecAppCmdLineTopicEncCommon |
- xmlSecAppCmdLineTopicXkmsCommon,
+ xmlSecAppCmdLineTopicEncCommon,
"--dtd-file",
NULL,
"--dtd-file <file>"
@@ -486,8 +473,7 @@ static xmlSecAppCmdLineParam dtdFileParam = {
static xmlSecAppCmdLineParam printDebugParam = {
xmlSecAppCmdLineTopicDSigCommon |
- xmlSecAppCmdLineTopicEncCommon |
- xmlSecAppCmdLineTopicXkmsCommon,
+ xmlSecAppCmdLineTopicEncCommon,
"--print-debug",
NULL,
"--print-debug"
@@ -499,8 +485,7 @@ static xmlSecAppCmdLineParam printDebugParam = {
static xmlSecAppCmdLineParam printXmlDebugParam = {
xmlSecAppCmdLineTopicDSigCommon |
- xmlSecAppCmdLineTopicEncCommon |
- xmlSecAppCmdLineTopicXkmsCommon,
+ xmlSecAppCmdLineTopicEncCommon,
"--print-xml-debug",
NULL,
"--print-xml-debug"
@@ -512,8 +497,7 @@ static xmlSecAppCmdLineParam printXmlDebugParam = {
static xmlSecAppCmdLineParam idAttrParam = {
xmlSecAppCmdLineTopicDSigCommon |
- xmlSecAppCmdLineTopicEncCommon |
- xmlSecAppCmdLineTopicXkmsCommon,
+ xmlSecAppCmdLineTopicEncCommon,
"--id-attr",
NULL,
"--id-attr[:<attr-name>] [<node-namespace-uri>:]<node-name>"
@@ -641,72 +625,6 @@ static xmlSecAppCmdLineParam xmlDataParam = {
};
#endif /* XMLSEC_NO_XMLENC */
-/****************************************************************
- *
- * XKMS params
- *
- ***************************************************************/
-#ifndef XMLSEC_NO_XKMS
-static xmlSecAppCmdLineParam xkmsServiceParam = {
- xmlSecAppCmdLineTopicXkmsCommon,
- "--xkms-service",
- NULL,
- "--xkms-service <uri>"
- "\n\tsets XKMS \"Service\" <uri>",
- xmlSecAppCmdLineParamTypeString,
- xmlSecAppCmdLineParamFlagNone,
- NULL
-};
-
-static xmlSecAppCmdLineParam xkmsFormatParam = {
- xmlSecAppCmdLineTopicXkmsCommon,
- "--xkms-format",
- NULL,
- "--xkms-format <format>"
- "\n\tsets the XKMS request/response format to one of the following values:"
- "\n\t \"plain\" (default), \"soap-1.1\" or \"soap-1.2\"",
- xmlSecAppCmdLineParamTypeString,
- xmlSecAppCmdLineParamFlagNone,
- NULL
-};
-
-static xmlSecAppCmdLineParam xkmsStopUnknownResponseMechanismParam = {
- xmlSecAppCmdLineTopicXkmsCommon, /* todo: server */
- "--xkms-stop-on-unknown-response-mechanism",
- NULL,
- "--xkms-stop-on-unknown-response-mechanism"
- "\n\tstop processing XKMS server request if unknown ResponseMechanism"
- "\n\tvalue was found",
- xmlSecAppCmdLineParamTypeFlag,
- xmlSecAppCmdLineParamFlagNone,
- NULL
-};
-
-static xmlSecAppCmdLineParam xkmsStopUnknownRespondWithParam = {
- xmlSecAppCmdLineTopicXkmsCommon, /* todo: server */
- "--xkms-stop-on-unknown-respond-with",
- NULL,
- "--xkms-stop-on-unknown-respond-with"
- "\n\tstop processing XKMS server request if unknown RespondWith"
- "\n\tvalue was found",
- xmlSecAppCmdLineParamTypeFlag,
- xmlSecAppCmdLineParamFlagNone,
- NULL
-};
-
-static xmlSecAppCmdLineParam xkmsStopUnknownKeyUsageParam = {
- xmlSecAppCmdLineTopicXkmsCommon, /* todo: server */
- "--xkms-stop-on-unknown-key-usage",
- NULL,
- "--xkms-stop-on-unknown-key-usage"
- "\n\tstop processing XKMS server request if unknown KeyUsage"
- "\n\tvalue was found",
- xmlSecAppCmdLineParamTypeFlag,
- xmlSecAppCmdLineParamFlagNone,
- NULL
-};
-
-#endif /* XMLSEC_NO_XKMS */
/****************************************************************
*
@@ -842,15 +760,6 @@ static xmlSecAppCmdLineParamPtr parameters[] = {
&xmlDataParam,
&enabledCipherRefUrisParam,
#endif /* XMLSEC_NO_XMLENC */
-
- /* xkms params */
-#ifndef XMLSEC_NO_XKMS
- &xkmsServiceParam,
- &xkmsFormatParam,
- &xkmsStopUnknownResponseMechanismParam,
- &xkmsStopUnknownRespondWithParam,
- &xkmsStopUnknownKeyUsageParam,
-#endif /* XMLSEC_NO_XKMS */
/* common dsig and enc parameters */
&sessionKeyParam,
@@ -923,8 +832,7 @@ typedef enum {
xmlSecAppCommandSignTmpl,
xmlSecAppCommandEncrypt,
xmlSecAppCommandDecrypt,
- xmlSecAppCommandEncryptTmpl,
- xmlSecAppCommandXkmsServerRequest
+ xmlSecAppCommandEncryptTmpl
} xmlSecAppCommand;
typedef struct _xmlSecAppXmlData xmlSecAppXmlData,
@@ -972,12 +880,6 @@ static int xmlSecAppPrepareEncCtx (xmlSecEncCtxPtr
static void xmlSecAppPrintEncCtx (xmlSecEncCtxPtr encCtx);
#endif /* XMLSEC_NO_XMLENC */
-#ifndef XMLSEC_NO_XKMS
-static int xmlSecAppXkmsServerProcess (const char* filename);
-static int xmlSecAppPrepareXkmsServerCtx (xmlSecXkmsServerCtxPtr xkmsServerCtx);
-static void xmlSecAppPrintXkmsServerCtx (xmlSecXkmsServerCtxPtr xkmsServerCtx);
-#endif /* XMLSEC_NO_XKMS */
-
static void xmlSecAppListKeyData (void);
static int xmlSecAppCheckKeyData (const char * name);
static void xmlSecAppListTransforms (void);
@@ -997,7 +899,7 @@ xmlSecKeysMngrPtr gKeysMngr = NULL;
int repeats = 1;
int print_debug = 0;
clock_t total_time = 0;
-const char* xmlsec_crypto = XMLSEC_CRYPTO;
+const char* xmlsec_crypto = NULL;
const char* tmp = NULL;
int main(int argc, const char **argv) {
@@ -1023,7 +925,7 @@ int main(int argc, const char **argv) {
xmlSecAppPrintHelp(subCommand, cmdLineTopics);
goto success;
} else if(command == xmlSecAppCommandVersion) {
- fprintf(stdout, "%s %s (%s)\n", PACKAGE, XMLSEC_VERSION, xmlsec_crypto);
+ fprintf(stdout, "%s %s (%s)\n", PACKAGE, XMLSEC_VERSION, xmlSecGetDefaultCrypto());
goto success;
}
@@ -1048,7 +950,6 @@ int main(int argc, const char **argv) {
case xmlSecAppCommandVerify:
case xmlSecAppCommandEncrypt:
case xmlSecAppCommandDecrypt:
- case xmlSecAppCommandXkmsServerRequest:
if(pos >= argc) {
fprintf(stderr, "Error: <file> parameter is required for this command\n");
xmlSecAppPrintUsage();
@@ -1067,8 +968,8 @@ int main(int argc, const char **argv) {
xmlsec_crypto = tmp;
}
#else /* !defined(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) && defined(XMLSEC_CRYPTO_DYNAMIC_LOADING) */
- if((tmp != NULL) && (strcmp(tmp, xmlsec_crypto) != 0)) {
- fprintf(stderr, "Error: dynaimc crypto libraries loading is disabled and the only available crypto library is '%s'\n", xmlsec_crypto);
+ if((tmp != NULL) && (xmlStrcmp(BAD_CAST tmp, xmlSecGetDefaultCrypto()) != 0)) {
+ fprintf(stderr, "Error: dynaimc crypto libraries loading is disabled and the only available crypto library is '%s'\n", xmlSecGetDefaultCrypto());
xmlSecAppPrintUsage();
goto fail;
}
@@ -1102,12 +1003,12 @@ int main(int argc, const char **argv) {
break;
case xmlSecAppCommandCheckKeyData:
for(i = pos; i < argc; ++i) {
- if(xmlSecAppCheckKeyData(argv[i]) < 0) {
- fprintf(stderr, "Error: key data \"%s\" not found\n", argv[i]);
- goto fail;
- } else {
- fprintf(stdout, "Key data \"%s\" found\n", argv[i]);
- }
+ if(xmlSecAppCheckKeyData(argv[i]) < 0) {
+ fprintf(stderr, "Error: key data \"%s\" not found\n", argv[i]);
+ goto fail;
+ } else {
+ fprintf(stdout, "Key data \"%s\" found\n", argv[i]);
+ }
}
break;
case xmlSecAppCommandListTransforms:
@@ -1115,12 +1016,12 @@ int main(int argc, const char **argv) {
break;
case xmlSecAppCommandCheckTransforms:
for(i = pos; i < argc; ++i) {
- if(xmlSecAppCheckTransform(argv[i]) < 0) {
- fprintf(stderr, "Error: transform \"%s\" not found\n", argv[i]);
- goto fail;
- } else {
- fprintf(stdout, "Transforms \"%s\" found\n", argv[i]);
- }
+ if(xmlSecAppCheckTransform(argv[i]) < 0) {
+ fprintf(stderr, "Error: transform \"%s\" not found\n", argv[i]);
+ goto fail;
+ } else {
+ fprintf(stdout, "Transforms \"%s\" found\n", argv[i]);
+ }
}
break;
case xmlSecAppCommandKeys:
@@ -1185,16 +1086,6 @@ int main(int argc, const char **argv) {
#endif /* XMLSEC_NO_TMPL_TEST */
#endif /* XMLSEC_NO_XMLENC */
-#ifndef XMLSEC_NO_XKMS
- case xmlSecAppCommandXkmsServerRequest:
- for(i = pos; i < argc; ++i) {
- if(xmlSecAppXkmsServerProcess(argv[i]) < 0) {
- fprintf(stderr, "Error: failed to process XKMS server request from file \"%s\"\n", argv[i]);
- goto fail;
- }
- }
- break;
-#endif /* XMLSEC_NO_XKMS */
default:
fprintf(stderr, "Error: invalid command %d\n", command);
xmlSecAppPrintUsage();
@@ -1883,142 +1774,6 @@ xmlSecAppPrintEncCtx(xmlSecEncCtxPtr encCtx) {
#endif /* XMLSEC_NO_XMLENC */
-#ifndef XMLSEC_NO_XKMS
-static int
-xmlSecAppXkmsServerProcess(const char* filename) {
- xmlSecAppXmlDataPtr data = NULL;
- xmlDocPtr doc = NULL;
- xmlNodePtr result;
- xmlSecXkmsServerCtx xkmsServerCtx;
- xmlSecXkmsServerFormat format = xmlSecXkmsServerFormatPlain;
- clock_t start_time;
- int res = -1;
-
- if(filename == NULL) {
- return(-1);
- }
-
- if(xmlSecXkmsServerCtxInitialize(&xkmsServerCtx, gKeysMngr) < 0) {
- fprintf(stderr, "Error: XKMS server context initialization failed\n");
- return(-1);
- }
- if(xmlSecAppPrepareXkmsServerCtx(&xkmsServerCtx) < 0) {
- fprintf(stderr, "Error: XKMS server context preparation failed\n");
- goto done;
- }
-
- /* get the input format */
- if(xmlSecAppCmdLineParamGetString(&xkmsFormatParam) != NULL) {
- format = xmlSecXkmsServerFormatFromString(BAD_CAST xmlSecAppCmdLineParamGetString(&xkmsFormatParam));
- if(format == xmlSecXkmsServerFormatUnknown) {
- fprintf(stderr, "Error: unknown format \"%s\"\n",
- xmlSecAppCmdLineParamGetString(&xkmsFormatParam));
- return(-1);
- }
- }
-
- /* parse template and select start node, there are multiple options
- * for start node thus we don't provide the default start node name */
- data = xmlSecAppXmlDataCreate(filename, NULL, NULL);
- if(data == NULL) {
- fprintf(stderr, "Error: failed to load request from file \"%s\"\n", filename);
- goto done;
- }
-
- /* prepare result document */
- doc = xmlNewDoc(BAD_CAST "1.0");
- if(doc == NULL) {
- fprintf(stderr, "Error: failed to create doc\n");
- goto done;
- }
-
- start_time = clock();
- result = xmlSecXkmsServerCtxProcess(&xkmsServerCtx, data->startNode, format, doc);
- if(result == NULL) {
- fprintf(stderr, "Error: failed to process xkms server request\n");
- goto done;
- }
- total_time += clock() - start_time;
-
-
- /* print out result only once per execution */
- xmlDocSetRootElement(doc, result);
- if(repeats <= 1) {
- if(xmlSecAppWriteResult(doc, NULL) < 0) {
- goto done;
- }
- }
-
- res = 0;
-
-done:
- /* print debug info if requested */
- if(repeats <= 1) {
- xmlSecAppPrintXkmsServerCtx(&xkmsServerCtx);
- }
- xmlSecXkmsServerCtxFinalize(&xkmsServerCtx);
-
- if(doc != NULL) {
- xmlFreeDoc(doc);
- }
- if(data != NULL) {
- xmlSecAppXmlDataDestroy(data);
- }
- return(res);
-}
-
-static int
-xmlSecAppPrepareXkmsServerCtx(xmlSecXkmsServerCtxPtr xkmsServerCtx) {
- if(xkmsServerCtx == NULL) {
- fprintf(stderr, "Error: XKMS context is null\n");
- return(-1);
- }
-
- /* set key info params */
- if(xmlSecAppPrepareKeyInfoReadCtx(&(xkmsServerCtx->keyInfoReadCtx)) < 0) {
- fprintf(stderr, "Error: failed to prepare key info context\n");
- return(-1);
- }
-
- if(xmlSecAppCmdLineParamGetString(&xkmsServiceParam) != NULL) {
- xkmsServerCtx->expectedService = xmlStrdup(BAD_CAST xmlSecAppCmdLineParamGetString(&xkmsServiceParam));
- if(xkmsServerCtx->expectedService == NULL) {
- fprintf(stderr, "Error: failed to duplicate string \"%s\"\n",
- xmlSecAppCmdLineParamGetString(&xkmsServiceParam));
- return(-1);
- }
- }
-
- if(xmlSecAppCmdLineParamIsSet(&xkmsStopUnknownResponseMechanismParam)) {
- xkmsServerCtx->flags |= XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_RESPONSE_MECHANISM;
- }
- if(xmlSecAppCmdLineParamIsSet(&xkmsStopUnknownRespondWithParam)) {
- xkmsServerCtx->flags |= XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_RESPOND_WITH;
- }
- if(xmlSecAppCmdLineParamIsSet(&xkmsStopUnknownKeyUsageParam)) {
- xkmsServerCtx->flags |= XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_KEY_USAGE;
- }
- return(0);
-}
-
-static void
-xmlSecAppPrintXkmsServerCtx(xmlSecXkmsServerCtxPtr xkmsServerCtx) {
- if(xkmsServerCtx == NULL) {
- return;
- }
-
- /* print debug info if requested */
- if((print_debug != 0) || xmlSecAppCmdLineParamIsSet(&printDebugParam)) {
- xmlSecXkmsServerCtxDebugDump(xkmsServerCtx, stdout);
- }
-
- if(xmlSecAppCmdLineParamIsSet(&printXmlDebugParam)) {
- xmlSecXkmsServerCtxDebugXmlDump(xkmsServerCtx, stdout);
- }
-}
-
-#endif /* XMLSEC_NO_XKMS */
-
static void
xmlSecAppListKeyData(void) {
fprintf(stdout, "Registered key data klasses:\n");
@@ -2453,7 +2208,9 @@ xmlSecAppInit(void) {
fprintf(stderr, "Error: unable to load xmlsec-%s library. Make sure that you have\n"
"this it installed, check shared libraries path (LD_LIBRARY_PATH)\n"
"envornment variable or use \"--crypto\" option to specify different\n"
- "crypto engine.\n", xmlsec_crypto);
+ "crypto engine.\n",
+ ((xmlsec_crypto != NULL) ? BAD_CAST xmlsec_crypto : xmlSecGetDefaultCrypto())
+ );
return(-1);
}
#endif /* !defined(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) && defined(XMLSEC_CRYPTO_DYNAMIC_LOADING) */
@@ -2854,18 +2611,6 @@ xmlSecAppParseCommand(const char* cmd, xmlSecAppCmdLineParamTopic* cmdLineTopics
#endif /* XMLSEC_NO_TMPL_TEST */
#endif /* XMLSEC_NO_XMLENC */
-#ifndef XMLSEC_NO_XKMS
- if(strcmp(cmd, "--xkms-server-request") == 0) {
- (*cmdLineTopics) =
- xmlSecAppCmdLineTopicGeneral |
- xmlSecAppCmdLineTopicCryptoConfig |
- xmlSecAppCmdLineTopicXkmsCommon |
- xmlSecAppCmdLineTopicKeysMngr |
- xmlSecAppCmdLineTopicX509Certs;
- return(xmlSecAppCommandXkmsServerRequest);
- } else
-#endif /* XMLSEC_NO_XKMS */
-
if(1) {
(*cmdLineTopics) = 0;
return(xmlSecAppCommandUnknown);
@@ -2915,9 +2660,6 @@ xmlSecAppPrintHelp(xmlSecAppCommand command, xmlSecAppCmdLineParamTopic topics)
case xmlSecAppCommandEncryptTmpl:
fprintf(stdout, "%s\n", helpEncryptTmpl);
break;
- case xmlSecAppCommandXkmsServerRequest:
- fprintf(stdout, "%s\n", helpXkmsServerRequest);
- break;
}
if(topics != 0) {
fprintf(stdout, "Options:\n");
@@ -2954,7 +2696,7 @@ static FILE*
xmlSecAppOpenFile(const char* filename) {
FILE* file;
- if((filename == NULL) || (strcmp(filename, "-") == 0)) {
+ if((filename == NULL) || (strcmp(filename, XMLSEC_STDOUT_FILENAME) == 0)) {
return(stdout);
}
file = fopen(filename, "wb");
@@ -2986,7 +2728,7 @@ xmlSecAppWriteResult(xmlDocPtr doc, xmlSecBufferPtr buffer) {
if(doc != NULL) {
xmlDocDump(f, doc);
} else if((buffer != NULL) && (xmlSecBufferGetData(buffer) != NULL)) {
- fwrite(xmlSecBufferGetData(buffer), xmlSecBufferGetSize(buffer), 1, f);
+ (void)fwrite(xmlSecBufferGetData(buffer), xmlSecBufferGetSize(buffer), 1, f);
} else {
fprintf(stderr, "Error: both result doc and result buffer are null\n");
xmlSecAppCloseFile(f);
diff --git a/compile b/compile
new file mode 100755
index 0000000..a85b723
--- /dev/null
+++ b/compile
@@ -0,0 +1,347 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey at cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake at gnu.org> or send patches to
+# <automake-patches at gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv/,$2, in
+ *,$file_conv,*)
+ ;;
+ mingw/*)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin/*)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine/*)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+ func_file_conv "$1"
+ if test -z "$lib_path"; then
+ lib_path=$file
+ else
+ lib_path="$lib_path;$file"
+ fi
+ linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+ lib=$1
+ found=no
+ save_IFS=$IFS
+ IFS=';'
+ for dir in $lib_path $LIB
+ do
+ IFS=$save_IFS
+ if $shared && test -f "$dir/$lib.dll.lib"; then
+ found=yes
+ lib=$dir/$lib.dll.lib
+ break
+ fi
+ if test -f "$dir/$lib.lib"; then
+ found=yes
+ lib=$dir/$lib.lib
+ break
+ fi
+ if test -f "$dir/lib$lib.a"; then
+ found=yes
+ lib=$dir/lib$lib.a
+ break
+ fi
+ done
+ IFS=$save_IFS
+
+ if test "$found" != yes; then
+ lib=$lib.lib
+ fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+ # Assume a capable shell
+ lib_path=
+ shared=:
+ linker_opts=
+ for arg
+ do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ eat=1
+ case $2 in
+ *.o | *.[oO][bB][jJ])
+ func_file_conv "$2"
+ set x "$@" -Fo"$file"
+ shift
+ ;;
+ *)
+ func_file_conv "$2"
+ set x "$@" -Fe"$file"
+ shift
+ ;;
+ esac
+ ;;
+ -I)
+ eat=1
+ func_file_conv "$2" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -I*)
+ func_file_conv "${1#-I}" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -l)
+ eat=1
+ func_cl_dashl "$2"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -l*)
+ func_cl_dashl "${1#-l}"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -L)
+ eat=1
+ func_cl_dashL "$2"
+ ;;
+ -L*)
+ func_cl_dashL "${1#-L}"
+ ;;
+ -static)
+ shared=false
+ ;;
+ -Wl,*)
+ arg=${1#-Wl,}
+ save_ifs="$IFS"; IFS=','
+ for flag in $arg; do
+ IFS="$save_ifs"
+ linker_opts="$linker_opts $flag"
+ done
+ IFS="$save_ifs"
+ ;;
+ -Xlinker)
+ eat=1
+ linker_opts="$linker_opts $2"
+ ;;
+ -*)
+ set x "$@" "$1"
+ shift
+ ;;
+ *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+ func_file_conv "$1"
+ set x "$@" -Tp"$file"
+ shift
+ ;;
+ *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+ func_file_conv "$1" mingw
+ set x "$@" "$file"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+ done
+ if test -n "$linker_opts"; then
+ linker_opts="-link$linker_opts"
+ fi
+ exec "$@" $linker_opts
+ exit 1
+}
+
+eat=
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake at gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ # So we strip '-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # If no '-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # '.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file. Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/config.guess b/config.guess
index b79252d..1f5c50c 100755
--- a/config.guess
+++ b/config.guess
@@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2013 Free Software Foundation, Inc.
+# Copyright 1992-2014 Free Software Foundation, Inc.
-timestamp='2013-06-10'
+timestamp='2014-03-23'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2013 Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -149,7 +149,7 @@ Linux|GNU|GNU/*)
LIBC=gnu
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
;;
esac
@@ -826,7 +826,7 @@ EOF
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
- i*:MSYS*:*)
+ *:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys
exit ;;
i*:windows32*:*)
@@ -969,10 +969,10 @@ EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
- or1k:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ openrisc*:Linux:*:*)
+ echo or1k-unknown-linux-${LIBC}
exit ;;
- or32:Linux:*:*)
+ or32:Linux:*:* | or1k*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
padre:Linux:*:*)
@@ -1260,16 +1260,26 @@ EOF
if test "$UNAME_PROCESSOR" = unknown ; then
UNAME_PROCESSOR=powerpc
fi
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
+ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
fi
+ elif test "$UNAME_PROCESSOR" = i386 ; then
+ # Avoid executing cc on OS X 10.9, as it ships with a stub
+ # that puts up a graphical alert prompting to install
+ # developer tools. Any system running Mac OS X 10.7 or
+ # later (Darwin 11 and later) is required to have a 64-bit
+ # processor. This is not true of the ARM version of Darwin
+ # that Apple uses in portable devices.
+ UNAME_PROCESSOR=x86_64
fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
@@ -1361,154 +1371,6 @@ EOF
exit ;;
esac
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- c34*)
- echo c34-convex-bsd
- exit ;;
- c38*)
- echo c38-convex-bsd
- exit ;;
- c4*)
- echo c4-convex-bsd
- exit ;;
- esac
-fi
-
cat >&2 <<EOF
$0: unable to guess system type
diff --git a/config.h.in b/config.h.in
index d8c6a47..83d8e1e 100644
--- a/config.h.in
+++ b/config.h.in
@@ -1,4 +1,4 @@
-/* config.h.in. Generated from configure.in by autoheader. */
+/* config.h.in. Generated from configure.ac by autoheader. */
/* Define to 1 if you have the <ansidecl.h> header file. */
#undef HAVE_ANSIDECL_H
@@ -19,6 +19,9 @@
/* Define to 1 if you have the `fprintf' function. */
#undef HAVE_FPRINTF
+/* Define to 1 if you have the <gnutls/gnutls.h> header file. */
+#undef HAVE_GNUTLS_GNUTLS_H
+
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
diff --git a/config.sub b/config.sub
index 9633db7..bba4efb 100755
--- a/config.sub
+++ b/config.sub
@@ -1,8 +1,8 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2013 Free Software Foundation, Inc.
+# Copyright 1992-2014 Free Software Foundation, Inc.
-timestamp='2013-08-10'
+timestamp='2014-09-11'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -68,7 +68,7 @@ Report bugs and patches to <config-patches at gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2013 Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -265,6 +265,7 @@ case $basic_machine in
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | k1om \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
@@ -282,8 +283,10 @@ case $basic_machine in
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r6 | mipsisa32r6el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r6 | mipsisa64r6el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipsr5900 | mipsr5900el \
@@ -295,11 +298,11 @@ case $basic_machine in
| nds32 | nds32le | nds32be \
| nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
- | open8 \
- | or1k | or32 \
+ | open8 | or1k | or1knd | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
+ | riscv32 | riscv64 \
| rl78 | rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
@@ -324,7 +327,7 @@ case $basic_machine in
c6x)
basic_machine=tic6x-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
@@ -381,6 +384,7 @@ case $basic_machine in
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | k1om-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
@@ -400,8 +404,10 @@ case $basic_machine in
| mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa32r6-* | mipsisa32r6el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64r6-* | mipsisa64r6el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipsr5900-* | mipsr5900el-* \
@@ -413,6 +419,7 @@ case $basic_machine in
| nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
+ | or1k*-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
@@ -822,6 +829,10 @@ case $basic_machine in
basic_machine=powerpc-unknown
os=-morphos
;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ os=-moxiebox
+ ;;
msdos)
basic_machine=i386-pc
os=-msdos
@@ -1367,14 +1378,14 @@ case $os in
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1592,9 +1603,6 @@ case $basic_machine in
mips*-*)
os=-elf
;;
- or1k-*)
- os=-elf
- ;;
or32-*)
os=-coff
;;
diff --git a/configure b/configure
index 6b28917..9ff0eee 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xmlsec1 1.2.20.
+# Generated by GNU Autoconf 2.69 for xmlsec1 1.2.23.
#
# Report bugs to <http://www.aleksey.com/xmlsec>.
#
@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='xmlsec1'
PACKAGE_TARNAME='xmlsec1'
-PACKAGE_VERSION='1.2.20'
-PACKAGE_STRING='xmlsec1 1.2.20'
+PACKAGE_VERSION='1.2.23'
+PACKAGE_STRING='xmlsec1 1.2.23'
PACKAGE_BUGREPORT='http://www.aleksey.com/xmlsec'
PACKAGE_URL=''
@@ -641,7 +641,7 @@ XMLSEC_CRYPTO_CFLAGS
XMLSEC_CRYPTO_LIB
XMLSEC_CRYPTO_DISABLED_LIST
XMLSEC_CRYPTO_LIST
-XMLSEC_CRYPTO
+XMLSEC_DEFAULT_CRYPTO
XMLSEC_CRYPTO_EXTRA_LDFLAGS
XMLSEC_EXTRA_LDFLAGS
XMLSEC_APP_DEFINES
@@ -669,15 +669,15 @@ XMLSEC_DL_INCLUDES
XMLSEC_NO_CRYPTO_DYNAMIC_LOADING
XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_FALSE
XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_TRUE
-XMLSEC_NO_XKMS
-XMLSEC_NO_XKMS_FALSE
-XMLSEC_NO_XKMS_TRUE
XMLSEC_NO_XMLENC
XMLSEC_NO_XMLENC_FALSE
XMLSEC_NO_XMLENC_TRUE
XMLSEC_NO_XMLDSIG
XMLSEC_NO_XMLDSIG_FALSE
XMLSEC_NO_XMLDSIG_TRUE
+XMLSEC_NO_GOST2012
+XMLSEC_NO_GOST2012_FALSE
+XMLSEC_NO_GOST2012_TRUE
XMLSEC_NO_GOST
XMLSEC_NO_GOST_FALSE
XMLSEC_NO_GOST_TRUE
@@ -758,6 +758,7 @@ XMLSEC_NO_OPENSSL_FALSE
XMLSEC_NO_OPENSSL_TRUE
OPENSSL_LIBS
OPENSSL_CFLAGS
+LIBXSLT_PC_FILE_COND
LIBXSLT_MIN_VERSION
XMLSEC_NO_LIBXSLT
LIBXSLT_CONFIG
@@ -770,11 +771,28 @@ LIBXML_CFLAGS
PKG_CONFIG_LIBDIR
PKG_CONFIG_PATH
PKG_CONFIG
-PKGCONFIG_PRESENT
SHAREDLIB_HACK_FALSE
SHAREDLIB_HACK_TRUE
+BUILD_API_DOCS_FALSE
+BUILD_API_DOCS_TRUE
+BUILD_MAN_DOCS_FALSE
+BUILD_MAN_DOCS_TRUE
+HAS_XSLTPROC_FALSE
+HAS_XSLTPROC_TRUE
+HAS_MAN2HTML_FALSE
+HAS_MAN2HTML_TRUE
+GTKDOC_SCAN
+GTKDOC_MKDB
+GTKDOC_MKTMPL
+GTKDOC_MKHTML
MAN2HTML
+XSLTPROC
+BUILD_MANPAGES_FALSE
+BUILD_MANPAGES_TRUE
+HAS_HELP2MAN_FALSE
+HAS_HELP2MAN_TRUE
HELP2MAN
+PERL
TAR
MV
CP
@@ -915,6 +933,8 @@ with_gnu_ld
with_sysroot
enable_libtool_lock
enable_development
+enable_manpages_build
+enable_docs_build
enable_pkgconfig
with_libxml
with_libxml_src
@@ -945,7 +965,6 @@ enable_aes
enable_gost
enable_xmldsig
enable_xmlenc
-enable_xkms
enable_crypto_dl
enable_apps_crypto_dl
with_html_dir
@@ -1520,7 +1539,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures xmlsec1 1.2.20 to adapt to many kinds of systems.
+\`configure' configures xmlsec1 1.2.23 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1590,7 +1609,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of xmlsec1 1.2.20:";;
+ short | recursive ) echo "Configuration of xmlsec1 1.2.23:";;
esac
cat <<\_ACEOF
@@ -1613,6 +1632,8 @@ Optional Features:
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--enable-development enable development environment (no)
+ --enable-manpages-build man pages build (no)
+ --enable-docs-build docs build (no)
--enable-pkgconfig enable pkgconfig for configuration (yes)
--enable-mscrypto enable mscrypto (no)
--enable-md5 enable MD5 support (yes)
@@ -1627,11 +1648,11 @@ Optional Features:
--enable-rsa enable RSA support (yes)
--enable-x509 enable x509 support (yes)
--enable-des enable DES support (yes)
- --enable-aes enable AES support (OpenSSL >= 0.9.7 is required)
+ --enable-aes enable AES support
--enable-gost enable GOST support (no)
+ --enable-gost2012 enable EXPERMIENTAL GOST2012 support (no)
--enable-xmldsig enable XMLDSig support (yes)
--enable-xmlenc enable XMLEnc support (yes)
- --enable-xkms enable XKMS support - under development (no)
--enable-crypto-dl enable dynamic loading support for xmlsec-crypto libraries (yes)
--enable-apps-crypto-dl enable dynamic loading support for xmlsec-crypto libraries in xmlsec command line tool (yes)
--enable-skm enable Simple Keys Manager testing (yes)
@@ -1767,7 +1788,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-xmlsec1 configure 1.2.20
+xmlsec1 configure 1.2.23
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2319,7 +2340,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by xmlsec1 $as_me 1.2.20, which was
+It was created by xmlsec1 $as_me 1.2.23, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2671,7 +2692,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
XMLSEC_PACKAGE=xmlsec1
XMLSEC_VERSION_MAJOR=1
XMLSEC_VERSION_MINOR=2
-XMLSEC_VERSION_SUBMINOR=20
+XMLSEC_VERSION_SUBMINOR=23
XMLSEC_VERSION="$XMLSEC_VERSION_MAJOR.$XMLSEC_VERSION_MINOR.$XMLSEC_VERSION_SUBMINOR"
XMLSEC_VERSION_INFO=`echo $XMLSEC_VERSION | awk -F. '{ printf "%d:%d:%d", $1+$2, $3, $2 }'`
XMLSEC_VERSION_SAFE=`echo $XMLSEC_VERSION | sed 's/\./_/g'`
@@ -2787,7 +2808,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-am__api_version='1.13'
+am__api_version='1.15'
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
@@ -2959,8 +2980,8 @@ test "$program_suffix" != NONE &&
ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
if test x"${MISSING+set}" != xset; then
case $am_aux_dir in
@@ -2979,7 +3000,7 @@ else
$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
fi
-if test x"${install_sh}" != xset; then
+if test x"${install_sh+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
@@ -3273,7 +3294,7 @@ fi
# Define the identity of the package.
PACKAGE='xmlsec1'
- VERSION='1.2.20'
+ VERSION='1.2.23'
cat >>confdefs.h <<_ACEOF
@@ -3307,8 +3328,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
mkdir_p='$(MKDIR_P)'
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
# Always define AMTAR for backward compatibility. Yes, it's still used
# in the wild :-( We should find a proper way to deprecate it ...
AMTAR='$${TAR-tar}'
@@ -3440,6 +3461,48 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; }
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake at gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+ fi
+fi
+
ac_config_headers="$ac_config_headers config.h"
@@ -4297,6 +4360,65 @@ ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
DEPDIR="${am__leading_dot}deps"
ac_config_commands="$ac_config_commands depfiles"
@@ -7076,7 +7198,7 @@ ia64-*-hpux*)
rm -rf conftest*
;;
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
@@ -7101,7 +7223,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
;;
esac
;;
- ppc64-*linux*|powerpc64-*linux*)
+ powerpc64le-*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
@@ -7120,7 +7245,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
- ppc*-*linux*|powerpc*-*linux*)
+ powerpcle-*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*)
LD="${LD-ld} -m elf64ppc"
;;
s390*-*linux*|s390*-*tpf*)
@@ -12179,16 +12307,16 @@ $as_echo "no" >&6; }
fi
-# Extract the first word of "help2man", so it can be a program name with args.
-set dummy help2man; ac_word=$2
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_HELP2MAN+:} false; then :
+if ${ac_cv_path_PERL+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $HELP2MAN in
+ case $PERL in
[\\/]* | ?:[\\/]*)
- ac_cv_path_HELP2MAN="$HELP2MAN" # Let the user override the test with a path.
+ ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -12198,7 +12326,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_HELP2MAN="$as_dir/$ac_word$ac_exec_ext"
+ ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -12209,55 +12337,16 @@ IFS=$as_save_IFS
;;
esac
fi
-HELP2MAN=$ac_cv_path_HELP2MAN
-if test -n "$HELP2MAN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HELP2MAN" >&5
-$as_echo "$HELP2MAN" >&6; }
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-# Extract the first word of "man2html", so it can be a program name with args.
-set dummy man2html; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MAN2HTML+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $MAN2HTML in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_MAN2HTML="$MAN2HTML" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_MAN2HTML="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-MAN2HTML=$ac_cv_path_MAN2HTML
-if test -n "$MAN2HTML"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAN2HTML" >&5
-$as_echo "$MAN2HTML" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
ac_header_dirent=no
@@ -12640,6 +12729,8 @@ if test "z$enable_development" = "zyes" ; then
enable_debugging="yes"
enable_pedantic="yes"
enable_static_linking="yes"
+ enable_manpages_build="yes"
+ enable_docs_build="yes"
enable_crypto_dl="no"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -12648,164 +12739,107 @@ else
$as_echo "no" >&6; }
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for man pages build" >&5
+$as_echo_n "checking for man pages build... " >&6; }
+# Check whether --enable-manpages_build was given.
+if test "${enable_manpages_build+set}" = set; then :
+ enableval=$enable_manpages_build;
+fi
-XMLSEC_EXTRA_LDFLAGS=
-XMLSEC_CRYPTO_EXTRA_LDFLAGS=
-
-xmlsec_sharedlib_hack="no"
-if test -n "$shrext"; then
- XMLSEC_SHLIBSFX="$shrext"
+if test "z$enable_manpages_build" = "zyes" ; then
+ # Extract the first word of "help2man", so it can be a program name with args.
+set dummy help2man; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_HELP2MAN+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- XMLSEC_SHLIBSFX="$shrext_cmds"
-fi
-case "${host}" in
- *aix* )
- CFLAGS="${CFLAGS} -D_ALL_SOURCE"
- ;;
- *-*-mingw*)
- XMLSEC_EXTRA_LDFLAGS="-no-undefined -avoid-version"
- XMLSEC_CRYPTO_EXTRA_LDFLAGS="-no-undefined -avoid-version"
- XMLSEC_SHLIBSFX=".dll.a"
- xmlsec_sharedlib_hack="yes"
- ;;
- *-*-cygwin*)
- XMLSEC_EXTRA_LDFLAGS="-no-undefined"
- XMLSEC_CRYPTO_EXTRA_LDFLAGS="-no-undefined"
- ;;
- *-*-darwin*)
- XMLSEC_SHLIBSFX=".dylib"
- ;;
-esac
+ case $HELP2MAN in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_HELP2MAN="$HELP2MAN" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_HELP2MAN="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
-# To avoid problem with loading of a shared library (dlopen or equivalent)
-# at run time on some platforms we need to link crypto modules with extra
-# source. It's work without hack on 9x and under emulation.
-# On nt 5.x (w2k,xp) the error is 998("Invalid access to memory location").
- if test "z$xmlsec_sharedlib_hack" = "zyes"; then
- SHAREDLIB_HACK_TRUE=
- SHAREDLIB_HACK_FALSE='#'
+ ;;
+esac
+fi
+HELP2MAN=$ac_cv_path_HELP2MAN
+if test -n "$HELP2MAN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HELP2MAN" >&5
+$as_echo "$HELP2MAN" >&6; }
else
- SHAREDLIB_HACK_TRUE='#'
- SHAREDLIB_HACK_FALSE=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-if test "z$shrext" == "z" ; then
- shrext=$shrext_cmds
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __FUNCTION__ or __func__" >&5
-$as_echo_n "checking for __FUNCTION__ or __func__... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int
-main ()
-{
-char *foo = __FUNCTION__;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_function_exists=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
else
- ac_function_exists=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int
-main ()
-{
-char *foo = __func__;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_func_exists=yes
-else
- ac_func_exists=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-if test "z$ac_function_exists" = "zyes" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: __FUNCTION__" >&5
-$as_echo "__FUNCTION__" >&6; }
- XMLSEC_DEFINES="$XMLSEC_DEFINES -D__XMLSEC_FUNCTION__=__FUNCTION__"
-elif test "z$ac_func_exists" = "zyes" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: __func__" >&5
-$as_echo "__func__" >&6; }
- XMLSEC_DEFINES="$XMLSEC_DEFINES -D__XMLSEC_FUNCTION__=__func__"
+ if test x"$HELP2MAN" != x; then
+ HAS_HELP2MAN_TRUE=
+ HAS_HELP2MAN_FALSE='#'
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"no\"" >&5
-$as_echo "\"no\"" >&6; }
+ HAS_HELP2MAN_TRUE='#'
+ HAS_HELP2MAN_FALSE=
fi
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
-$as_echo_n "checking size of size_t... " >&6; }
-if ${ac_cv_sizeof_size_t+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then :
-
+ if test x"$HELP2MAN" != x; then
+ BUILD_MANPAGES_TRUE=
+ BUILD_MANPAGES_FALSE='#'
else
- if test "$ac_cv_type_size_t" = yes; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (size_t)
-See \`config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_size_t=0
- fi
-fi
-
+ BUILD_MANPAGES_TRUE='#'
+ BUILD_MANPAGES_FALSE=
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
-$as_echo "$ac_cv_sizeof_size_t" >&6; }
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t
-_ACEOF
-
-
-if test "$ac_cv_sizeof_size_t" -ne "4" ; then
- XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_SIZE_T"
-fi
-PKG_CONFIG="pkg-config"
-PKGCONFIG_FOUND="no"
-# Check whether --enable-pkgconfig was given.
-if test "${enable_pkgconfig+set}" = set; then :
- enableval=$enable_pkgconfig;
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for docs build" >&5
+$as_echo_n "checking for docs build... " >&6; }
+# Check whether --enable-docs_build was given.
+if test "${enable_docs_build+set}" = set; then :
+ enableval=$enable_docs_build;
fi
-if test "z$enable_pkgconfig" != "zno" ; then
- # Extract the first word of "$PKG_CONFIG", so it can be a program name with args.
-set dummy $PKG_CONFIG; ac_word=$2
+if test "z$enable_docs_build" = "zyes" ; then
+ # Extract the first word of "xsltproc", so it can be a program name with args.
+set dummy xsltproc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_PKGCONFIG_PRESENT+:} false; then :
+if ${ac_cv_path_XSLTPROC+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$PKGCONFIG_PRESENT"; then
- ac_cv_prog_PKGCONFIG_PRESENT="$PKGCONFIG_PRESENT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ case $XSLTPROC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_PKGCONFIG_PRESENT="yes"
+ ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -12813,65 +12847,399 @@ done
done
IFS=$as_save_IFS
- test -z "$ac_cv_prog_PKGCONFIG_PRESENT" && ac_cv_prog_PKGCONFIG_PRESENT="no"
-fi
+ ;;
+esac
fi
-PKGCONFIG_PRESENT=$ac_cv_prog_PKGCONFIG_PRESENT
-if test -n "$PKGCONFIG_PRESENT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG_PRESENT" >&5
-$as_echo "$PKGCONFIG_PRESENT" >&6; }
+XSLTPROC=$ac_cv_path_XSLTPROC
+if test -n "$XSLTPROC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5
+$as_echo "$XSLTPROC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- if test "z$PKGCONFIG_PRESENT" = "zyes" ; then
- if $PKG_CONFIG --atleast-pkgconfig-version 0.9 ; then
- PKGCONFIG_FOUND="yes"
- fi
- fi
+ # Extract the first word of "man2html", so it can be a program name with args.
+set dummy man2html; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MAN2HTML+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAN2HTML in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MAN2HTML="$MAN2HTML" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MAN2HTML="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+MAN2HTML=$ac_cv_path_MAN2HTML
+if test -n "$MAN2HTML"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAN2HTML" >&5
+$as_echo "$MAN2HTML" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-LIBXML_MIN_VERSION="2.7.4"
-LIBXML_CONFIG="xml2-config"
-LIBXML_CFLAGS=""
-LIBXML_LIBS=""
-LIBXML_FOUND="no"
-# Check whether --with-libxml was given.
-if test "${with_libxml+set}" = set; then :
- withval=$with_libxml;
+ # Extract the first word of "gtkdoc-mkhtml", so it can be a program name with args.
+set dummy gtkdoc-mkhtml; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GTKDOC_MKHTML+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GTKDOC_MKHTML in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GTKDOC_MKHTML="$GTKDOC_MKHTML" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GTKDOC_MKHTML="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GTKDOC_MKHTML=$ac_cv_path_GTKDOC_MKHTML
+if test -n "$GTKDOC_MKHTML"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKHTML" >&5
+$as_echo "$GTKDOC_MKHTML" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-# Check whether --with-libxml-src was given.
-if test "${with_libxml_src+set}" = set; then :
- withval=$with_libxml_src;
+ # Extract the first word of "gtkdoc-mktmpl", so it can be a program name with args.
+set dummy gtkdoc-mktmpl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GTKDOC_MKTMPL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GTKDOC_MKTMPL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GTKDOC_MKTMPL="$GTKDOC_MKTMPL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GTKDOC_MKTMPL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GTKDOC_MKTMPL=$ac_cv_path_GTKDOC_MKTMPL
+if test -n "$GTKDOC_MKTMPL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKTMPL" >&5
+$as_echo "$GTKDOC_MKTMPL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-if test "z$with_libxml" = "zno" -o "z$with_libxml_src" = "zno"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml2 libraries >= $LIBXML_MIN_VERSION" >&5
-$as_echo_n "checking for libxml2 libraries >= $LIBXML_MIN_VERSION... " >&6; }
- as_fn_error $? "libxml2 >= $LIBXML_MIN_VERSION is required for $XMLSEC_PACKAGE" "$LINENO" 5
-elif test "z$with_libxml_src" != "z" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml2 libraries >= $LIBXML_MIN_VERSION" >&5
-$as_echo_n "checking for libxml2 libraries >= $LIBXML_MIN_VERSION... " >&6; }
- CWD=`pwd`
- if cd "$with_libxml_src" ; then
- SRC_DIR=`pwd`
- LIBXML_CONFIG=${SRC_DIR}/xml2-config
- LIBXML_LIBS="-L${SRC_DIR}/.libs -lxml2"
- LIBXML_CFLAGS="-I${SRC_DIR}/include"
- LIBXML_FOUND="yes"
- cd $CWD
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (source)" >&5
-$as_echo "yes (source)" >&6; }
- else
- as_fn_error $? "libxml source dir not found (${with_libxml_src}), typo?" "$LINENO" 5
- fi
-elif test "z$with_libxml" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then
+ # Extract the first word of "gtkdoc-mkdb", so it can be a program name with args.
+set dummy gtkdoc-mkdb; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GTKDOC_MKDB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GTKDOC_MKDB in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GTKDOC_MKDB="$GTKDOC_MKDB" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GTKDOC_MKDB="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GTKDOC_MKDB=$ac_cv_path_GTKDOC_MKDB
+if test -n "$GTKDOC_MKDB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKDB" >&5
+$as_echo "$GTKDOC_MKDB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ # Extract the first word of "gtkdoc-scan", so it can be a program name with args.
+set dummy gtkdoc-scan; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GTKDOC_SCAN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GTKDOC_SCAN in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GTKDOC_SCAN="$GTKDOC_SCAN" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GTKDOC_SCAN="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GTKDOC_SCAN=$ac_cv_path_GTKDOC_SCAN
+if test -n "$GTKDOC_SCAN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_SCAN" >&5
+$as_echo "$GTKDOC_SCAN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test x"$MAN2HTML" != x; then
+ HAS_MAN2HTML_TRUE=
+ HAS_MAN2HTML_FALSE='#'
+else
+ HAS_MAN2HTML_TRUE='#'
+ HAS_MAN2HTML_FALSE=
+fi
+
+ if test x"$XSLTPROC" != x; then
+ HAS_XSLTPROC_TRUE=
+ HAS_XSLTPROC_FALSE='#'
+else
+ HAS_XSLTPROC_TRUE='#'
+ HAS_XSLTPROC_FALSE=
+fi
+
+
+ if test x"$PERL" != x && test x"$XSLTPROC" != x && test x"$MAN2HTML" != x; then
+ BUILD_MAN_DOCS_TRUE=
+ BUILD_MAN_DOCS_FALSE='#'
+else
+ BUILD_MAN_DOCS_TRUE='#'
+ BUILD_MAN_DOCS_FALSE=
+fi
+
+ if test x"$PERL" != x && test x"$XSLTPROC" != x && test x"$GTKDOC_MKHTML" != x && test x"$GTKDOC_MKTMPL" != x && test x"$GTKDOC_MKDB" != x && test x"$GTKDOC_SCAN" != x; then
+ BUILD_API_DOCS_TRUE=
+ BUILD_API_DOCS_FALSE='#'
+else
+ BUILD_API_DOCS_TRUE='#'
+ BUILD_API_DOCS_FALSE=
+fi
+
+
+XMLSEC_EXTRA_LDFLAGS=
+XMLSEC_CRYPTO_EXTRA_LDFLAGS=
+
+xmlsec_sharedlib_hack="no"
+if test -n "$shrext"; then
+ XMLSEC_SHLIBSFX="$shrext"
+else
+ XMLSEC_SHLIBSFX="$shrext_cmds"
+fi
+case "${host}" in
+ *aix* )
+ CFLAGS="${CFLAGS} -D_ALL_SOURCE"
+ ;;
+ *-*-mingw*)
+ XMLSEC_EXTRA_LDFLAGS="-no-undefined -avoid-version"
+ XMLSEC_CRYPTO_EXTRA_LDFLAGS="-no-undefined -avoid-version"
+ XMLSEC_SHLIBSFX=".dll.a"
+ xmlsec_sharedlib_hack="yes"
+ ;;
+ *-*-cygwin*)
+ XMLSEC_EXTRA_LDFLAGS="-no-undefined"
+ XMLSEC_CRYPTO_EXTRA_LDFLAGS="-no-undefined"
+ ;;
+ *-*-darwin*)
+ XMLSEC_SHLIBSFX=".dylib"
+ ;;
+esac
+
+# To avoid problem with loading of a shared library (dlopen or equivalent)
+# at run time on some platforms we need to link crypto modules with extra
+# source. It's work without hack on 9x and under emulation.
+# On nt 5.x (w2k,xp) the error is 998("Invalid access to memory location").
+ if test "z$xmlsec_sharedlib_hack" = "zyes"; then
+ SHAREDLIB_HACK_TRUE=
+ SHAREDLIB_HACK_FALSE='#'
+else
+ SHAREDLIB_HACK_TRUE='#'
+ SHAREDLIB_HACK_FALSE=
+fi
+
+
+if test "z$shrext" == "z" ; then
+ shrext=$shrext_cmds
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __FUNCTION__ or __func__" >&5
+$as_echo_n "checking for __FUNCTION__ or __func__... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+char *foo = __FUNCTION__;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_function_exists=yes
+else
+ ac_function_exists=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+char *foo = __func__;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_func_exists=yes
+else
+ ac_func_exists=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+if test "z$ac_func_exists" = "zyes" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: __func__" >&5
+$as_echo "__func__" >&6; }
+ XMLSEC_DEFINES="$XMLSEC_DEFINES -D__XMLSEC_FUNCTION__=__func__"
+elif test "z$ac_function_exists" = "zyes" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: __FUNCTION__" >&5
+$as_echo "__FUNCTION__" >&6; }
+ XMLSEC_DEFINES="$XMLSEC_DEFINES -D__XMLSEC_FUNCTION__=__FUNCTION__"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"no\"" >&5
+$as_echo "\"no\"" >&6; }
+fi
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
+$as_echo_n "checking size of size_t... " >&6; }
+if ${ac_cv_sizeof_size_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_size_t" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute sizeof (size_t)
+See \`config.log' for more details" "$LINENO" 5; }
+ else
+ ac_cv_sizeof_size_t=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
+$as_echo "$ac_cv_sizeof_size_t" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t
+_ACEOF
+
+
+if test "$ac_cv_sizeof_size_t" -ne "4" ; then
+ XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_SIZE_T"
+fi
+
+PKGCONFIG_FOUND="no"
+# Check whether --enable-pkgconfig was given.
+if test "${enable_pkgconfig+set}" = set; then :
+ enableval=$enable_pkgconfig;
+fi
+
+if test "z$enable_pkgconfig" != "zno" ; then
@@ -12992,6 +13360,50 @@ $as_echo "no" >&6; }
PKG_CONFIG=""
fi
fi
+ PKGCONFIG_FOUND="yes"
+else
+ PKGCONFIG_FOUND="no"
+fi
+
+LIBXML_MIN_VERSION="2.7.4"
+LIBXML_CONFIG="xml2-config"
+LIBXML_CFLAGS=""
+LIBXML_LIBS=""
+LIBXML_FOUND="no"
+
+# Check whether --with-libxml was given.
+if test "${with_libxml+set}" = set; then :
+ withval=$with_libxml;
+fi
+
+
+# Check whether --with-libxml-src was given.
+if test "${with_libxml_src+set}" = set; then :
+ withval=$with_libxml_src;
+fi
+
+
+if test "z$with_libxml" = "zno" -o "z$with_libxml_src" = "zno"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml2 libraries >= $LIBXML_MIN_VERSION" >&5
+$as_echo_n "checking for libxml2 libraries >= $LIBXML_MIN_VERSION... " >&6; }
+ as_fn_error $? "libxml2 >= $LIBXML_MIN_VERSION is required for $XMLSEC_PACKAGE" "$LINENO" 5
+elif test "z$with_libxml_src" != "z" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml2 libraries >= $LIBXML_MIN_VERSION" >&5
+$as_echo_n "checking for libxml2 libraries >= $LIBXML_MIN_VERSION... " >&6; }
+ CWD=`pwd`
+ if cd "$with_libxml_src" ; then
+ SRC_DIR=`pwd`
+ LIBXML_CONFIG=${SRC_DIR}/xml2-config
+ LIBXML_LIBS="-L${SRC_DIR}/.libs -lxml2"
+ LIBXML_CFLAGS="-I${SRC_DIR}/include"
+ LIBXML_FOUND="yes"
+ cd $CWD
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (source)" >&5
+$as_echo "yes (source)" >&6; }
+ else
+ as_fn_error $? "libxml source dir not found (${with_libxml_src}), typo?" "$LINENO" 5
+ fi
+elif test "z$with_libxml" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML" >&5
@@ -13176,6 +13588,7 @@ fi
XMLSEC_NO_LIBXSLT="1"
LIBXSLT_MIN_VERSION=1.0.20
+LIBXSLT_PC_FILE_COND="libxslt >= $LIBXSLT_MIN_VERSION"
LIBXSLT_CONFIG="xslt-config"
LIBXSLT_CFLAGS=""
LIBXSLT_LIBS=""
@@ -13402,6 +13815,8 @@ fi
if test "z$LIBXSLT_FOUND" = "zyes" ; then
XMLSEC_NO_LIBXSLT="0"
else
+ LIBXSLT_PC_FILE_COND=""
+ LIBXSLT_MIN_VERSION=""
XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_XSLT=1"
fi
@@ -13411,6 +13826,7 @@ fi
+
XMLSEC_CRYPTO_LIST=""
XMLSEC_CRYPTO_DISABLED_LIST=""
@@ -13418,7 +13834,7 @@ ac_openssl_lib_dir="/usr/local/lib /usr/lib /usr/lib64 /usr/local /usr/local/ssl
ac_openssl_inc_dir="/usr/local/include /usr/include /usr/local /usr/local/ssl /usr/pkg /usr/local/ssl/include"
XMLSEC_NO_OPENSSL="1"
-OPENSSL_MIN_VERSION="0.9.6"
+OPENSSL_MIN_VERSION="0.9.8"
OPENSSL_VERSION=""
OPENSSL_CFLAGS=""
OPENSSL_LIBS=""
@@ -13463,12 +13879,12 @@ if test -n "$OPENSSL_CFLAGS"; then
pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.0.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "openssl >= 1.0.0") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "openssl >= 1.1.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_OPENSSL_CFLAGS=`$PKG_CONFIG --cflags "openssl >= 1.0.0" 2>/dev/null`
+ pkg_cv_OPENSSL_CFLAGS=`$PKG_CONFIG --cflags "openssl >= 1.1.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -13480,12 +13896,12 @@ if test -n "$OPENSSL_LIBS"; then
pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.0.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "openssl >= 1.0.0") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "openssl >= 1.1.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_OPENSSL_LIBS=`$PKG_CONFIG --libs "openssl >= 1.0.0" 2>/dev/null`
+ pkg_cv_OPENSSL_LIBS=`$PKG_CONFIG --libs "openssl >= 1.1.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -13506,9 +13922,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "openssl >= 1.0.0" 2>&1`
+ OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "openssl >= 1.1.0" 2>&1`
else
- OPENSSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "openssl >= 1.0.0" 2>&1`
+ OPENSSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "openssl >= 1.1.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$OPENSSL_PKG_ERRORS" >&5
@@ -13523,7 +13939,7 @@ else
OPENSSL_LIBS=$pkg_cv_OPENSSL_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- OPENSSL_VERSION="1.0.0"
+ OPENSSL_VERSION="1.1.0"
fi
fi
@@ -13537,12 +13953,12 @@ if test -n "$OPENSSL_CFLAGS"; then
pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 0.9.8\""; } >&5
- ($PKG_CONFIG --exists --print-errors "openssl >= 0.9.8") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "openssl >= 1.0.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_OPENSSL_CFLAGS=`$PKG_CONFIG --cflags "openssl >= 0.9.8" 2>/dev/null`
+ pkg_cv_OPENSSL_CFLAGS=`$PKG_CONFIG --cflags "openssl >= 1.0.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -13554,12 +13970,12 @@ if test -n "$OPENSSL_LIBS"; then
pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 0.9.8\""; } >&5
- ($PKG_CONFIG --exists --print-errors "openssl >= 0.9.8") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "openssl >= 1.0.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_OPENSSL_LIBS=`$PKG_CONFIG --libs "openssl >= 0.9.8" 2>/dev/null`
+ pkg_cv_OPENSSL_LIBS=`$PKG_CONFIG --libs "openssl >= 1.0.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -13580,9 +13996,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "openssl >= 0.9.8" 2>&1`
+ OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "openssl >= 1.0.0" 2>&1`
else
- OPENSSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "openssl >= 0.9.8" 2>&1`
+ OPENSSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "openssl >= 1.0.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$OPENSSL_PKG_ERRORS" >&5
@@ -13597,7 +14013,7 @@ else
OPENSSL_LIBS=$pkg_cv_OPENSSL_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- OPENSSL_VERSION="0.9.8"
+ OPENSSL_VERSION="1.0.0"
fi
fi
@@ -13611,12 +14027,12 @@ if test -n "$OPENSSL_CFLAGS"; then
pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 0.9.7\""; } >&5
- ($PKG_CONFIG --exists --print-errors "openssl >= 0.9.7") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 0.9.8\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "openssl >= 0.9.8") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_OPENSSL_CFLAGS=`$PKG_CONFIG --cflags "openssl >= 0.9.7" 2>/dev/null`
+ pkg_cv_OPENSSL_CFLAGS=`$PKG_CONFIG --cflags "openssl >= 0.9.8" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -13628,12 +14044,12 @@ if test -n "$OPENSSL_LIBS"; then
pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 0.9.7\""; } >&5
- ($PKG_CONFIG --exists --print-errors "openssl >= 0.9.7") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 0.9.8\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "openssl >= 0.9.8") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_OPENSSL_LIBS=`$PKG_CONFIG --libs "openssl >= 0.9.7" 2>/dev/null`
+ pkg_cv_OPENSSL_LIBS=`$PKG_CONFIG --libs "openssl >= 0.9.8" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -13654,9 +14070,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "openssl >= 0.9.7" 2>&1`
+ OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "openssl >= 0.9.8" 2>&1`
else
- OPENSSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "openssl >= 0.9.7" 2>&1`
+ OPENSSL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "openssl >= 0.9.8" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$OPENSSL_PKG_ERRORS" >&5
@@ -13671,7 +14087,7 @@ else
OPENSSL_LIBS=$pkg_cv_OPENSSL_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- OPENSSL_VERSION="0.9.7"
+ OPENSSL_VERSION="0.9.8"
fi
fi
@@ -13750,7 +14166,7 @@ fi
fi
if test "z$OPENSSL_VERSION" != "z" ; then
- OPENSSL_FOUND="yes"
+ OPENSSL_FOUND="yes"
fi
fi
@@ -13799,20 +14215,20 @@ $as_echo_n "checking for openssl libraries >= $OPENSSL_MIN_VERSION... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
- #include <openssl/opensslv.h>
- #if OPENSSL_VERSION_NUMBER >= 0x10000000L
- yes
- #endif
+ #include <openssl/opensslv.h>
+ #if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+ yes
+ #endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "yes" >/dev/null 2>&1; then :
- OPENSSL_VERSION="1.0.0"
+ OPENSSL_VERSION="1.1.0"
else
- OPENSSL_VERSION=""
+ OPENSSL_VERSION=""
fi
rm -f conftest*
@@ -13824,7 +14240,7 @@ rm -f conftest*
/* end confdefs.h. */
#include <openssl/opensslv.h>
- #if OPENSSL_VERSION_NUMBER >= 0x00908000L
+ #if OPENSSL_VERSION_NUMBER >= 0x10000000L
yes
#endif
@@ -13832,7 +14248,7 @@ _ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "yes" >/dev/null 2>&1; then :
- OPENSSL_VERSION="0.9.8"
+ OPENSSL_VERSION="1.0.0"
else
@@ -13848,7 +14264,7 @@ rm -f conftest*
/* end confdefs.h. */
#include <openssl/opensslv.h>
- #if OPENSSL_VERSION_NUMBER >= 0x00907000L
+ #if OPENSSL_VERSION_NUMBER >= 0x00908000L
yes
#endif
@@ -13856,7 +14272,7 @@ _ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "yes" >/dev/null 2>&1; then :
- OPENSSL_VERSION="0.9.7"
+ OPENSSL_VERSION="0.9.8"
else
@@ -13868,29 +14284,6 @@ rm -f conftest*
fi
if test "z$OPENSSL_VERSION" = "z" ; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
- #include <openssl/opensslv.h>
- #if OPENSSL_VERSION_NUMBER >= 0x00906000L
- yes
- #endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "yes" >/dev/null 2>&1; then :
-
- OPENSSL_VERSION="0.9.6"
-
-else
-
- OPENSSL_VERSION=""
-
-fi
-rm -f conftest*
-
- fi
- if test "z$OPENSSL_VERSION" = "z" ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
else
@@ -13927,18 +14320,15 @@ fi
if test "z$OPENSSL_FOUND" = "zyes" ; then
XMLSEC_NO_OPENSSL="0"
- if test "z$OPENSSL_VERSION" = "z0.9.6" ; then
- OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_OPENSSL_096=1 -DXMLSEC_NO_ECDSA=1"
- fi
- if test "z$OPENSSL_VERSION" = "z0.9.7" ; then
- OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_OPENSSL_097=1 -DXMLSEC_NO_ECDSA=1"
- fi
if test "z$OPENSSL_VERSION" = "z0.9.8" ; then
- OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_OPENSSL_098=1 -DXMLSEC_NO_ECDSA=1"
+ OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_OPENSSL_098=1 -DXMLSEC_NO_ECDSA=1 -DXMLSEC_NO_SHA256=1"
fi
if test "z$OPENSSL_VERSION" = "z1.0.0" ; then
OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_OPENSSL_100=1"
fi
+ if test "z$OPENSSL_VERSION" = "z1.1.0" ; then
+ OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_OPENSSL_110=1"
+ fi
OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_CRYPTO_OPENSSL=1"
XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST openssl"
else
@@ -14444,7 +14834,7 @@ $as_echo_n "checking for nss libraries >= $NSS_MIN_VERSION... " >&6; }
if test "z$NSS_INCLUDES_FOUND" = "zyes" -a "z$NSS_LIBS_FOUND" = "zyes" ; then
OLD_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$NSS_CFLAGS"
+ CPPFLAGS="$NSPR_CFLAGS $NSS_CFLAGS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -14529,10 +14919,6 @@ if test "${with_gcrypt+set}" = set; then :
fi
if test "z$with_gcrypt" = "zno" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcrypt libraries >= $GCRYPT_MIN_VERSION" >&5
-$as_echo_n "checking for gcrypt libraries >= $GCRYPT_MIN_VERSION... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
GCRYPT_FOUND="without"
elif test "z$with_gcrypt" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then
@@ -14757,8 +15143,6 @@ fi
fi
if test "z$GCRYPT_FOUND" = "zno" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcrypt libraries >= $GCRYPT_MIN_VERSION" >&5
-$as_echo_n "checking for gcrypt libraries >= $GCRYPT_MIN_VERSION... " >&6; }
if test "z$with_gcrypt" != "z" ; then
GCRYPT_CONFIG=$with_gcrypt/bin/$GCRYPT_CONFIG
fi
@@ -14782,12 +15166,18 @@ $as_echo "no" >&6; }
fi
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcrypt libraries >= $GCRYPT_MIN_VERSION" >&5
+$as_echo_n "checking for gcrypt libraries >= $GCRYPT_MIN_VERSION... " >&6; }
if test "z$GCRYPT_FOUND" = "zyes" ; then
XMLSEC_NO_GCRYPT="0"
GCRYPT_CFLAGS="$GCRYPT_CFLAGS -DXMLSEC_CRYPTO_GCRYPT=1"
XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST gcrypt"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
else
XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST gcrypt"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
if test "z$XMLSEC_NO_GCRYPT" = "z1"; then
@@ -14805,7 +15195,6 @@ fi
-GNUTLS_CONFIG="libgnutls-config"
XMLSEC_NO_GNUTLS="1"
GNUTLS_MIN_VERSION="2.8.0"
GNUTLS_VERSION=""
@@ -14820,10 +15209,6 @@ if test "${with_gnutls+set}" = set; then :
fi
if test "z$with_gnutls" = "zno" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls libraries >= $GNUTLS_MIN_VERSION" >&5
-$as_echo_n "checking for gnutls libraries >= $GNUTLS_MIN_VERSION... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
GNUTLS_FOUND="without"
elif test "z$with_gnutls" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then
@@ -14973,31 +15358,77 @@ fi
fi
if test "z$GNUTLS_FOUND" = "zno" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls libraries >= $GNUTLS_MIN_VERSION" >&5
-$as_echo_n "checking for gnutls libraries >= $GNUTLS_MIN_VERSION... " >&6; }
- if test "z$with_gnutls" != "z" ; then
- GNUTLS_CONFIG=$with_gnutls/bin/$GNUTLS_CONFIG
+ SAVE_CFLAGS="$CFLAGS"
+ SAVE_LDFLAGS="$LDFLAGS"
+ if test "z$with_gnutls" != "z" -a "z$with_gnutls" != "zno" ; then
+ GNUTLS_CFLAGS="-I$with_gnutls/include"
+ GNUTLS_LIBS="-L$with_gnutls/lib -lgnutls"
+ CFLAGS="$GNUTLS_CFLAGS $CFLAGS"
+ LDFLAGS="$GNUTLS_LIBS $LDFLAGS"
fi
- if ! $GNUTLS_CONFIG --version > /dev/null 2>&1 ; then
- if test "z$with_gnutls" != "z" ; then
- as_fn_error $? "Unable to find gnutls at '$with_gnutls'" "$LINENO" 5
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- fi
- else
- vers=`$GNUTLS_CONFIG --version | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
- minvers=`echo $GNUTLS_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
- if test "$vers" -ge "$minvers" ; then
- GNUTLS_CFLAGS="$GNUTLS_CFLAGS `$GNUTLS_CONFIG --cflags`"
- GNUTLS_LIBS="$GNUTLS_LIBS `$GNUTLS_CONFIG --libs`"
- GNUTLS_FOUND=yes
- else
- as_fn_error $? "You need at least gnutls $GNUTLS_MIN_VERSION for this version of $XMLSEC_PACKAGE" "$LINENO" 5
- fi
+ for ac_header in gnutls/gnutls.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "gnutls/gnutls.h" "ac_cv_header_gnutls_gnutls_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_gnutls_gnutls_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_GNUTLS_GNUTLS_H 1
+_ACEOF
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_check_version in -lgnutls" >&5
+$as_echo_n "checking for gnutls_check_version in -lgnutls... " >&6; }
+if ${ac_cv_lib_gnutls_gnutls_check_version+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lgnutls $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gnutls_check_version ();
+int
+main ()
+{
+return gnutls_check_version ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_gnutls_gnutls_check_version=yes
+else
+ ac_cv_lib_gnutls_gnutls_check_version=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_check_version" >&5
+$as_echo "$ac_cv_lib_gnutls_gnutls_check_version" >&6; }
+if test "x$ac_cv_lib_gnutls_gnutls_check_version" = xyes; then :
+ GNUTLS_FOUND=yes
+fi
+
+
+fi
+
+done
+
+ if test "z$with_gnutls" != "z" -a "z$with_gnutls" != "zno" -a "z$GNUTLS_FOUND" != "zyes" ; then
+ as_fn_error $? "can't find usable libgnutls at specified location \"$with_gnutls\"" "$LINENO" 5
fi
+ CFLAGS="$SAVE_CFLAGS"
+ LDFLAGS="$SAVE_LDFLAGS"
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls libraries >= $GNUTLS_MIN_VERSION" >&5
+$as_echo_n "checking for gnutls libraries >= $GNUTLS_MIN_VERSION... " >&6; }
if test "z$GNUTLS_FOUND" = "zyes" ; then
XMLSEC_NO_GNUTLS="0"
GNUTLS_CFLAGS="$GNUTLS_CFLAGS -DXMLSEC_CRYPTO_GNUTLS=1"
@@ -15006,9 +15437,12 @@ if test "z$GNUTLS_FOUND" = "zyes" ; then
if test "z$GCRYPT_FOUND" != "zyes" ; then
as_fn_error $? "xmlsec-gnutls library requires xmlsec-gcrypt library which is disabled or missing" "$LINENO" 5
fi
-
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
else
XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST gnutls"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
if test "z$XMLSEC_NO_GNUTLS" = "z1"; then
@@ -15103,7 +15537,7 @@ fi
-XMLSEC_CRYPTO=""
+XMLSEC_DEFAULT_CRYPTO=""
XMLSEC_CRYPTO_LIB=""
XMLSEC_CRYPTO_CFLAGS=""
XMLSEC_CRYPTO_LIBS=""
@@ -15120,50 +15554,50 @@ fi
case "z$with_default_crypto" in
'zmscrypto')
if test "z$XMLSEC_NO_MSCRYPTO" != "z1" ; then
- XMLSEC_CRYPTO="mscrypto"
+ XMLSEC_DEFAULT_CRYPTO="mscrypto"
else
as_fn_error $? "'$with_default_crypto' is specified as default crypto library but it is not configured or found" "$LINENO" 5
fi
;;
'zopenssl')
if test "z$XMLSEC_NO_OPENSSL" != "z1" ; then
- XMLSEC_CRYPTO="openssl"
+ XMLSEC_DEFAULT_CRYPTO="openssl"
else
as_fn_error $? "'$with_default_crypto' is specified as default crypto library but it is not configured or found" "$LINENO" 5
fi
;;
'znss')
if test "z$XMLSEC_NO_NSS" != "z1" ; then
- XMLSEC_CRYPTO="nss"
+ XMLSEC_DEFAULT_CRYPTO="nss"
else
as_fn_error $? "'$with_default_crypto' is specified as default crypto library but it is not configured or found" "$LINENO" 5
fi
;;
'zgnutls')
if test "z$XMLSEC_NO_GNUTLS" != "z1" ; then
- XMLSEC_CRYPTO="gnutls"
+ XMLSEC_DEFAULT_CRYPTO="gnutls"
else
as_fn_error $? "'$with_default_crypto' is specified as default crypto library but it is not configured or found" "$LINENO" 5
fi
;;
'zgcrypt')
if test "z$XMLSEC_NO_GCRYPT" != "z1" ; then
- XMLSEC_CRYPTO="gcrypt"
+ XMLSEC_DEFAULT_CRYPTO="gcrypt"
else
as_fn_error $? "'$with_default_crypto' is specified as default crypto library but it is not configured or found" "$LINENO" 5
fi
;;
'z')
if test "z$XMLSEC_NO_MSCRYPTO" != "z1" ; then
- XMLSEC_CRYPTO="mscrypto"
+ XMLSEC_DEFAULT_CRYPTO="mscrypto"
elif test "z$XMLSEC_NO_OPENSSL" != "z1" ; then
- XMLSEC_CRYPTO="openssl"
+ XMLSEC_DEFAULT_CRYPTO="openssl"
elif test "z$XMLSEC_NO_NSS" != "z1" ; then
- XMLSEC_CRYPTO="nss"
+ XMLSEC_DEFAULT_CRYPTO="nss"
elif test "z$XMLSEC_NO_GNUTLS" != "z1" ; then
- XMLSEC_CRYPTO="gnutls"
+ XMLSEC_DEFAULT_CRYPTO="gnutls"
elif test "z$XMLSEC_NO_GCRYPT" != "z1" ; then
- XMLSEC_CRYPTO="gcrypt"
+ XMLSEC_DEFAULT_CRYPTO="gcrypt"
else
as_fn_error $? "At least one crypto library should exist for $XMLSEC_PACKAGE" "$LINENO" 5
fi
@@ -15173,7 +15607,7 @@ case "z$with_default_crypto" in
;;
esac
-case "$XMLSEC_CRYPTO" in
+case "$XMLSEC_DEFAULT_CRYPTO" in
'mscrypto')
XMLSEC_CRYPTO_LIB="$MSCRYPTO_CRYPTO_LIB"
XMLSEC_CRYPTO_CFLAGS="$MSCRYPTO_CFLAGS"
@@ -15200,11 +15634,11 @@ case "$XMLSEC_CRYPTO" in
XMLSEC_CRYPTO_LIBS="$GCRYPT_LIBS"
;;
*)
- as_fn_error $? "The value \"$XMLSEC_CRYPTO\" is not a recongnized crypto library name" "$LINENO" 5
+ as_fn_error $? "The value \"$XMLSEC_DEFAULT_CRYPTO\" is not a recongnized crypto library name" "$LINENO" 5
;;
esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ('$XMLSEC_CRYPTO')" >&5
-$as_echo "yes ('$XMLSEC_CRYPTO')" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ('$XMLSEC_DEFAULT_CRYPTO')" >&5
+$as_echo "yes ('$XMLSEC_DEFAULT_CRYPTO')" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MD5 support" >&5
$as_echo_n "checking for MD5 support... " >&6; }
@@ -15585,6 +16019,35 @@ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EXPERMIENTAL GOST2012 support" >&5
+$as_echo_n "checking for EXPERMIENTAL GOST2012 support... " >&6; }
+# Check whether --enable-gost was given.
+if test "${enable_gost+set}" = set; then :
+ enableval=$enable_gost;
+fi
+
+if test "z$enable_gost2012" != "zyes" ; then
+ XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_GOST2012=1"
+ XMLSEC_NO_GOST2012="1"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+else
+ XMLSEC_NO_GOST2012="0"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+ if test "z$XMLSEC_NO_GOST2012" = "z1"; then
+ XMLSEC_NO_GOST2012_TRUE=
+ XMLSEC_NO_GOST2012_FALSE='#'
+else
+ XMLSEC_NO_GOST2012_TRUE='#'
+ XMLSEC_NO_GOST2012_FALSE=
+fi
+
+
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XMLDSig support" >&5
$as_echo_n "checking for XMLDSig support... " >&6; }
# Check whether --enable-xmldsig was given.
@@ -15639,33 +16102,6 @@ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XMKMS support - under development" >&5
-$as_echo_n "checking for XMKMS support - under development... " >&6; }
-# Check whether --enable-xkms was given.
-if test "${enable_xkms+set}" = set; then :
- enableval=$enable_xkms;
-fi
-
-if test "z$enable_xkms" = "zyes" ; then
- XMLSEC_NO_XKMS="0"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_XKMS=1"
- XMLSEC_NO_XKMS="1"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
- if test "z$XMLSEC_NO_XKMS" = "z1"; then
- XMLSEC_NO_XKMS_TRUE=
- XMLSEC_NO_XKMS_FALSE='#'
-else
- XMLSEC_NO_XKMS_TRUE='#'
- XMLSEC_NO_XKMS_FALSE=
-fi
-
-
-
XMLSEC_DL_INCLUDES=""
XMLSEC_DL_LIBS=""
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xmlsec-crypto dynamic loading support" >&5
@@ -15881,7 +16317,7 @@ if test "${enable_pedantic+set}" = set; then :
fi
if test "z$enable_pedantic" = "zyes" ; then
- CFLAGS="$CFLAGS -O -pedantic -Wall -ansi -fno-inline -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
+ CFLAGS="$CFLAGS -O -pedantic -Wall -std=c99 -fno-inline -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wredundant-decls"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
@@ -15990,13 +16426,17 @@ ac_config_files="$ac_config_files include/xmlsec/mscrypto/Makefile src/mscrypto/
fi
if test "z$XMLSEC_NO_CRYPTO_DYNAMIC_LOADING" = "z1" ; then
-(rm -f xmlsec1.pc && $LN_S xmlsec1-$XMLSEC_CRYPTO.pc xmlsec1.pc)
+(rm -f xmlsec1.pc && $LN_S xmlsec1-$XMLSEC_DEFAULT_CRYPTO.pc xmlsec1.pc)
else
ac_config_files="$ac_config_files xmlsec1.pc:xmlsec.pc.in"
fi
-ac_config_files="$ac_config_files include/xmlsec/version.h Makefile include/Makefile include/xmlsec/Makefile include/xmlsec/private/Makefile src/Makefile apps/Makefile docs/Makefile docs/api/Makefile man/Makefile xmlsec1Conf.sh:xmlsecConf.sh.in xmlsec1-config:xmlsec-config.in xmlsec1-openssl.pc:xmlsec-openssl.pc.in xmlsec1-gnutls.pc:xmlsec-gnutls.pc.in xmlsec1-gcrypt.pc:xmlsec-gcrypt.pc.in xmlsec1-nss.pc:xmlsec-nss.pc.in xmlsec1.spec:xmlsec.spec.in"
+ac_config_files="$ac_config_files include/xmlsec/version.h Makefile include/Makefile include/xmlsec/Makefile include/xmlsec/private/Makefile src/Makefile apps/Makefile docs/Makefile docs/api/Makefile man/Makefile xmlsec1-openssl.pc:xmlsec-openssl.pc.in xmlsec1-gnutls.pc:xmlsec-gnutls.pc.in xmlsec1-gcrypt.pc:xmlsec-gcrypt.pc.in xmlsec1-nss.pc:xmlsec-nss.pc.in xmlsec1.spec:xmlsec.spec.in"
+
+ac_config_files="$ac_config_files xmlsec1Conf.sh:xmlsecConf.sh.in"
+
+ac_config_files="$ac_config_files xmlsec1-config:xmlsec-config.in"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -16135,6 +16575,30 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${HAS_HELP2MAN_TRUE}" && test -z "${HAS_HELP2MAN_FALSE}"; then
+ as_fn_error $? "conditional \"HAS_HELP2MAN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_MANPAGES_TRUE}" && test -z "${BUILD_MANPAGES_FALSE}"; then
+ as_fn_error $? "conditional \"BUILD_MANPAGES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAS_MAN2HTML_TRUE}" && test -z "${HAS_MAN2HTML_FALSE}"; then
+ as_fn_error $? "conditional \"HAS_MAN2HTML\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAS_XSLTPROC_TRUE}" && test -z "${HAS_XSLTPROC_FALSE}"; then
+ as_fn_error $? "conditional \"HAS_XSLTPROC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_MAN_DOCS_TRUE}" && test -z "${BUILD_MAN_DOCS_FALSE}"; then
+ as_fn_error $? "conditional \"BUILD_MAN_DOCS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_API_DOCS_TRUE}" && test -z "${BUILD_API_DOCS_FALSE}"; then
+ as_fn_error $? "conditional \"BUILD_API_DOCS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${SHAREDLIB_HACK_TRUE}" && test -z "${SHAREDLIB_HACK_FALSE}"; then
as_fn_error $? "conditional \"SHAREDLIB_HACK\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -16215,6 +16679,10 @@ if test -z "${XMLSEC_NO_GOST_TRUE}" && test -z "${XMLSEC_NO_GOST_FALSE}"; then
as_fn_error $? "conditional \"XMLSEC_NO_GOST\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${XMLSEC_NO_GOST2012_TRUE}" && test -z "${XMLSEC_NO_GOST2012_FALSE}"; then
+ as_fn_error $? "conditional \"XMLSEC_NO_GOST2012\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${XMLSEC_NO_XMLDSIG_TRUE}" && test -z "${XMLSEC_NO_XMLDSIG_FALSE}"; then
as_fn_error $? "conditional \"XMLSEC_NO_XMLDSIG\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -16223,10 +16691,6 @@ if test -z "${XMLSEC_NO_XMLENC_TRUE}" && test -z "${XMLSEC_NO_XMLENC_FALSE}"; th
as_fn_error $? "conditional \"XMLSEC_NO_XMLENC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${XMLSEC_NO_XKMS_TRUE}" && test -z "${XMLSEC_NO_XKMS_FALSE}"; then
- as_fn_error $? "conditional \"XMLSEC_NO_XKMS\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_TRUE}" && test -z "${XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_FALSE}"; then
as_fn_error $? "conditional \"XMLSEC_NO_CRYPTO_DYNAMIC_LOADING\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -16632,7 +17096,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by xmlsec1 $as_me 1.2.20, which was
+This file was extended by xmlsec1 $as_me 1.2.23, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16698,7 +17162,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-xmlsec1 config.status 1.2.20
+xmlsec1 config.status 1.2.23
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -17128,13 +17592,13 @@ do
"docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;;
"docs/api/Makefile") CONFIG_FILES="$CONFIG_FILES docs/api/Makefile" ;;
"man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
- "xmlsec1Conf.sh") CONFIG_FILES="$CONFIG_FILES xmlsec1Conf.sh:xmlsecConf.sh.in" ;;
- "xmlsec1-config") CONFIG_FILES="$CONFIG_FILES xmlsec1-config:xmlsec-config.in" ;;
"xmlsec1-openssl.pc") CONFIG_FILES="$CONFIG_FILES xmlsec1-openssl.pc:xmlsec-openssl.pc.in" ;;
"xmlsec1-gnutls.pc") CONFIG_FILES="$CONFIG_FILES xmlsec1-gnutls.pc:xmlsec-gnutls.pc.in" ;;
"xmlsec1-gcrypt.pc") CONFIG_FILES="$CONFIG_FILES xmlsec1-gcrypt.pc:xmlsec-gcrypt.pc.in" ;;
"xmlsec1-nss.pc") CONFIG_FILES="$CONFIG_FILES xmlsec1-nss.pc:xmlsec-nss.pc.in" ;;
"xmlsec1.spec") CONFIG_FILES="$CONFIG_FILES xmlsec1.spec:xmlsec.spec.in" ;;
+ "xmlsec1Conf.sh") CONFIG_FILES="$CONFIG_FILES xmlsec1Conf.sh:xmlsecConf.sh.in" ;;
+ "xmlsec1-config") CONFIG_FILES="$CONFIG_FILES xmlsec1-config:xmlsec-config.in" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
@@ -18453,6 +18917,8 @@ fi
chmod +x "$ofile"
;;
+ "xmlsec1Conf.sh":F) chmod +x xmlsec1Conf.sh ;;
+ "xmlsec1-config":F) chmod +x xmlsec1-config ;;
esac
done # for ac_tag
@@ -18492,5 +18958,3 @@ $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
-
-(cd $srcdir && rm -f COPYING.LIB COPYING && $LN_S Copyright COPYING)
diff --git a/configure.in b/configure.ac
similarity index 89%
rename from configure.in
rename to configure.ac
index 7690e7a..b8770ad 100644
--- a/configure.in
+++ b/configure.ac
@@ -1,10 +1,10 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT([xmlsec1],[1.2.20],[http://www.aleksey.com/xmlsec])
+AC_INIT([xmlsec1],[1.2.23],[http://www.aleksey.com/xmlsec])
XMLSEC_PACKAGE=xmlsec1
XMLSEC_VERSION_MAJOR=1
XMLSEC_VERSION_MINOR=2
-XMLSEC_VERSION_SUBMINOR=20
+XMLSEC_VERSION_SUBMINOR=23
XMLSEC_VERSION="$XMLSEC_VERSION_MAJOR.$XMLSEC_VERSION_MINOR.$XMLSEC_VERSION_SUBMINOR"
XMLSEC_VERSION_INFO=`echo $XMLSEC_VERSION | awk -F. '{ printf "%d:%d:%d", $1+$2, $3, $2 }'`
XMLSEC_VERSION_SAFE=`echo $XMLSEC_VERSION | sed 's/\./_/g'`
@@ -21,7 +21,7 @@ AC_SUBST(XMLSEC_VERSION_SUBMINOR)
AC_SUBST(XMLSEC_VERSION_INFO)
AC_CONFIG_MACRO_DIR(m4)
-AM_INIT_AUTOMAKE([1.7 tar-ustar])
+AM_INIT_AUTOMAKE([1.7 tar-ustar subdir-objects -Wno-portability])
AC_CONFIG_HEADERS([config.h])
AM_MAINTAINER_MODE
@@ -49,8 +49,8 @@ fi
AC_PATH_PROG(CP, cp, /bin/cp)
AC_PATH_PROG(MV, mv, /bin/mv)
AC_PATH_PROG(TAR, tar, /bin/tar)
-AC_PATH_PROG(HELP2MAN, help2man)
-AC_PATH_PROG(MAN2HTML, man2html)
+AC_PATH_PROG(PERL, perl)
+
dnl Checks for header files.
AC_HEADER_DIRENT
@@ -69,7 +69,8 @@ XMLSEC_DEFINES=""
dnl ==========================================================================
dnl Specific setup for Aleksey's development environment:
dnl - with debug
-dnl - with pedantic compiler flags
+dnl - with pedantic compiler flags
+dnl - with docs build
dnl - with static binaries
dnl - without dynamic xmlsec-crypto loading
dnl ==========================================================================
@@ -79,12 +80,53 @@ if test "z$enable_development" = "zyes" ; then
enable_debugging="yes"
enable_pedantic="yes"
enable_static_linking="yes"
+ enable_manpages_build="yes"
+ enable_docs_build="yes"
enable_crypto_dl="no"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
-fi
+fi
+
+dnl ==========================================================================
+dnl Do we want to build manpages?
+dnl ==========================================================================
+AC_MSG_CHECKING(for man pages build)
+AC_ARG_ENABLE(manpages_build,[ --enable-manpages-build man pages build (no)])
+if test "z$enable_manpages_build" = "zyes" ; then
+ AC_PATH_PROG(HELP2MAN, help2man)
+
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+AM_CONDITIONAL(HAS_HELP2MAN, [test x"$HELP2MAN" != x])
+AM_CONDITIONAL(BUILD_MANPAGES, [test x"$HELP2MAN" != x])
+dnl ==========================================================================
+dnl Do we want to build docs?
+dnl ==========================================================================
+AC_MSG_CHECKING(for docs build)
+AC_ARG_ENABLE(docs_build, [ --enable-docs-build docs build (no)])
+if test "z$enable_docs_build" = "zyes" ; then
+ AC_PATH_PROG(XSLTPROC, xsltproc)
+ AC_PATH_PROG(MAN2HTML, man2html)
+ AC_PATH_PROG(GTKDOC_MKHTML, gtkdoc-mkhtml)
+ AC_PATH_PROG(GTKDOC_MKTMPL, gtkdoc-mktmpl)
+ AC_PATH_PROG(GTKDOC_MKDB, gtkdoc-mkdb)
+ AC_PATH_PROG(GTKDOC_SCAN, gtkdoc-scan)
+
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+
+AM_CONDITIONAL(HAS_MAN2HTML, [test x"$MAN2HTML" != x])
+AM_CONDITIONAL(HAS_XSLTPROC, [test x"$XSLTPROC" != x])
+
+AM_CONDITIONAL(BUILD_MAN_DOCS, [test x"$PERL" != x && test x"$XSLTPROC" != x && test x"$MAN2HTML" != x])
+AM_CONDITIONAL(BUILD_API_DOCS, [test x"$PERL" != x && test x"$XSLTPROC" != x && test x"$GTKDOC_MKHTML" != x && test x"$GTKDOC_MKTMPL" != x && test x"$GTKDOC_MKDB" != x && test x"$GTKDOC_SCAN" != x])
dnl ==========================================================================
dnl Perform host specific configuration
@@ -137,7 +179,7 @@ if test "z$shrext" == "z" ; then
fi
dnl ==========================================================================
-dnl Check for __FUNCTION__ or __FUNCTION__
+dnl Check for __FUNCTION__ or __func__
dnl ==========================================================================
AC_MSG_CHECKING(for __FUNCTION__ or __func__)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
@@ -148,14 +190,14 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
[[char *foo = __func__;]])],
[ac_func_exists=yes],
[ac_func_exists=no])
-if test "z$ac_function_exists" = "zyes" ; then
- AC_MSG_RESULT(__FUNCTION__)
- XMLSEC_DEFINES="$XMLSEC_DEFINES -D__XMLSEC_FUNCTION__=__FUNCTION__"
-elif test "z$ac_func_exists" = "zyes" ; then
+if test "z$ac_func_exists" = "zyes" ; then
AC_MSG_RESULT(__func__)
XMLSEC_DEFINES="$XMLSEC_DEFINES -D__XMLSEC_FUNCTION__=__func__"
+elif test "z$ac_function_exists" = "zyes" ; then
+ AC_MSG_RESULT(__FUNCTION__)
+ XMLSEC_DEFINES="$XMLSEC_DEFINES -D__XMLSEC_FUNCTION__=__FUNCTION__"
else
- AC_MSG_RESULT("no")
+ AC_MSG_RESULT("no")
fi
dnl ==========================================================================
@@ -171,16 +213,13 @@ fi
dnl ==========================================================================
dnl Check if pkg-config enabled and installed
dnl ==========================================================================
-PKG_CONFIG="pkg-config"
PKGCONFIG_FOUND="no"
AC_ARG_ENABLE(pkgconfig, [ --enable-pkgconfig enable pkgconfig for configuration (yes)])
if test "z$enable_pkgconfig" != "zno" ; then
- AC_CHECK_PROG(PKGCONFIG_PRESENT, $PKG_CONFIG, yes, no)
- if test "z$PKGCONFIG_PRESENT" = "zyes" ; then
- if $PKG_CONFIG --atleast-pkgconfig-version 0.9 ; then
- PKGCONFIG_FOUND="yes"
- fi
- fi
+ PKG_PROG_PKG_CONFIG
+ PKGCONFIG_FOUND="yes"
+else
+ PKGCONFIG_FOUND="no"
fi
dnl ==========================================================================
@@ -256,6 +295,7 @@ dnl find libxslt
dnl ==========================================================================
XMLSEC_NO_LIBXSLT="1"
LIBXSLT_MIN_VERSION=1.0.20
+LIBXSLT_PC_FILE_COND="libxslt >= $LIBXSLT_MIN_VERSION"
LIBXSLT_CONFIG="xslt-config"
LIBXSLT_CFLAGS=""
LIBXSLT_LIBS=""
@@ -324,6 +364,8 @@ fi
if test "z$LIBXSLT_FOUND" = "zyes" ; then
XMLSEC_NO_LIBXSLT="0"
else
+ LIBXSLT_PC_FILE_COND=""
+ LIBXSLT_MIN_VERSION=""
XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_XSLT=1"
fi
@@ -332,6 +374,7 @@ AC_SUBST(LIBXSLT_CFLAGS)
AC_SUBST(LIBXSLT_LIBS)
AC_SUBST(LIBXSLT_CONFIG)
AC_SUBST(LIBXSLT_MIN_VERSION)
+AC_SUBST(LIBXSLT_PC_FILE_COND)
dnl ==========================================================================
dnl See if we can find a crypto library
@@ -346,7 +389,7 @@ ac_openssl_lib_dir="/usr/local/lib /usr/lib /usr/lib64 /usr/local /usr/local/ssl
ac_openssl_inc_dir="/usr/local/include /usr/include /usr/local /usr/local/ssl /usr/pkg /usr/local/ssl/include"
XMLSEC_NO_OPENSSL="1"
-OPENSSL_MIN_VERSION="0.9.6"
+OPENSSL_MIN_VERSION="0.9.8"
OPENSSL_VERSION=""
OPENSSL_CFLAGS=""
OPENSSL_LIBS=""
@@ -375,6 +418,12 @@ elif test "z$with_openssl" != "z" ; then
OPENSSL_FOUND="yes"
elif test "z$PKGCONFIG_FOUND" = "zyes" ; then
if test "z$OPENSSL_VERSION" = "z" ; then
+ PKG_CHECK_MODULES(OPENSSL, openssl >= 1.1.0,
+ [OPENSSL_VERSION="1.1.0"],
+ [OPENSSL_VERSION=""])
+ fi
+
+ if test "z$OPENSSL_VERSION" = "z" ; then
PKG_CHECK_MODULES(OPENSSL, openssl >= 1.0.0,
[OPENSSL_VERSION="1.0.0"],
[OPENSSL_VERSION=""])
@@ -385,12 +434,6 @@ elif test "z$PKGCONFIG_FOUND" = "zyes" ; then
[OPENSSL_VERSION="0.9.8"],
[OPENSSL_VERSION=""])
fi
-
- if test "z$OPENSSL_VERSION" = "z" ; then
- PKG_CHECK_MODULES(OPENSSL, openssl >= 0.9.7,
- [OPENSSL_VERSION="0.9.7"],
- [OPENSSL_VERSION=""])
- fi
if test "z$OPENSSL_VERSION" = "z" ; then
PKG_CHECK_MODULES(OPENSSL, openssl >= $OPENSSL_MIN_VERSION,
@@ -399,7 +442,7 @@ elif test "z$PKGCONFIG_FOUND" = "zyes" ; then
fi
if test "z$OPENSSL_VERSION" != "z" ; then
- OPENSSL_FOUND="yes"
+ OPENSSL_FOUND="yes"
fi
fi
@@ -448,6 +491,19 @@ if test "z$OPENSSL_FOUND" = "zyes" -a "z$OPENSSL_VERSION" = "z" ; then
if test "z$OPENSSL_VERSION" = "z" ; then
AC_EGREP_CPP(yes,[
+ #include <openssl/opensslv.h>
+ #if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+ yes
+ #endif
+ ],[
+ OPENSSL_VERSION="1.1.0"
+ ],[
+ OPENSSL_VERSION=""
+ ])
+ fi
+
+ if test "z$OPENSSL_VERSION" = "z" ; then
+ AC_EGREP_CPP(yes,[
#include <openssl/opensslv.h>
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
yes
@@ -473,31 +529,6 @@ if test "z$OPENSSL_FOUND" = "zyes" -a "z$OPENSSL_VERSION" = "z" ; then
fi
if test "z$OPENSSL_VERSION" = "z" ; then
- AC_EGREP_CPP(yes,[
- #include <openssl/opensslv.h>
- #if OPENSSL_VERSION_NUMBER >= 0x00907000L
- yes
- #endif
- ],[
- OPENSSL_VERSION="0.9.7"
- ],[
- OPENSSL_VERSION=""
- ])
- fi
-
- if test "z$OPENSSL_VERSION" = "z" ; then
- AC_EGREP_CPP(yes,[
- #include <openssl/opensslv.h>
- #if OPENSSL_VERSION_NUMBER >= 0x00906000L
- yes
- #endif
- ],[
- OPENSSL_VERSION="0.9.6"
- ],[
- OPENSSL_VERSION=""
- ])
- fi
- if test "z$OPENSSL_VERSION" = "z" ; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT([yes ('$OPENSSL_VERSION')])
@@ -524,18 +555,15 @@ fi
if test "z$OPENSSL_FOUND" = "zyes" ; then
XMLSEC_NO_OPENSSL="0"
- if test "z$OPENSSL_VERSION" = "z0.9.6" ; then
- OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_OPENSSL_096=1 -DXMLSEC_NO_ECDSA=1"
- fi
- if test "z$OPENSSL_VERSION" = "z0.9.7" ; then
- OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_OPENSSL_097=1 -DXMLSEC_NO_ECDSA=1"
- fi
if test "z$OPENSSL_VERSION" = "z0.9.8" ; then
- OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_OPENSSL_098=1 -DXMLSEC_NO_ECDSA=1"
- fi
+ OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_OPENSSL_098=1 -DXMLSEC_NO_ECDSA=1 -DXMLSEC_NO_SHA256=1"
+ fi
if test "z$OPENSSL_VERSION" = "z1.0.0" ; then
OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_OPENSSL_100=1"
fi
+ if test "z$OPENSSL_VERSION" = "z1.1.0" ; then
+ OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_OPENSSL_110=1"
+ fi
OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_CRYPTO_OPENSSL=1"
XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST openssl"
else
@@ -759,7 +787,7 @@ if test "z$NSS_FOUND" = "zno" ; then
if test "z$NSS_INCLUDES_FOUND" = "zyes" -a "z$NSS_LIBS_FOUND" = "zyes" ; then
OLD_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$NSS_CFLAGS"
+ CPPFLAGS="$NSPR_CFLAGS $NSS_CFLAGS"
AC_EGREP_CPP(yes,[
#include <nss.h>
#if NSS_VMAJOR >= 3 && NSS_VMINOR >= 2
@@ -822,8 +850,6 @@ GCRYPT_CRYPTO_LIB="$XMLSEC_PACKAGE-gcrypt"
GCRYPT_FOUND="no"
AC_ARG_WITH(gcrypt, [ --with-gcrypt=[PFX] gcrypt location])
if test "z$with_gcrypt" = "zno" ; then
- AC_MSG_CHECKING(for gcrypt libraries >= $GCRYPT_MIN_VERSION)
- AC_MSG_RESULT(no)
GCRYPT_FOUND="without"
elif test "z$with_gcrypt" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then
PKG_CHECK_MODULES(GCRYPT, gcrypt >= $GCRYPT_MIN_VERSION,
@@ -844,7 +870,6 @@ elif test "z$with_gcrypt" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then
fi
if test "z$GCRYPT_FOUND" = "zno" ; then
- AC_MSG_CHECKING(for gcrypt libraries >= $GCRYPT_MIN_VERSION)
if test "z$with_gcrypt" != "z" ; then
GCRYPT_CONFIG=$with_gcrypt/bin/$GCRYPT_CONFIG
fi
@@ -867,12 +892,15 @@ if test "z$GCRYPT_FOUND" = "zno" ; then
fi
fi
+AC_MSG_CHECKING(for gcrypt libraries >= $GCRYPT_MIN_VERSION)
if test "z$GCRYPT_FOUND" = "zyes" ; then
XMLSEC_NO_GCRYPT="0"
GCRYPT_CFLAGS="$GCRYPT_CFLAGS -DXMLSEC_CRYPTO_GCRYPT=1"
XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST gcrypt"
+ AC_MSG_RESULT(yes)
else
XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST gcrypt"
+ AC_MSG_RESULT(no)
fi
AM_CONDITIONAL(XMLSEC_NO_GCRYPT, test "z$XMLSEC_NO_GCRYPT" = "z1")
@@ -886,7 +914,6 @@ AC_SUBST(GCRYPT_MIN_VERSION)
dnl ==========================================================================
dnl See if we can find GnuTLS
dnl ==========================================================================
-GNUTLS_CONFIG="libgnutls-config"
XMLSEC_NO_GNUTLS="1"
GNUTLS_MIN_VERSION="2.8.0"
GNUTLS_VERSION=""
@@ -896,8 +923,6 @@ GNUTLS_CRYPTO_LIB="$XMLSEC_PACKAGE-gnutls"
GNUTLS_FOUND="no"
AC_ARG_WITH(gnutls, [ --with-gnutls=[PFX] gnutls location])
if test "z$with_gnutls" = "zno" ; then
- AC_MSG_CHECKING(for gnutls libraries >= $GNUTLS_MIN_VERSION)
- AC_MSG_RESULT(no)
GNUTLS_FOUND="without"
elif test "z$with_gnutls" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then
PKG_CHECK_MODULES(GNUTLS, gnutls >= $GNUTLS_MIN_VERSION,
@@ -911,29 +936,25 @@ elif test "z$with_gnutls" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then
fi
if test "z$GNUTLS_FOUND" = "zno" ; then
- AC_MSG_CHECKING(for gnutls libraries >= $GNUTLS_MIN_VERSION)
- if test "z$with_gnutls" != "z" ; then
- GNUTLS_CONFIG=$with_gnutls/bin/$GNUTLS_CONFIG
+ SAVE_CFLAGS="$CFLAGS"
+ SAVE_LDFLAGS="$LDFLAGS"
+ if test "z$with_gnutls" != "z" -a "z$with_gnutls" != "zno" ; then
+ GNUTLS_CFLAGS="-I$with_gnutls/include"
+ GNUTLS_LIBS="-L$with_gnutls/lib -lgnutls"
+ CFLAGS="$GNUTLS_CFLAGS $CFLAGS"
+ LDFLAGS="$GNUTLS_LIBS $LDFLAGS"
fi
- if ! $GNUTLS_CONFIG --version > /dev/null 2>&1 ; then
- if test "z$with_gnutls" != "z" ; then
- AC_MSG_ERROR(Unable to find gnutls at '$with_gnutls')
- else
- AC_MSG_RESULT(no)
- fi
- else
- vers=`$GNUTLS_CONFIG --version | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
- minvers=`echo $GNUTLS_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
- if test "$vers" -ge "$minvers" ; then
- GNUTLS_CFLAGS="$GNUTLS_CFLAGS `$GNUTLS_CONFIG --cflags`"
- GNUTLS_LIBS="$GNUTLS_LIBS `$GNUTLS_CONFIG --libs`"
- GNUTLS_FOUND=yes
- else
- AC_MSG_ERROR(You need at least gnutls $GNUTLS_MIN_VERSION for this version of $XMLSEC_PACKAGE)
- fi
+ AC_CHECK_HEADERS([gnutls/gnutls.h],[
+ AC_CHECK_LIB([gnutls], [gnutls_check_version], [ GNUTLS_FOUND=yes ])
+ ], [], [AC_INCLUDES_DEFAULT])
+ if test "z$with_gnutls" != "z" -a "z$with_gnutls" != "zno" -a "z$GNUTLS_FOUND" != "zyes" ; then
+ AC_MSG_ERROR([can't find usable libgnutls at specified location "$with_gnutls"])
fi
+ CFLAGS="$SAVE_CFLAGS"
+ LDFLAGS="$SAVE_LDFLAGS"
fi
+AC_MSG_CHECKING(for gnutls libraries >= $GNUTLS_MIN_VERSION)
if test "z$GNUTLS_FOUND" = "zyes" ; then
XMLSEC_NO_GNUTLS="0"
GNUTLS_CFLAGS="$GNUTLS_CFLAGS -DXMLSEC_CRYPTO_GNUTLS=1"
@@ -943,9 +964,10 @@ if test "z$GNUTLS_FOUND" = "zyes" ; then
if test "z$GCRYPT_FOUND" != "zyes" ; then
AC_MSG_ERROR(xmlsec-gnutls library requires xmlsec-gcrypt library which is disabled or missing)
fi
-
+ AC_MSG_RESULT(yes)
else
XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST gnutls"
+ AC_MSG_RESULT(no)
fi
AM_CONDITIONAL(XMLSEC_NO_GNUTLS, test "z$XMLSEC_NO_GNUTLS" = "z1")
@@ -1015,7 +1037,7 @@ AC_SUBST(MSCRYPTO_CRYPTO_LIB)
dnl ==========================================================================
dnl Figure out the default crypt - the first crypto library wins
dnl ==========================================================================
-XMLSEC_CRYPTO=""
+XMLSEC_DEFAULT_CRYPTO=""
XMLSEC_CRYPTO_LIB=""
XMLSEC_CRYPTO_CFLAGS=""
XMLSEC_CRYPTO_LIBS=""
@@ -1026,35 +1048,35 @@ AC_ARG_WITH(default_crypto, [ --with-default-crypto=name default crypto name])
case "z$with_default_crypto" in
'zmscrypto')
if test "z$XMLSEC_NO_MSCRYPTO" != "z1" ; then
- XMLSEC_CRYPTO="mscrypto"
+ XMLSEC_DEFAULT_CRYPTO="mscrypto"
else
AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found)
fi
;;
'zopenssl')
if test "z$XMLSEC_NO_OPENSSL" != "z1" ; then
- XMLSEC_CRYPTO="openssl"
+ XMLSEC_DEFAULT_CRYPTO="openssl"
else
AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found)
fi
;;
'znss')
if test "z$XMLSEC_NO_NSS" != "z1" ; then
- XMLSEC_CRYPTO="nss"
+ XMLSEC_DEFAULT_CRYPTO="nss"
else
AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found)
fi
;;
'zgnutls')
if test "z$XMLSEC_NO_GNUTLS" != "z1" ; then
- XMLSEC_CRYPTO="gnutls"
+ XMLSEC_DEFAULT_CRYPTO="gnutls"
else
AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found)
fi
;;
'zgcrypt')
if test "z$XMLSEC_NO_GCRYPT" != "z1" ; then
- XMLSEC_CRYPTO="gcrypt"
+ XMLSEC_DEFAULT_CRYPTO="gcrypt"
else
AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found)
fi
@@ -1062,15 +1084,15 @@ case "z$with_default_crypto" in
'z')
dnl The first crypto library wins
if test "z$XMLSEC_NO_MSCRYPTO" != "z1" ; then
- XMLSEC_CRYPTO="mscrypto"
+ XMLSEC_DEFAULT_CRYPTO="mscrypto"
elif test "z$XMLSEC_NO_OPENSSL" != "z1" ; then
- XMLSEC_CRYPTO="openssl"
+ XMLSEC_DEFAULT_CRYPTO="openssl"
elif test "z$XMLSEC_NO_NSS" != "z1" ; then
- XMLSEC_CRYPTO="nss"
+ XMLSEC_DEFAULT_CRYPTO="nss"
elif test "z$XMLSEC_NO_GNUTLS" != "z1" ; then
- XMLSEC_CRYPTO="gnutls"
+ XMLSEC_DEFAULT_CRYPTO="gnutls"
elif test "z$XMLSEC_NO_GCRYPT" != "z1" ; then
- XMLSEC_CRYPTO="gcrypt"
+ XMLSEC_DEFAULT_CRYPTO="gcrypt"
else
AC_MSG_ERROR(At least one crypto library should exist for $XMLSEC_PACKAGE)
fi
@@ -1081,7 +1103,7 @@ case "z$with_default_crypto" in
esac
dnl Set the flags for default crypto lib
-case "$XMLSEC_CRYPTO" in
+case "$XMLSEC_DEFAULT_CRYPTO" in
'mscrypto')
XMLSEC_CRYPTO_LIB="$MSCRYPTO_CRYPTO_LIB"
XMLSEC_CRYPTO_CFLAGS="$MSCRYPTO_CFLAGS"
@@ -1108,10 +1130,10 @@ case "$XMLSEC_CRYPTO" in
XMLSEC_CRYPTO_LIBS="$GCRYPT_LIBS"
;;
*)
- AC_MSG_ERROR(The value \"$XMLSEC_CRYPTO\" is not a recongnized crypto library name)
+ AC_MSG_ERROR(The value \"$XMLSEC_DEFAULT_CRYPTO\" is not a recongnized crypto library name)
;;
esac
-AC_MSG_RESULT(yes ('$XMLSEC_CRYPTO'))
+AC_MSG_RESULT(yes ('$XMLSEC_DEFAULT_CRYPTO'))
dnl ==========================================================================
dnl See do we need MD5 support
@@ -1310,7 +1332,7 @@ dnl ==========================================================================
dnl See do we need AES support
dnl ==========================================================================
AC_MSG_CHECKING(for AES support)
-AC_ARG_ENABLE(aes, [ --enable-aes enable AES support (OpenSSL >= 0.9.7 is required)])
+AC_ARG_ENABLE(aes, [ --enable-aes enable AES support])
if test "z$enable_aes" = "zno" ; then
XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_AES=1"
XMLSEC_NO_AES="1"
@@ -1325,7 +1347,7 @@ AC_SUBST(XMLSEC_NO_AES)
dnl ==========================================================================
dnl See do we need GOST support
dnl ==========================================================================
-AC_MSG_CHECKING(for GOST support)
+AC_MSG_CHECKING(for GOST support)
AC_ARG_ENABLE(gost, [ --enable-gost enable GOST support (no)])
if test "z$enable_gost" != "zyes" ; then
XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_GOST=1"
@@ -1334,10 +1356,28 @@ if test "z$enable_gost" != "zyes" ; then
else
XMLSEC_NO_GOST="0"
AC_MSG_RESULT(yes)
-fi
+fi
AM_CONDITIONAL(XMLSEC_NO_GOST, test "z$XMLSEC_NO_GOST" = "z1")
AC_SUBST(XMLSEC_NO_GOST)
+
+dnl ==========================================================================
+dnl See do we need GOST2012 support
+dnl ==========================================================================
+AC_MSG_CHECKING(for EXPERMIENTAL GOST2012 support)
+AC_ARG_ENABLE(gost, [ --enable-gost2012 enable EXPERMIENTAL GOST2012 support (no)])
+if test "z$enable_gost2012" != "zyes" ; then
+ XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_GOST2012=1"
+ XMLSEC_NO_GOST2012="1"
+ AC_MSG_RESULT(no)
+else
+ XMLSEC_NO_GOST2012="0"
+ AC_MSG_RESULT(yes)
+fi
+AM_CONDITIONAL(XMLSEC_NO_GOST2012, test "z$XMLSEC_NO_GOST2012" = "z1")
+AC_SUBST(XMLSEC_NO_GOST2012)
+
+
dnl ==========================================================================
dnl See do we need XMLDSig support
dnl ==========================================================================
@@ -1371,22 +1411,6 @@ AM_CONDITIONAL(XMLSEC_NO_XMLENC, test "z$XMLSEC_NO_XMLENC" = "z1")
AC_SUBST(XMLSEC_NO_XMLENC)
dnl ==========================================================================
-dnl See do we need XKMS support
-dnl ==========================================================================
-AC_MSG_CHECKING(for XMKMS support - under development, not stable yet)
-AC_ARG_ENABLE(xkms, [ --enable-xkms enable XKMS support - under development (no)])
-if test "z$enable_xkms" = "zyes" ; then
- XMLSEC_NO_XKMS="0"
- AC_MSG_RESULT(yes)
-else
- XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_XKMS=1"
- XMLSEC_NO_XKMS="1"
- AC_MSG_RESULT(no)
-fi
-AM_CONDITIONAL(XMLSEC_NO_XKMS, test "z$XMLSEC_NO_XKMS" = "z1")
-AC_SUBST(XMLSEC_NO_XKMS)
-
-dnl ==========================================================================
dnl check if we need dynamic loading support
dnl ==========================================================================
XMLSEC_DL_INCLUDES=""
@@ -1515,8 +1539,8 @@ dnl ==========================================================================
AC_MSG_CHECKING(for pedantic)
AC_ARG_ENABLE(pedantic, [ --enable-pedantic enable pedantic compilation flags (no)])
if test "z$enable_pedantic" = "zyes" ; then
- dnl CFLAGS="$CFLAGS -pedantic -Wall -ansi -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
- CFLAGS="$CFLAGS -O -pedantic -Wall -ansi -fno-inline -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls"
+ dnl CFLAGS="$CFLAGS -pedantic -Wall -std=c99 -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wredundant-decls"
+ CFLAGS="$CFLAGS -O -pedantic -Wall -std=c99 -fno-inline -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wredundant-decls"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
@@ -1588,7 +1612,7 @@ AC_SUBST(LDFLAGS)
AC_SUBST(XMLSEC_EXTRA_LDFLAGS)
AC_SUBST(XMLSEC_CRYPTO_EXTRA_LDFLAGS)
-AC_SUBST(XMLSEC_CRYPTO)
+AC_SUBST(XMLSEC_DEFAULT_CRYPTO)
AC_SUBST(XMLSEC_CRYPTO_LIST)
AC_SUBST(XMLSEC_CRYPTO_DISABLED_LIST)
AC_SUBST(XMLSEC_CRYPTO_LIB)
@@ -1627,7 +1651,7 @@ AC_CONFIG_FILES([include/xmlsec/mscrypto/Makefile src/mscrypto/Makefile])
fi
if test "z$XMLSEC_NO_CRYPTO_DYNAMIC_LOADING" = "z1" ; then
-(rm -f xmlsec1.pc && $LN_S xmlsec1-$XMLSEC_CRYPTO.pc xmlsec1.pc)
+(rm -f xmlsec1.pc && $LN_S xmlsec1-$XMLSEC_DEFAULT_CRYPTO.pc xmlsec1.pc)
else
AC_CONFIG_FILES([xmlsec1.pc:xmlsec.pc.in])
fi
@@ -1644,16 +1668,13 @@ docs/Makefile
docs/api/Makefile
man/Makefile
-xmlsec1Conf.sh:xmlsecConf.sh.in
-xmlsec1-config:xmlsec-config.in
xmlsec1-openssl.pc:xmlsec-openssl.pc.in
xmlsec1-gnutls.pc:xmlsec-gnutls.pc.in
xmlsec1-gcrypt.pc:xmlsec-gcrypt.pc.in
xmlsec1-nss.pc:xmlsec-nss.pc.in
xmlsec1.spec:xmlsec.spec.in
])
+AC_CONFIG_FILES([xmlsec1Conf.sh:xmlsecConf.sh.in], [chmod +x xmlsec1Conf.sh])
+AC_CONFIG_FILES([xmlsec1-config:xmlsec-config.in], [chmod +x xmlsec1-config])
AC_OUTPUT
-
-dnl COPYING should be in "srcdir" not in "builddir"
-(cd $srcdir && rm -f COPYING.LIB COPYING && $LN_S Copyright COPYING)
diff --git a/depcomp b/depcomp
index 4ebd5b3..fc98710 100755
--- a/depcomp
+++ b/depcomp
@@ -3,7 +3,7 @@
scriptversion=2013-05-30.07; # UTC
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/docs/Makefile.am b/docs/Makefile.am
index e1957bb..32bf780 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -5,61 +5,104 @@ SUBDIRS=api
TARGET_DIR=@XMLSEC_DOCDIR@
EXTRA_DIST=\
- images \
- xmlsec.xsl \
+ $(builddir)/images \
+ $(builddir)/*.html \
+ $(builddir)/*.ico \
+ $(builddir)/xmlsec.xsl \
$(NULL)
-# just do nothing
-all:
+XMLSEC1_MAN=$(top_builddir)/man/xmlsec1.1
+XMLSEC_HTML=$(builddir)/xmlsec-man.html
-docs: api-docs-create docs-format
+all: docs
-api-docs-create:
- @(cd api; \
- $(MAKE) docs; \
- echo "Cleaning up result files"; \
- perl ../../scripts/remove-gtkdoclink.pl `find . -name "*.html" -print` \
+# docs is legacy
+docs: docs-copy man-docs docs-format
+
+docs-copy:
+ @( \
+ echo "Copying docs..."; \
+ if [ z"$(srcdir)" != z"$(builddir)" ]; \
+ then \
+ $(CP) -ru $(srcdir)/*.html $(srcdir)/*.ico $(srcdir)/images $(builddir)/ ; \
+ chmod u+w $(builddir)/*.html ; \
+ chmod u+w $(builddir)/*.ico ; \
+ chmod -R u+w $(builddir)/images ; \
+ fi \
)
-api-docs-clean:
- @(cd api; $(MAKE) clean)
+# if we build docs then we also have xsltproc
+if BUILD_MAN_DOCS
+man-docs: $(XMLSEC_HTML) docs-copy
+
+$(XMLSEC_HTML): docs-copy $(XMLSEC1_MAN)
+ $(MAN2HTML) $(XMLSEC1_MAN) | \
+ grep -v '^Content-type: text/html' | \
+ tr "[:cntrl:]" " " > \
+ $(XMLSEC_HTML)
+else
+# do nothing, we aready copied this file
+man-docs:
+
+endif
+if HAS_XSLTPROC
docs-format:
@(echo "Formatting html documents"; \
- for i in `find . -name "*.html" -print`; \
+ for i in `find $(builddir) -name "*.html" -print`; \
do \
top_folder=`echo $$i | sed 's#/[^/]*$$#/#' | sed 's#\./##' | \
sed 's#[^/]*/#../#g'`; \
- echo "Processing $$i ($$top_folder)"; \
- xsltproc --html --stringparam topfolder "$$top_folder" \
- --output $$i.tmp ./xmlsec.xsl $$i; \
+ echo "Processing $$i (topfolder='$$top_folder')"; \
+ $(XSLTPROC) --html --stringparam topfolder "$$top_folder" \
+ --output $$i.tmp $(srcdir)/xmlsec.xsl $$i; \
if [ $$? != 0 ]; \
then \
- echo "ERROR: processing file $$i"; \
- exit 1; \
+ echo "ERROR: processing file $$i"; \
+ exit 1; \
fi; \
mv $$i.tmp $$i; \
done)
@(echo "Cleaning html documents"; \
- for i in `find . -name "*.html" -print`; \
+ for i in `find $(builddir) -name "*.html" -print`; \
do \
echo Cleaning $$i ; \
sed 's/\xA0/ /g' $$i > $$i.tmp ; \
mv $$i.tmp $$i ; \
done)
+else
+# do nothing
+docs-format:
+
+endif
+
+clean-local:
+ -rm -f *.stamp
+ ( if [ z"$(srcdir)" != z"$(builddir)" ] ; then \
+ chmod -R u+w $(builddir)/images && rm -rf $(builddir)/images ; \
+ chmod -R u+w $(builddir)/src && rm -rf $(builddir)/src ; \
+ (for i in `find $(builddir) -name "*.html" -print` ; do \
+ echo "Removing files '$$i' ... " ; \
+ chmod -R u+w $$i && rm -f $$i ; \
+ done ) ; \
+ (for i in `find $(builddir) -name "*.ico" -print` ; do \
+ echo "Removing files '$$i' ... " ; \
+ chmod -R u+w $$i && rm -f $$i ; \
+ done ) ; \
+ fi ; )
-dist-hook:
- @$(CP) -p $(srcdir)/*.html $(distdir)
+distclean-local: clean-local
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)
$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)/images
$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)/api
$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)/api/images
- - at INSTALL@ -m 0644 $(srcdir)/*.html $(DESTDIR)$(TARGET_DIR)
- - at INSTALL@ -m 0644 $(srcdir)/images/*.gif $(srcdir)/images/*.png $(DESTDIR)$(TARGET_DIR)/images
- - at INSTALL@ -m 0644 $(srcdir)/api/*.html $(srcdir)/api/*.png $(srcdir)/api/*.sgml $(DESTDIR)$(TARGET_DIR)/api
- - at INSTALL@ -m 0644 $(srcdir)/api/images/*.png $(DESTDIR)$(TARGET_DIR)/api/images
+ - at INSTALL@ -m 0644 $(builddir)/*.html $(DESTDIR)$(TARGET_DIR)
+ - at INSTALL@ -m 0644 $(builddir)/*.ico $(DESTDIR)$(TARGET_DIR)
+ - at INSTALL@ -m 0644 $(builddir)/images/*.gif $(builddir)/images/*.png $(DESTDIR)$(TARGET_DIR)/images
+ - at INSTALL@ -m 0644 $(builddir)/api/*.html $(builddir)/api/*.png $(builddir)/api/*.sgml $(DESTDIR)$(TARGET_DIR)/api
+ - at INSTALL@ -m 0644 $(builddir)/api/images/*.png $(DESTDIR)$(TARGET_DIR)/api/images
uninstall-local:
@rm -rf $(DESTDIR)$(TARGET_DIR)
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 3750cde..cfecdb1 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -78,14 +88,14 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = docs
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -145,6 +155,7 @@ am__define_uniq_tagged_files = \
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
@@ -206,6 +217,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -225,6 +240,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -263,7 +279,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -279,7 +295,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -287,6 +302,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -306,6 +322,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -320,7 +337,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -335,6 +351,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -391,10 +408,14 @@ NULL =
SUBDIRS = api
TARGET_DIR = @XMLSEC_DOCDIR@
EXTRA_DIST = \
- images \
- xmlsec.xsl \
+ $(builddir)/images \
+ $(builddir)/*.html \
+ $(builddir)/*.ico \
+ $(builddir)/xmlsec.xsl \
$(NULL)
+XMLSEC1_MAN = $(top_builddir)/man/xmlsec1.1
+XMLSEC_HTML = $(builddir)/xmlsec-man.html
all: all-recursive
.SUFFIXES:
@@ -410,7 +431,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu docs/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -589,9 +609,6 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" distdir="$(distdir)" \
- dist-hook
check-am: all-am
check: check-recursive
all-am: Makefile
@@ -629,11 +646,12 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
-clean-am: clean-generic clean-libtool mostlyclean-am
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
distclean: distclean-recursive
-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
+distclean-am: clean-am distclean-generic distclean-local \
+ distclean-tags
dvi: dvi-recursive
@@ -696,71 +714,103 @@ uninstall-am: uninstall-local
.MAKE: $(am__recursive_targets) install-am install-strip
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
- check-am clean clean-generic clean-libtool cscopelist-am ctags \
- ctags-am dist-hook distclean distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-data-local install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs installdirs-am \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-am uninstall uninstall-am uninstall-local
-
-
-# just do nothing
-all:
-
-docs: api-docs-create docs-format
-
-api-docs-create:
- @(cd api; \
- $(MAKE) docs; \
- echo "Cleaning up result files"; \
- perl ../../scripts/remove-gtkdoclink.pl `find . -name "*.html" -print` \
+ check-am clean clean-generic clean-libtool clean-local \
+ cscopelist-am ctags ctags-am distclean distclean-generic \
+ distclean-libtool distclean-local distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-local install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-am uninstall uninstall-am uninstall-local
+
+.PRECIOUS: Makefile
+
+
+all: docs
+
+# docs is legacy
+docs: docs-copy man-docs docs-format
+
+docs-copy:
+ @( \
+ echo "Copying docs..."; \
+ if [ z"$(srcdir)" != z"$(builddir)" ]; \
+ then \
+ $(CP) -ru $(srcdir)/*.html $(srcdir)/*.ico $(srcdir)/images $(builddir)/ ; \
+ chmod u+w $(builddir)/*.html ; \
+ chmod u+w $(builddir)/*.ico ; \
+ chmod -R u+w $(builddir)/images ; \
+ fi \
)
-api-docs-clean:
- @(cd api; $(MAKE) clean)
-
-docs-format:
- @(echo "Formatting html documents"; \
- for i in `find . -name "*.html" -print`; \
- do \
- top_folder=`echo $$i | sed 's#/[^/]*$$#/#' | sed 's#\./##' | \
- sed 's#[^/]*/#../#g'`; \
- echo "Processing $$i ($$top_folder)"; \
- xsltproc --html --stringparam topfolder "$$top_folder" \
- --output $$i.tmp ./xmlsec.xsl $$i; \
- if [ $$? != 0 ]; \
- then \
- echo "ERROR: processing file $$i"; \
- exit 1; \
- fi; \
- mv $$i.tmp $$i; \
- done)
- @(echo "Cleaning html documents"; \
- for i in `find . -name "*.html" -print`; \
- do \
- echo Cleaning $$i ; \
- sed 's/\xA0/ /g' $$i > $$i.tmp ; \
- mv $$i.tmp $$i ; \
- done)
-
-dist-hook:
- @$(CP) -p $(srcdir)/*.html $(distdir)
+# if we build docs then we also have xsltproc
+ at BUILD_MAN_DOCS_TRUE@man-docs: $(XMLSEC_HTML) docs-copy
+
+ at BUILD_MAN_DOCS_TRUE@$(XMLSEC_HTML): docs-copy $(XMLSEC1_MAN)
+ at BUILD_MAN_DOCS_TRUE@ $(MAN2HTML) $(XMLSEC1_MAN) | \
+ at BUILD_MAN_DOCS_TRUE@ grep -v '^Content-type: text/html' | \
+ at BUILD_MAN_DOCS_TRUE@ tr "[:cntrl:]" " " > \
+ at BUILD_MAN_DOCS_TRUE@ $(XMLSEC_HTML)
+# do nothing, we aready copied this file
+ at BUILD_MAN_DOCS_FALSE@man-docs:
+
+ at HAS_XSLTPROC_TRUE@docs-format:
+ at HAS_XSLTPROC_TRUE@ @(echo "Formatting html documents"; \
+ at HAS_XSLTPROC_TRUE@ for i in `find $(builddir) -name "*.html" -print`; \
+ at HAS_XSLTPROC_TRUE@ do \
+ at HAS_XSLTPROC_TRUE@ top_folder=`echo $$i | sed 's#/[^/]*$$#/#' | sed 's#\./##' | \
+ at HAS_XSLTPROC_TRUE@ sed 's#[^/]*/#../#g'`; \
+ at HAS_XSLTPROC_TRUE@ echo "Processing $$i (topfolder='$$top_folder')"; \
+ at HAS_XSLTPROC_TRUE@ $(XSLTPROC) --html --stringparam topfolder "$$top_folder" \
+ at HAS_XSLTPROC_TRUE@ --output $$i.tmp $(srcdir)/xmlsec.xsl $$i; \
+ at HAS_XSLTPROC_TRUE@ if [ $$? != 0 ]; \
+ at HAS_XSLTPROC_TRUE@ then \
+ at HAS_XSLTPROC_TRUE@ echo "ERROR: processing file $$i"; \
+ at HAS_XSLTPROC_TRUE@ exit 1; \
+ at HAS_XSLTPROC_TRUE@ fi; \
+ at HAS_XSLTPROC_TRUE@ mv $$i.tmp $$i; \
+ at HAS_XSLTPROC_TRUE@ done)
+ at HAS_XSLTPROC_TRUE@ @(echo "Cleaning html documents"; \
+ at HAS_XSLTPROC_TRUE@ for i in `find $(builddir) -name "*.html" -print`; \
+ at HAS_XSLTPROC_TRUE@ do \
+ at HAS_XSLTPROC_TRUE@ echo Cleaning $$i ; \
+ at HAS_XSLTPROC_TRUE@ sed 's/\xA0/ /g' $$i > $$i.tmp ; \
+ at HAS_XSLTPROC_TRUE@ mv $$i.tmp $$i ; \
+ at HAS_XSLTPROC_TRUE@ done)
+# do nothing
+ at HAS_XSLTPROC_FALSE@docs-format:
+
+clean-local:
+ -rm -f *.stamp
+ ( if [ z"$(srcdir)" != z"$(builddir)" ] ; then \
+ chmod -R u+w $(builddir)/images && rm -rf $(builddir)/images ; \
+ chmod -R u+w $(builddir)/src && rm -rf $(builddir)/src ; \
+ (for i in `find $(builddir) -name "*.html" -print` ; do \
+ echo "Removing files '$$i' ... " ; \
+ chmod -R u+w $$i && rm -f $$i ; \
+ done ) ; \
+ (for i in `find $(builddir) -name "*.ico" -print` ; do \
+ echo "Removing files '$$i' ... " ; \
+ chmod -R u+w $$i && rm -f $$i ; \
+ done ) ; \
+ fi ; )
+
+distclean-local: clean-local
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)
$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)/images
$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)/api
$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)/api/images
- - at INSTALL@ -m 0644 $(srcdir)/*.html $(DESTDIR)$(TARGET_DIR)
- - at INSTALL@ -m 0644 $(srcdir)/images/*.gif $(srcdir)/images/*.png $(DESTDIR)$(TARGET_DIR)/images
- - at INSTALL@ -m 0644 $(srcdir)/api/*.html $(srcdir)/api/*.png $(srcdir)/api/*.sgml $(DESTDIR)$(TARGET_DIR)/api
- - at INSTALL@ -m 0644 $(srcdir)/api/images/*.png $(DESTDIR)$(TARGET_DIR)/api/images
+ - at INSTALL@ -m 0644 $(builddir)/*.html $(DESTDIR)$(TARGET_DIR)
+ - at INSTALL@ -m 0644 $(builddir)/*.ico $(DESTDIR)$(TARGET_DIR)
+ - at INSTALL@ -m 0644 $(builddir)/images/*.gif $(builddir)/images/*.png $(DESTDIR)$(TARGET_DIR)/images
+ - at INSTALL@ -m 0644 $(builddir)/api/*.html $(builddir)/api/*.png $(builddir)/api/*.sgml $(DESTDIR)$(TARGET_DIR)/api
+ - at INSTALL@ -m 0644 $(builddir)/api/images/*.png $(DESTDIR)$(TARGET_DIR)/api/images
uninstall-local:
@rm -rf $(DESTDIR)$(TARGET_DIR)
diff --git a/docs/api/Makefile.am b/docs/api/Makefile.am
index b92b533..2a3c329 100644
--- a/docs/api/Makefile.am
+++ b/docs/api/Makefile.am
@@ -2,165 +2,264 @@
#
#
NULL=
-TOP=../..
MODULE=xmlsec
-SOURCE_DIR=$(TOP)/src
-INCLUDE_DIR=$(TOP)/include
-SGML_CATALOG_FILES=/usr/share/sgml/docbook/sgml-dtd-3.0-1.0-8/catalog:/usr/share/sgml/openjade-1.3.1/catalog:/usr/share/sgml/docbook/dsssl-stylesheets/catalog
+SOURCE_DIR=$(top_srcdir)/src
+SOURCE_DIR2=$(top_builddir)/src
+INCLUDE_DIR=$(top_srcdir)/include
+INCLUDE_DIR2=$(top_builddir)/include
+
+
+SCAN_DIR=$(builddir)
+SGML_DIR=$(builddir)/sgml.tmp
+XML_DIR=$(builddir)/xml.tmp
+EXAMPLES_DIR=$(SGML_DIR)/examples
+SOURCE_CODE_DIR=$(builddir)/code
+
+
+# We need to copy some files to make gkdoc happy that
+# everything is in one folder
+TMPL_DIR=$(builddir)/tmpl
+TMPL_SRC_DIR=$(srcdir)/tmpl
+
+MAIN_SGML_FILE=$(SGML_DIR)/xmlsec-main.sgml
+MAIN_SGML_SRC_FILE=$(srcdir)/src/xmlsec.sgml
+
+SGML_CHAPTERS_DIR=$(SGML_DIR)/chapters
+SGML_CHAPTERS_SRC_DIR=$(srcdir)/src/chapters
+
EXTRA_DIST = \
- chapters \
- images \
+ $(TMPL_DIR) \
+ $(srcdir)/src \
+ $(srcdir)/images \
$(NULL)
+SOURCE_FILES_TO_COPY = \
+ $(srcdir)/src \
+ $(srcdir)/images \
+ $(srcdir)/*.html \
+ $(srcdir)/*.png \
+ $(NULL)
+
#
# We need to pre-process original source files
# because gtkdoc does not understand some C features
#
-DOC_SOURCE_DIR=./code
-DOC_SOURCE_FILES=\
- $(shell find $(SOURCE_DIR) -name '*.c' -a ! -name "xkms*" -print ) \
- $(shell find $(INCLUDE_DIR) -name '*.h' -a ! -name "symbols.h" -a ! -name "xkms*" -print )
+SOURCE_CODE_FILES=\
+ $(shell find $(SOURCE_DIR) -name '*.c' -print ) \
+ $(shell find $(SOURCE_DIR2) -name '*.c' -print ) \
+ $(shell find $(INCLUDE_DIR) -name '*.h' -a ! -name "symbols.h" -print ) \
+ $(shell find $(INCLUDE_DIR2) -name '*.h' -a ! -name "symbols.h" -print )
-EXAMPLES_SOURCE_DIR=../../examples
+EXAMPLES_SOURCE_DIR=$(top_srcdir)/examples
EXAMPLES_SOURCE_FILES=\
$(shell find $(EXAMPLES_SOURCE_DIR) -name '*.c' -print) \
$(shell find $(EXAMPLES_SOURCE_DIR) -name '*.xml' -print)
-# do nothing for all
-all:
+#
+# This script removes gtkdoc crap from final html
+#
+REMOVE_GTKDOCLINK=$(top_srcdir)/scripts/remove-gtkdoclink.pl
+
+# docs is legacy
+all: docs
+
-docs: sgml html clean-sources
+# if build API docs, then we also have xsltproc
+if BUILD_API_DOCS
+docs: html-cleanup
+
+else
+docs:
+ @( \
+ echo "Copying api-docs..."; \
+ if [ z"$(srcdir)" != z"$(builddir)" ]; \
+ then \
+ $(CP) -ru $(SOURCE_FILES_TO_COPY) $(builddir)/ ; \
+ fi \
+ )
+endif
+
+html-cleanup: html
+ ( echo "Cleaning up result files"; \
+ $(PERL) $(REMOVE_GTKDOCLINK) `find . -name "*.html" -print` \
+ )
# need to cleanup "bad" chars
-html: sgml xmlsec.sgml xmlsec-index
- gtkdoc-mkhtml xmlsec xmlsec.sgml
+html: sgml $(MAIN_SGML_FILE) $(SGML_CHAPTERS_DIR) xmlsec-index
+ $(GTKDOC_MKHTML) xmlsec $(MAIN_SGML_FILE)
+
+$(SGML_CHAPTERS_DIR): $(SGML_CHAPTERS_SRC_DIR) $(SGML_CHAPTERS_DIR)/.sentinel
+ $(CP) -ru $(SGML_CHAPTERS_SRC_DIR)/* $(SGML_CHAPTERS_DIR)
+$(MAIN_SGML_FILE): $(MAIN_SGML_SRC_FILE)
+ $(CP) -u $(MAIN_SGML_SRC_FILE) $(MAIN_SGML_FILE)
#
# Prepeare sgml files from sources for each library. We are also
# doing some "magic" here by automatically adding links to XML DSig and
# XML Enc specification, we also remove "Ptr" from the end of the link
-# targets to make more references
-#
-sgml: templates
- gtkdoc-mkdb --module=xmlsec \
- --main-sgml-file=xmlsec.sgml \
- --source-dir=$(DOC_SOURCE_DIR)/src/base \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/base
- gtkdoc-mkdb --module=xmlsec-openssl \
- --main-sgml-file=xmlsec-openssl.sgml \
- --tmpl-dir=tmpl/openssl \
- --output-dir=sgml/openssl \
- --source-dir=$(DOC_SOURCE_DIR)/src/openssl \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/openssl
- gtkdoc-mkdb --module=xmlsec-gnutls \
- --main-sgml-file=xmlsec-gnutls.sgml \
- --tmpl-dir=tmpl/gnutls \
- --output-dir=sgml/gnutls \
- --source-dir=$(DOC_SOURCE_DIR)/src/gnutls \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gnutls
- gtkdoc-mkdb --module=xmlsec-gcrypt \
- --main-sgml-file=xmlsec-gcrypt.sgml \
- --tmpl-dir=tmpl/gcrypt \
- --output-dir=sgml/gcrypt \
- --source-dir=$(DOC_SOURCE_DIR)/src/gcrypt \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gcrypt
- gtkdoc-mkdb --module=xmlsec-nss \
- --main-sgml-file=xmlsec-nss.sgml \
- --tmpl-dir=tmpl/nss \
- --output-dir=sgml/nss \
- --source-dir=$(DOC_SOURCE_DIR)/src/nss \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/nss
- gtkdoc-mkdb --module=xmlsec-mscrypto \
- --main-sgml-file=xmlsec-mscrypto.sgml \
- --tmpl-dir=tmpl/mscrypto \
- --output-dir=sgml/mscrypto \
- --source-dir=$(DOC_SOURCE_DIR)/src/mscrypto \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/mscrypto
- (for i in `find sgml -name "*.sgml" -print` ; do \
- cat $$i | \
- sed 's!\(<dsig:\)\([^/]*\)\(\/>\)!<ulink URL=\"http://www.w3.org/TR/xmldsig-core/#sec-\2\">\1\2\3</ulink>!g' | \
- sed 's!\(<enc:\)\([^/]*\)\(\/>\)!<ulink URL=\"http://www.w3.org/TR/xmlenc-core/#sec-\2\">\1\2\3</ulink>!g' | \
- sed 's!linkend=\"\(.*\)Ptr\"!linkend=\"\1\"!g' > \
- $$i.tmp; \
- mv -f $$i.tmp $$i; \
- done);
+# targets to make more references.
+#
+# We also fix a bunch of stupid errors from gtkdoc
+#
+sgml: sgml-base
+ (for i in `find $(SGML_DIR) -name "*.sgml" -print` ; do \
+ echo "Fixing up '$$i'" ; \
+ cat $$i | \
+ sed 's!\(<dsig:\)\([^/]*\)\(\/>\)!\<dsig:\2\/\>!g' | \
+ sed 's!\(<enc:\)\([^/]*\)\(\/>\)!\<enc:\2\/\>!g' | \
+ sed 's!\(<dsig:\)\(\w*\)\(>\)!\<dsig:\2\/\>!g' | \
+ sed 's!\(<enc:\)\(\w*\)\(>\)!\<enc:\2\/\>!g' | \
+ sed 's!\(<dsig:\)\([^/]*\)\(\/>\)!<ulink URL=\"http://www.w3.org/TR/xmldsig-core/#sec-\2\">\1\2\3</ulink>!g' | \
+ sed 's!\(<enc:\)\([^/]*\)\(\/>\)!<ulink URL=\"http://www.w3.org/TR/xmlenc-core/#sec-\2\">\1\2\3</ulink>!g' | \
+ sed 's!<para \/>!<para></para>!g' | \
+ sed 's!linkend=\"\(.*\)Ptr\"!linkend=\"\1\"!g' | \
+ sed 's!<colspec [^/]*\/>!!g' | \
+ sed 's!<programlisting language="C"!<programlisting!g' | \
+ $(PERL) -pe 's!title>\n!title>!g' | \
+ $(PERL) -pe 's!title>\n!title>!g' | \
+ $(PERL) -pe 's!<\/title><\/refsect1>\n!<\/title><para><\/para><\/refsect1>!g' | \
+ $(PERL) -pe 's!para>\n!para>!g' > \
+ $$i.tmp; \
+ mv -f $$i.tmp $$i; \
+ done);
+
+sgml-base: templates $(SGML_DIR)/.sentinel
+ $(GTKDOC_MKDB) --module=xmlsec \
+ --main-sgml-file=$(SGML_DIR)/xmlsec-base.sgml \
+ --output-dir=$(SGML_DIR)/ \
+ --tmpl-dir=$(TMPL_DIR)/base \
+ --source-dir=$(SOURCE_CODE_DIR)/src/base \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/base
+ $(GTKDOC_MKDB) --module=xmlsec-openssl \
+ --main-sgml-file=$(SGML_DIR)/xmlsec-openssl.sgml \
+ --tmpl-dir=$(TMPL_DIR)/openssl \
+ --output-dir=$(SGML_DIR)/openssl \
+ --source-dir=$(SOURCE_CODE_DIR)/src/openssl \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/openssl
+ $(GTKDOC_MKDB) --module=xmlsec-gnutls \
+ --main-sgml-file=$(SGML_DIR)/xmlsec-gnutls.sgml \
+ --tmpl-dir=$(TMPL_DIR)/gnutls \
+ --output-dir=$(SGML_DIR)/gnutls \
+ --source-dir=$(SOURCE_CODE_DIR)/src/gnutls \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/gnutls
+ $(GTKDOC_MKDB) --module=xmlsec-gcrypt \
+ --main-sgml-file=$(SGML_DIR)/xmlsec-gcrypt.sgml \
+ --tmpl-dir=$(TMPL_DIR)/gcrypt \
+ --output-dir=$(SGML_DIR)/gcrypt \
+ --source-dir=$(SOURCE_CODE_DIR)/src/gcrypt \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/gcrypt
+ $(GTKDOC_MKDB) --module=xmlsec-nss \
+ --main-sgml-file=$(SGML_DIR)/xmlsec-nss.sgml \
+ --tmpl-dir=$(TMPL_DIR)/nss \
+ --output-dir=$(SGML_DIR)/nss \
+ --source-dir=$(SOURCE_CODE_DIR)/src/nss \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/nss
+ $(GTKDOC_MKDB) --module=xmlsec-mscrypto \
+ --main-sgml-file=$(SGML_DIR)/xmlsec-mscrypto.sgml \
+ --tmpl-dir=$(TMPL_DIR)/mscrypto \
+ --output-dir=$(SGML_DIR)/mscrypto \
+ --source-dir=$(SOURCE_CODE_DIR)/src/mscrypto \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/mscrypto
+
+templates: scan templates-copy
+ $(GTKDOC_MKTMPL) --module=xmlsec \
+ --output-dir=$(TMPL_DIR)/base
+ $(GTKDOC_MKTMPL) --module=xmlsec-openssl \
+ --output-dir=$(TMPL_DIR)/openssl
+ $(GTKDOC_MKTMPL) --module=xmlsec-gnutls \
+ --output-dir=$(TMPL_DIR)/gnutls
+ $(GTKDOC_MKTMPL) --module=xmlsec-gcrypt \
+ --output-dir=$(TMPL_DIR)/gcrypt
+ $(GTKDOC_MKTMPL) --module=xmlsec-nss \
+ --output-dir=$(TMPL_DIR)/nss
+ $(GTKDOC_MKTMPL) --module=xmlsec-mscrypto \
+ --output-dir=$(TMPL_DIR)/mscrypto
+
+# make sure to run chmod since we will update templates
+templates-copy: $(TMPL_SRC_DIR) $(TMPL_DIR)/.sentinel
+ @echo "Copying original template files into '$(TMPL_DIR)' ..."
+ ( if [ z"$(TMPL_DIR)" != z"$(TMPL_SRC_DIR)" ] ; then \
+ $(CP) -ru $(TMPL_SRC_DIR)/* $(TMPL_DIR)/ ; \
+ fi ; )
+ chmod -R u+w $(TMPL_DIR)
-templates: scan
- gtkdoc-mktmpl --module=xmlsec
- gtkdoc-mktmpl --module=xmlsec-openssl \
- --output-dir=tmpl/openssl
- gtkdoc-mktmpl --module=xmlsec-gnutls \
- --output-dir=tmpl/gnutls
- gtkdoc-mktmpl --module=xmlsec-gcrypt \
- --output-dir=tmpl/gcrypt
- gtkdoc-mktmpl --module=xmlsec-nss \
- --output-dir=tmpl/nss
- gtkdoc-mktmpl --module=xmlsec-mscrypto \
- --output-dir=tmpl/mscrypto
-
-scan: doc_sources example_sources
- gtkdoc-scan --module=xmlsec \
+scan: SOURCE_CODEs example_sources
+ $(GTKDOC_SCAN) --module=xmlsec \
--rebuild-sections \
- --source-dir=$(DOC_SOURCE_DIR)/src/base \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/base
- gtkdoc-scan --module=xmlsec-openssl \
+ --output-dir=$(SCAN_DIR) \
+ --source-dir=$(SOURCE_CODE_DIR)/src/base \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/base
+ $(GTKDOC_SCAN) --module=xmlsec-openssl \
--rebuild-sections \
- --source-dir=$(DOC_SOURCE_DIR)/src/openssl \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/openssl
- gtkdoc-scan --module=xmlsec-gnutls \
+ --output-dir=$(SCAN_DIR) \
+ --source-dir=$(SOURCE_CODE_DIR)/src/openssl \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/openssl
+ $(GTKDOC_SCAN) --module=xmlsec-gnutls \
--rebuild-sections \
- --source-dir=$(DOC_SOURCE_DIR)/src/gnutls \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gnutls
- gtkdoc-scan --module=xmlsec-gcrypt \
+ --output-dir=$(SCAN_DIR) \
+ --source-dir=$(SOURCE_CODE_DIR)/src/gnutls \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/gnutls
+ $(GTKDOC_SCAN) --module=xmlsec-gcrypt \
--rebuild-sections \
- --source-dir=$(DOC_SOURCE_DIR)/src/gcrypt \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gcrypt
- gtkdoc-scan --module=xmlsec-nss \
+ --output-dir=$(SCAN_DIR) \
+ --source-dir=$(SOURCE_CODE_DIR)/src/gcrypt \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/gcrypt
+ $(GTKDOC_SCAN) --module=xmlsec-nss \
--rebuild-sections \
- --source-dir=$(DOC_SOURCE_DIR)/src/nss \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/nss
- gtkdoc-scan --module=xmlsec-mscrypto \
+ --output-dir=$(SCAN_DIR) \
+ --source-dir=$(SOURCE_CODE_DIR)/src/nss \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/nss
+ $(GTKDOC_SCAN) --module=xmlsec-mscrypto \
--rebuild-sections \
- --source-dir=$(DOC_SOURCE_DIR)/src/mscrypto \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/mscrypto
+ --output-dir=$(SCAN_DIR) \
+ --source-dir=$(SOURCE_CODE_DIR)/src/mscrypto \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/mscrypto
#
# Prepare source files by coping them to "code" folder and
# removing XMLSEC_EXPORT_* stuff that makes gtkdoc crazy
#
-doc_sources: $(DOC_SOURCE_FILES)
- @(for i in $(DOC_SOURCE_FILES) ; do \
- folder_name=`echo $$i | sed 's#$(TOP)/##' | sed 's#/[^/]*$$##'`; \
- file_name=`echo $$i | sed 's#.*/##'`; \
- test -d $(DOC_SOURCE_DIR)/$$folder_name || mkdir -p $(DOC_SOURCE_DIR)/$$folder_name; \
- cat $$i | \
- sed 's/#if.*//' | \
- sed 's/#el.*//' | \
- sed 's/#end.*//' | \
- sed 's/XMLSEC_CRYPTO_EXPORT//' | \
- sed 's/XMLSEC_EXPORT_VAR//' | \
- sed 's/XMLSEC_EXPORT//' | \
- sed 's/XMLSEC_ERRORS_PRINTF_ATTRIBUTE//' > \
- $(DOC_SOURCE_DIR)/$$folder_name/$$file_name; \
+SOURCE_CODEs: $(SOURCE_CODE_FILES) $(SOURCE_CODE_DIR)/.sentinel SOURCE_CODEs_cleanup
+ @echo "Preprocessing source files into '$(SOURCE_CODE_DIR)' ..."
+ @mkdir -p $(SOURCE_CODE_DIR)/src/base $(SOURCE_CODE_DIR)/include/xmlsec/base
+ @( \
+ for i in $(SOURCE_CODE_FILES) ; do \
+ folder_name=`echo "$$i" | \
+ sed 's#$(top_srcdir)/##' | \
+ sed 's#$(top_builddir)/##' | \
+ sed 's#/[^/]*$$##'`; \
+ file_name=`echo "$$i" | \
+ sed 's#.*/##'`; \
+ mkdir -p "$(SOURCE_CODE_DIR)/$$folder_name"; \
+ cat "$$i" | \
+ sed 's/#if.*//' | \
+ sed 's/#el.*//' | \
+ sed 's/#end.*//' | \
+ sed 's/XMLSEC_CRYPTO_EXPORT//' | \
+ sed 's/XMLSEC_EXPORT_VAR//' | \
+ sed 's/XMLSEC_EXPORT//' | \
+ sed 's/XMLSEC_ERRORS_PRINTF_ATTRIBUTE//' > \
+ $(SOURCE_CODE_DIR)/$$folder_name/$$file_name; \
done);
- - at mkdir -p $(DOC_SOURCE_DIR)/src/base
- - at mv -f $(DOC_SOURCE_DIR)/src/*.c $(DOC_SOURCE_DIR)/src/base
- - at mkdir -p $(DOC_SOURCE_DIR)/include/xmlsec/base
- - at mv -f $(DOC_SOURCE_DIR)/include/xmlsec/*.h $(DOC_SOURCE_DIR)/include/xmlsec/base
- - at rm -f $(DOC_SOURCE_DIR)/include/xmlsec/*/symbols.h
+ - at mv -f $(SOURCE_CODE_DIR)/src/*.c $(SOURCE_CODE_DIR)/src/base
+ - at mv -f $(SOURCE_CODE_DIR)/include/xmlsec/*.h $(SOURCE_CODE_DIR)/include/xmlsec/base
+ - at rm -f $(SOURCE_CODE_DIR)/include/xmlsec/*/symbols.h
+
+SOURCE_CODEs_cleanup: $(SOURCE_CODE_DIR)/.sentinel
+ @rm -rf $(SOURCE_CODE_DIR)/*
#
# Create index for all functions. For macros and defines need to add -CAPS suffix
#
-xmlsec-index: scan
- @grep -h '<NAME>.*</NAME>' xmlsec-*decl.txt | \
+xmlsec-index: scan $(SGML_DIR)/.sentinel
+ @grep -h '<NAME>.*</NAME>' $(SCAN_DIR)/xmlsec-*decl.txt | \
grep -v '<NAME>extern</NAME>' | \
sort -u | \
sed 's#_#-#g' | \
sed 's#<NAME>\([^-]*\)-\([^<]*\)</NAME>#<listitem><para><link linkend=\"\1-\2-CAPS\">\1-\2</link></para></listitem>#g' | \
sed 's#<NAME>\([^<]*\)</NAME>#<listitem><para><link linkend=\"\1\">\1</link></para></listitem>#g' > \
- xmlsec-index.sgml
+ $(SGML_DIR)/xmlsec-index.sgml
#
# The following code converts C example file to sgml RefEntry files.
@@ -168,42 +267,60 @@ xmlsec-index: scan
# which is usually placed at the top of the file. Also all "unsafe" xml
# characters (<, >, &) are escaped.
#
-example_sources:
- @mkdir -p examples
+example_sources: $(EXAMPLES_DIR)/.sentinel
+ @echo "Preprocessing example source files into '$(EXAMPLES_DIR)' ..."
+ @rm -rf $(EXAMPLES_DIR)/*
@(for i in $(EXAMPLES_SOURCE_FILES) ; do \
file_name=`echo $$i | sed 's#.*/##' | sed 's#\..*$$##'`; \
file_ext=`echo $$i | sed 's#.*/##' | sed 's#.*\.##'`; \
echo Converting $$file_name.$$file_ext to $$file_name.sgml ...; \
file_title=`cat $$i | grep 'XML Security Library example: ' | sed 's#^.*: *##'`; \
echo "<sect2 id=\"xmlsec-example-$$file_name\" >" > \
- examples/$$file_name.sgml; \
+ $(EXAMPLES_DIR)/$$file_name.sgml; \
echo "<title>$$file_name.$$file_ext</title><para><informalexample><programlisting>" >> \
- examples/$$file_name.sgml; \
+ $(EXAMPLES_DIR)/$$file_name.sgml; \
cat $$i | \
sed "s#&#\&#g" | \
sed "s#<#\<#g" | \
sed "s#>#\>#g" >> \
- examples/$$file_name.sgml; \
+ $(EXAMPLES_DIR)/$$file_name.sgml; \
echo "</programlisting></informalexample></para></sect2>" >> \
- examples/$$file_name.sgml; \
+ $(EXAMPLES_DIR)/$$file_name.sgml; \
done);
-dist-hook:
- @cp -p $(srcdir)/*.html $(srcdir)/*.png $(srcdir)/*.sgml $(distdir)
-
-clean: clean-sources
- - at rm -rf $(DOC_SOURCE_DIR)
- - at rm -rf sgml/*~ sgml/*.bak
- - at rm -rf tmpl/*~ tmpl/*.bak
- - at rm -rf *~ *.bak *.hierarchy *.signals *-unused.txt *.stamp
-
-clean-sources:
- - at rm -rf code examples
+# A single pattern rule will create all appropriate folders as required
+# otherwise make (annoyingly) deletes it
+.PRECIOUS: %/.sentinel
+%/.sentinel:
+ @echo "Creating folder '${@D}' ..."
+ mkdir -p ${@D}
+ touch $@
+dist-hook:
+ @cp -p $(srcdir)/*.html $(srcdir)/*.png $(distdir)/
+ (for i in `find $(distdir) -name ".sentinel" -print` ; do \
+ echo "Removing some files '$$i' before dist ... " ; \
+ rm $$i ; \
+ done )
+ (for i in `find $(distdir) -name "*.sgml.bak" -print` ; do \
+ echo "Removing some files '$$i' before dist ... " ; \
+ rm "$$i" ; \
+ done ; )
+
clean-local:
- - at rm -rf *~ *.bak *.hierarchy *.signals *-unused.txt
+ -rm -rf $(SOURCE_CODE_DIR) $(EXAMPLES_DIR) $(SCAN_DIR)/*.txt $(SGML_DIR) $(XML_DIR)
+ -rm -f *.stamp *.types *.css index.sgml
+ ( if [ z"$(TMPL_SRC_DIR)" != z"$(TMPL_DIR)" ] && [ -d "$(TMPL_DIR)" ] ; then \
+ chmod -R u+w $(TMPL_DIR) && rm -rf $(TMPL_DIR) ; \
+ fi ; )
+ ( if [ z"$(builddir)" != z"$(srcdir)" ] ; then \
+ chmod -R u+w $(builddir)/src && rm -rf $(builddir)/src ; \
+ chmod -R u+w $(builddir)/images && rm -rf $(builddir)/images ; \
+ chmod -R u+w $(builddir)/*.png && rm -rf $(builddir)/*.png ; \
+ fi ; )
+
+distclean-local: clean-local
-maintainer-clean-local: clean
- - at rm *.html *.txt
- - at rm -rf `find sgml -name "*.sgml" -print`
+maintainer-clean-local: clean-local
+ -rm -f *.html
diff --git a/docs/api/Makefile.in b/docs/api/Makefile.in
index fb6d05f..a8a0639 100644
--- a/docs/api/Makefile.in
+++ b/docs/api/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -78,14 +88,14 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = docs/api
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -110,6 +120,7 @@ am__can_run_installinfo = \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -146,6 +157,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -165,6 +180,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -203,7 +219,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -219,7 +235,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -227,6 +242,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -246,6 +262,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -260,7 +277,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -275,6 +291,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -332,31 +349,59 @@ top_srcdir = @top_srcdir@
#
#
NULL =
-TOP = ../..
MODULE = xmlsec
-SOURCE_DIR = $(TOP)/src
-INCLUDE_DIR = $(TOP)/include
-SGML_CATALOG_FILES = /usr/share/sgml/docbook/sgml-dtd-3.0-1.0-8/catalog:/usr/share/sgml/openjade-1.3.1/catalog:/usr/share/sgml/docbook/dsssl-stylesheets/catalog
+SOURCE_DIR = $(top_srcdir)/src
+SOURCE_DIR2 = $(top_builddir)/src
+INCLUDE_DIR = $(top_srcdir)/include
+INCLUDE_DIR2 = $(top_builddir)/include
+SCAN_DIR = $(builddir)
+SGML_DIR = $(builddir)/sgml.tmp
+XML_DIR = $(builddir)/xml.tmp
+EXAMPLES_DIR = $(SGML_DIR)/examples
+SOURCE_CODE_DIR = $(builddir)/code
+
+# We need to copy some files to make gkdoc happy that
+# everything is in one folder
+TMPL_DIR = $(builddir)/tmpl
+TMPL_SRC_DIR = $(srcdir)/tmpl
+MAIN_SGML_FILE = $(SGML_DIR)/xmlsec-main.sgml
+MAIN_SGML_SRC_FILE = $(srcdir)/src/xmlsec.sgml
+SGML_CHAPTERS_DIR = $(SGML_DIR)/chapters
+SGML_CHAPTERS_SRC_DIR = $(srcdir)/src/chapters
EXTRA_DIST = \
- chapters \
- images \
+ $(TMPL_DIR) \
+ $(srcdir)/src \
+ $(srcdir)/images \
$(NULL)
+SOURCE_FILES_TO_COPY = \
+ $(srcdir)/src \
+ $(srcdir)/images \
+ $(srcdir)/*.html \
+ $(srcdir)/*.png \
+ $(NULL)
+
#
# We need to pre-process original source files
# because gtkdoc does not understand some C features
#
-DOC_SOURCE_DIR = ./code
-DOC_SOURCE_FILES = \
- $(shell find $(SOURCE_DIR) -name '*.c' -a ! -name "xkms*" -print ) \
- $(shell find $(INCLUDE_DIR) -name '*.h' -a ! -name "symbols.h" -a ! -name "xkms*" -print )
+SOURCE_CODE_FILES = \
+ $(shell find $(SOURCE_DIR) -name '*.c' -print ) \
+ $(shell find $(SOURCE_DIR2) -name '*.c' -print ) \
+ $(shell find $(INCLUDE_DIR) -name '*.h' -a ! -name "symbols.h" -print ) \
+ $(shell find $(INCLUDE_DIR2) -name '*.h' -a ! -name "symbols.h" -print )
-EXAMPLES_SOURCE_DIR = ../../examples
+EXAMPLES_SOURCE_DIR = $(top_srcdir)/examples
EXAMPLES_SOURCE_FILES = \
$(shell find $(EXAMPLES_SOURCE_DIR) -name '*.c' -print) \
$(shell find $(EXAMPLES_SOURCE_DIR) -name '*.xml' -print)
+
+#
+# This script removes gtkdoc crap from final html
+#
+REMOVE_GTKDOCLINK = $(top_srcdir)/scripts/remove-gtkdoclink.pl
all: all-am
.SUFFIXES:
@@ -372,7 +417,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/api/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu docs/api/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -470,11 +514,13 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
clean-am: clean-generic clean-libtool clean-local mostlyclean-am
distclean: distclean-am
-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-local
dvi: dvi-am
@@ -537,152 +583,215 @@ uninstall-am:
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
clean-local cscopelist-am ctags-am dist-hook distclean \
- distclean-generic distclean-libtool distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
+ distclean-generic distclean-libtool distclean-local distdir \
+ dvi dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic maintainer-clean-local mostlyclean \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags-am uninstall uninstall-am
+.PRECIOUS: Makefile
+
+
+# docs is legacy
+all: docs
+
+# if build API docs, then we also have xsltproc
+ at BUILD_API_DOCS_TRUE@docs: html-cleanup
-# do nothing for all
-all:
+ at BUILD_API_DOCS_FALSE@docs:
+ at BUILD_API_DOCS_FALSE@ @( \
+ at BUILD_API_DOCS_FALSE@ echo "Copying api-docs..."; \
+ at BUILD_API_DOCS_FALSE@ if [ z"$(srcdir)" != z"$(builddir)" ]; \
+ at BUILD_API_DOCS_FALSE@ then \
+ at BUILD_API_DOCS_FALSE@ $(CP) -ru $(SOURCE_FILES_TO_COPY) $(builddir)/ ; \
+ at BUILD_API_DOCS_FALSE@ fi \
+ at BUILD_API_DOCS_FALSE@ )
-docs: sgml html clean-sources
+html-cleanup: html
+ ( echo "Cleaning up result files"; \
+ $(PERL) $(REMOVE_GTKDOCLINK) `find . -name "*.html" -print` \
+ )
# need to cleanup "bad" chars
-html: sgml xmlsec.sgml xmlsec-index
- gtkdoc-mkhtml xmlsec xmlsec.sgml
+html: sgml $(MAIN_SGML_FILE) $(SGML_CHAPTERS_DIR) xmlsec-index
+ $(GTKDOC_MKHTML) xmlsec $(MAIN_SGML_FILE)
+$(SGML_CHAPTERS_DIR): $(SGML_CHAPTERS_SRC_DIR) $(SGML_CHAPTERS_DIR)/.sentinel
+ $(CP) -ru $(SGML_CHAPTERS_SRC_DIR)/* $(SGML_CHAPTERS_DIR)
+
+$(MAIN_SGML_FILE): $(MAIN_SGML_SRC_FILE)
+ $(CP) -u $(MAIN_SGML_SRC_FILE) $(MAIN_SGML_FILE)
#
# Prepeare sgml files from sources for each library. We are also
# doing some "magic" here by automatically adding links to XML DSig and
# XML Enc specification, we also remove "Ptr" from the end of the link
-# targets to make more references
+# targets to make more references.
#
-sgml: templates
- gtkdoc-mkdb --module=xmlsec \
- --main-sgml-file=xmlsec.sgml \
- --source-dir=$(DOC_SOURCE_DIR)/src/base \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/base
- gtkdoc-mkdb --module=xmlsec-openssl \
- --main-sgml-file=xmlsec-openssl.sgml \
- --tmpl-dir=tmpl/openssl \
- --output-dir=sgml/openssl \
- --source-dir=$(DOC_SOURCE_DIR)/src/openssl \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/openssl
- gtkdoc-mkdb --module=xmlsec-gnutls \
- --main-sgml-file=xmlsec-gnutls.sgml \
- --tmpl-dir=tmpl/gnutls \
- --output-dir=sgml/gnutls \
- --source-dir=$(DOC_SOURCE_DIR)/src/gnutls \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gnutls
- gtkdoc-mkdb --module=xmlsec-gcrypt \
- --main-sgml-file=xmlsec-gcrypt.sgml \
- --tmpl-dir=tmpl/gcrypt \
- --output-dir=sgml/gcrypt \
- --source-dir=$(DOC_SOURCE_DIR)/src/gcrypt \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gcrypt
- gtkdoc-mkdb --module=xmlsec-nss \
- --main-sgml-file=xmlsec-nss.sgml \
- --tmpl-dir=tmpl/nss \
- --output-dir=sgml/nss \
- --source-dir=$(DOC_SOURCE_DIR)/src/nss \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/nss
- gtkdoc-mkdb --module=xmlsec-mscrypto \
- --main-sgml-file=xmlsec-mscrypto.sgml \
- --tmpl-dir=tmpl/mscrypto \
- --output-dir=sgml/mscrypto \
- --source-dir=$(DOC_SOURCE_DIR)/src/mscrypto \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/mscrypto
- (for i in `find sgml -name "*.sgml" -print` ; do \
- cat $$i | \
- sed 's!\(<dsig:\)\([^/]*\)\(\/>\)!<ulink URL=\"http://www.w3.org/TR/xmldsig-core/#sec-\2\">\1\2\3</ulink>!g' | \
- sed 's!\(<enc:\)\([^/]*\)\(\/>\)!<ulink URL=\"http://www.w3.org/TR/xmlenc-core/#sec-\2\">\1\2\3</ulink>!g' | \
- sed 's!linkend=\"\(.*\)Ptr\"!linkend=\"\1\"!g' > \
- $$i.tmp; \
- mv -f $$i.tmp $$i; \
- done);
-
-templates: scan
- gtkdoc-mktmpl --module=xmlsec
- gtkdoc-mktmpl --module=xmlsec-openssl \
- --output-dir=tmpl/openssl
- gtkdoc-mktmpl --module=xmlsec-gnutls \
- --output-dir=tmpl/gnutls
- gtkdoc-mktmpl --module=xmlsec-gcrypt \
- --output-dir=tmpl/gcrypt
- gtkdoc-mktmpl --module=xmlsec-nss \
- --output-dir=tmpl/nss
- gtkdoc-mktmpl --module=xmlsec-mscrypto \
- --output-dir=tmpl/mscrypto
-
-scan: doc_sources example_sources
- gtkdoc-scan --module=xmlsec \
+# We also fix a bunch of stupid errors from gtkdoc
+#
+sgml: sgml-base
+ (for i in `find $(SGML_DIR) -name "*.sgml" -print` ; do \
+ echo "Fixing up '$$i'" ; \
+ cat $$i | \
+ sed 's!\(<dsig:\)\([^/]*\)\(\/>\)!\<dsig:\2\/\>!g' | \
+ sed 's!\(<enc:\)\([^/]*\)\(\/>\)!\<enc:\2\/\>!g' | \
+ sed 's!\(<dsig:\)\(\w*\)\(>\)!\<dsig:\2\/\>!g' | \
+ sed 's!\(<enc:\)\(\w*\)\(>\)!\<enc:\2\/\>!g' | \
+ sed 's!\(<dsig:\)\([^/]*\)\(\/>\)!<ulink URL=\"http://www.w3.org/TR/xmldsig-core/#sec-\2\">\1\2\3</ulink>!g' | \
+ sed 's!\(<enc:\)\([^/]*\)\(\/>\)!<ulink URL=\"http://www.w3.org/TR/xmlenc-core/#sec-\2\">\1\2\3</ulink>!g' | \
+ sed 's!<para \/>!<para></para>!g' | \
+ sed 's!linkend=\"\(.*\)Ptr\"!linkend=\"\1\"!g' | \
+ sed 's!<colspec [^/]*\/>!!g' | \
+ sed 's!<programlisting language="C"!<programlisting!g' | \
+ $(PERL) -pe 's!title>\n!title>!g' | \
+ $(PERL) -pe 's!title>\n!title>!g' | \
+ $(PERL) -pe 's!<\/title><\/refsect1>\n!<\/title><para><\/para><\/refsect1>!g' | \
+ $(PERL) -pe 's!para>\n!para>!g' > \
+ $$i.tmp; \
+ mv -f $$i.tmp $$i; \
+ done);
+
+sgml-base: templates $(SGML_DIR)/.sentinel
+ $(GTKDOC_MKDB) --module=xmlsec \
+ --main-sgml-file=$(SGML_DIR)/xmlsec-base.sgml \
+ --output-dir=$(SGML_DIR)/ \
+ --tmpl-dir=$(TMPL_DIR)/base \
+ --source-dir=$(SOURCE_CODE_DIR)/src/base \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/base
+ $(GTKDOC_MKDB) --module=xmlsec-openssl \
+ --main-sgml-file=$(SGML_DIR)/xmlsec-openssl.sgml \
+ --tmpl-dir=$(TMPL_DIR)/openssl \
+ --output-dir=$(SGML_DIR)/openssl \
+ --source-dir=$(SOURCE_CODE_DIR)/src/openssl \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/openssl
+ $(GTKDOC_MKDB) --module=xmlsec-gnutls \
+ --main-sgml-file=$(SGML_DIR)/xmlsec-gnutls.sgml \
+ --tmpl-dir=$(TMPL_DIR)/gnutls \
+ --output-dir=$(SGML_DIR)/gnutls \
+ --source-dir=$(SOURCE_CODE_DIR)/src/gnutls \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/gnutls
+ $(GTKDOC_MKDB) --module=xmlsec-gcrypt \
+ --main-sgml-file=$(SGML_DIR)/xmlsec-gcrypt.sgml \
+ --tmpl-dir=$(TMPL_DIR)/gcrypt \
+ --output-dir=$(SGML_DIR)/gcrypt \
+ --source-dir=$(SOURCE_CODE_DIR)/src/gcrypt \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/gcrypt
+ $(GTKDOC_MKDB) --module=xmlsec-nss \
+ --main-sgml-file=$(SGML_DIR)/xmlsec-nss.sgml \
+ --tmpl-dir=$(TMPL_DIR)/nss \
+ --output-dir=$(SGML_DIR)/nss \
+ --source-dir=$(SOURCE_CODE_DIR)/src/nss \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/nss
+ $(GTKDOC_MKDB) --module=xmlsec-mscrypto \
+ --main-sgml-file=$(SGML_DIR)/xmlsec-mscrypto.sgml \
+ --tmpl-dir=$(TMPL_DIR)/mscrypto \
+ --output-dir=$(SGML_DIR)/mscrypto \
+ --source-dir=$(SOURCE_CODE_DIR)/src/mscrypto \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/mscrypto
+
+templates: scan templates-copy
+ $(GTKDOC_MKTMPL) --module=xmlsec \
+ --output-dir=$(TMPL_DIR)/base
+ $(GTKDOC_MKTMPL) --module=xmlsec-openssl \
+ --output-dir=$(TMPL_DIR)/openssl
+ $(GTKDOC_MKTMPL) --module=xmlsec-gnutls \
+ --output-dir=$(TMPL_DIR)/gnutls
+ $(GTKDOC_MKTMPL) --module=xmlsec-gcrypt \
+ --output-dir=$(TMPL_DIR)/gcrypt
+ $(GTKDOC_MKTMPL) --module=xmlsec-nss \
+ --output-dir=$(TMPL_DIR)/nss
+ $(GTKDOC_MKTMPL) --module=xmlsec-mscrypto \
+ --output-dir=$(TMPL_DIR)/mscrypto
+
+# make sure to run chmod since we will update templates
+templates-copy: $(TMPL_SRC_DIR) $(TMPL_DIR)/.sentinel
+ @echo "Copying original template files into '$(TMPL_DIR)' ..."
+ ( if [ z"$(TMPL_DIR)" != z"$(TMPL_SRC_DIR)" ] ; then \
+ $(CP) -ru $(TMPL_SRC_DIR)/* $(TMPL_DIR)/ ; \
+ fi ; )
+ chmod -R u+w $(TMPL_DIR)
+
+scan: SOURCE_CODEs example_sources
+ $(GTKDOC_SCAN) --module=xmlsec \
--rebuild-sections \
- --source-dir=$(DOC_SOURCE_DIR)/src/base \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/base
- gtkdoc-scan --module=xmlsec-openssl \
+ --output-dir=$(SCAN_DIR) \
+ --source-dir=$(SOURCE_CODE_DIR)/src/base \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/base
+ $(GTKDOC_SCAN) --module=xmlsec-openssl \
--rebuild-sections \
- --source-dir=$(DOC_SOURCE_DIR)/src/openssl \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/openssl
- gtkdoc-scan --module=xmlsec-gnutls \
+ --output-dir=$(SCAN_DIR) \
+ --source-dir=$(SOURCE_CODE_DIR)/src/openssl \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/openssl
+ $(GTKDOC_SCAN) --module=xmlsec-gnutls \
--rebuild-sections \
- --source-dir=$(DOC_SOURCE_DIR)/src/gnutls \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gnutls
- gtkdoc-scan --module=xmlsec-gcrypt \
+ --output-dir=$(SCAN_DIR) \
+ --source-dir=$(SOURCE_CODE_DIR)/src/gnutls \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/gnutls
+ $(GTKDOC_SCAN) --module=xmlsec-gcrypt \
--rebuild-sections \
- --source-dir=$(DOC_SOURCE_DIR)/src/gcrypt \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gcrypt
- gtkdoc-scan --module=xmlsec-nss \
+ --output-dir=$(SCAN_DIR) \
+ --source-dir=$(SOURCE_CODE_DIR)/src/gcrypt \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/gcrypt
+ $(GTKDOC_SCAN) --module=xmlsec-nss \
--rebuild-sections \
- --source-dir=$(DOC_SOURCE_DIR)/src/nss \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/nss
- gtkdoc-scan --module=xmlsec-mscrypto \
+ --output-dir=$(SCAN_DIR) \
+ --source-dir=$(SOURCE_CODE_DIR)/src/nss \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/nss
+ $(GTKDOC_SCAN) --module=xmlsec-mscrypto \
--rebuild-sections \
- --source-dir=$(DOC_SOURCE_DIR)/src/mscrypto \
- --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/mscrypto
+ --output-dir=$(SCAN_DIR) \
+ --source-dir=$(SOURCE_CODE_DIR)/src/mscrypto \
+ --source-dir=$(SOURCE_CODE_DIR)/include/xmlsec/mscrypto
#
# Prepare source files by coping them to "code" folder and
# removing XMLSEC_EXPORT_* stuff that makes gtkdoc crazy
#
-doc_sources: $(DOC_SOURCE_FILES)
- @(for i in $(DOC_SOURCE_FILES) ; do \
- folder_name=`echo $$i | sed 's#$(TOP)/##' | sed 's#/[^/]*$$##'`; \
- file_name=`echo $$i | sed 's#.*/##'`; \
- test -d $(DOC_SOURCE_DIR)/$$folder_name || mkdir -p $(DOC_SOURCE_DIR)/$$folder_name; \
- cat $$i | \
- sed 's/#if.*//' | \
- sed 's/#el.*//' | \
- sed 's/#end.*//' | \
- sed 's/XMLSEC_CRYPTO_EXPORT//' | \
- sed 's/XMLSEC_EXPORT_VAR//' | \
- sed 's/XMLSEC_EXPORT//' | \
- sed 's/XMLSEC_ERRORS_PRINTF_ATTRIBUTE//' > \
- $(DOC_SOURCE_DIR)/$$folder_name/$$file_name; \
+SOURCE_CODEs: $(SOURCE_CODE_FILES) $(SOURCE_CODE_DIR)/.sentinel SOURCE_CODEs_cleanup
+ @echo "Preprocessing source files into '$(SOURCE_CODE_DIR)' ..."
+ @mkdir -p $(SOURCE_CODE_DIR)/src/base $(SOURCE_CODE_DIR)/include/xmlsec/base
+ @( \
+ for i in $(SOURCE_CODE_FILES) ; do \
+ folder_name=`echo "$$i" | \
+ sed 's#$(top_srcdir)/##' | \
+ sed 's#$(top_builddir)/##' | \
+ sed 's#/[^/]*$$##'`; \
+ file_name=`echo "$$i" | \
+ sed 's#.*/##'`; \
+ mkdir -p "$(SOURCE_CODE_DIR)/$$folder_name"; \
+ cat "$$i" | \
+ sed 's/#if.*//' | \
+ sed 's/#el.*//' | \
+ sed 's/#end.*//' | \
+ sed 's/XMLSEC_CRYPTO_EXPORT//' | \
+ sed 's/XMLSEC_EXPORT_VAR//' | \
+ sed 's/XMLSEC_EXPORT//' | \
+ sed 's/XMLSEC_ERRORS_PRINTF_ATTRIBUTE//' > \
+ $(SOURCE_CODE_DIR)/$$folder_name/$$file_name; \
done);
- - at mkdir -p $(DOC_SOURCE_DIR)/src/base
- - at mv -f $(DOC_SOURCE_DIR)/src/*.c $(DOC_SOURCE_DIR)/src/base
- - at mkdir -p $(DOC_SOURCE_DIR)/include/xmlsec/base
- - at mv -f $(DOC_SOURCE_DIR)/include/xmlsec/*.h $(DOC_SOURCE_DIR)/include/xmlsec/base
- - at rm -f $(DOC_SOURCE_DIR)/include/xmlsec/*/symbols.h
+ - at mv -f $(SOURCE_CODE_DIR)/src/*.c $(SOURCE_CODE_DIR)/src/base
+ - at mv -f $(SOURCE_CODE_DIR)/include/xmlsec/*.h $(SOURCE_CODE_DIR)/include/xmlsec/base
+ - at rm -f $(SOURCE_CODE_DIR)/include/xmlsec/*/symbols.h
+
+SOURCE_CODEs_cleanup: $(SOURCE_CODE_DIR)/.sentinel
+ @rm -rf $(SOURCE_CODE_DIR)/*
#
# Create index for all functions. For macros and defines need to add -CAPS suffix
#
-xmlsec-index: scan
- @grep -h '<NAME>.*</NAME>' xmlsec-*decl.txt | \
+xmlsec-index: scan $(SGML_DIR)/.sentinel
+ @grep -h '<NAME>.*</NAME>' $(SCAN_DIR)/xmlsec-*decl.txt | \
grep -v '<NAME>extern</NAME>' | \
sort -u | \
sed 's#_#-#g' | \
sed 's#<NAME>\([^-]*\)-\([^<]*\)</NAME>#<listitem><para><link linkend=\"\1-\2-CAPS\">\1-\2</link></para></listitem>#g' | \
sed 's#<NAME>\([^<]*\)</NAME>#<listitem><para><link linkend=\"\1\">\1</link></para></listitem>#g' > \
- xmlsec-index.sgml
+ $(SGML_DIR)/xmlsec-index.sgml
#
# The following code converts C example file to sgml RefEntry files.
@@ -690,44 +799,62 @@ xmlsec-index: scan
# which is usually placed at the top of the file. Also all "unsafe" xml
# characters (<, >, &) are escaped.
#
-example_sources:
- @mkdir -p examples
+example_sources: $(EXAMPLES_DIR)/.sentinel
+ @echo "Preprocessing example source files into '$(EXAMPLES_DIR)' ..."
+ @rm -rf $(EXAMPLES_DIR)/*
@(for i in $(EXAMPLES_SOURCE_FILES) ; do \
file_name=`echo $$i | sed 's#.*/##' | sed 's#\..*$$##'`; \
file_ext=`echo $$i | sed 's#.*/##' | sed 's#.*\.##'`; \
echo Converting $$file_name.$$file_ext to $$file_name.sgml ...; \
file_title=`cat $$i | grep 'XML Security Library example: ' | sed 's#^.*: *##'`; \
echo "<sect2 id=\"xmlsec-example-$$file_name\" >" > \
- examples/$$file_name.sgml; \
+ $(EXAMPLES_DIR)/$$file_name.sgml; \
echo "<title>$$file_name.$$file_ext</title><para><informalexample><programlisting>" >> \
- examples/$$file_name.sgml; \
+ $(EXAMPLES_DIR)/$$file_name.sgml; \
cat $$i | \
sed "s#&#\&#g" | \
sed "s#<#\<#g" | \
sed "s#>#\>#g" >> \
- examples/$$file_name.sgml; \
+ $(EXAMPLES_DIR)/$$file_name.sgml; \
echo "</programlisting></informalexample></para></sect2>" >> \
- examples/$$file_name.sgml; \
+ $(EXAMPLES_DIR)/$$file_name.sgml; \
done);
-dist-hook:
- @cp -p $(srcdir)/*.html $(srcdir)/*.png $(srcdir)/*.sgml $(distdir)
-
-clean: clean-sources
- - at rm -rf $(DOC_SOURCE_DIR)
- - at rm -rf sgml/*~ sgml/*.bak
- - at rm -rf tmpl/*~ tmpl/*.bak
- - at rm -rf *~ *.bak *.hierarchy *.signals *-unused.txt *.stamp
+# A single pattern rule will create all appropriate folders as required
+# otherwise make (annoyingly) deletes it
+.PRECIOUS: %/.sentinel
+%/.sentinel:
+ @echo "Creating folder '${@D}' ..."
+ mkdir -p ${@D}
+ touch $@
-clean-sources:
- - at rm -rf code examples
+dist-hook:
+ @cp -p $(srcdir)/*.html $(srcdir)/*.png $(distdir)/
+ (for i in `find $(distdir) -name ".sentinel" -print` ; do \
+ echo "Removing some files '$$i' before dist ... " ; \
+ rm $$i ; \
+ done )
+ (for i in `find $(distdir) -name "*.sgml.bak" -print` ; do \
+ echo "Removing some files '$$i' before dist ... " ; \
+ rm "$$i" ; \
+ done ; )
clean-local:
- - at rm -rf *~ *.bak *.hierarchy *.signals *-unused.txt
-
-maintainer-clean-local: clean
- - at rm *.html *.txt
- - at rm -rf `find sgml -name "*.sgml" -print`
+ -rm -rf $(SOURCE_CODE_DIR) $(EXAMPLES_DIR) $(SCAN_DIR)/*.txt $(SGML_DIR) $(XML_DIR)
+ -rm -f *.stamp *.types *.css index.sgml
+ ( if [ z"$(TMPL_SRC_DIR)" != z"$(TMPL_DIR)" ] && [ -d "$(TMPL_DIR)" ] ; then \
+ chmod -R u+w $(TMPL_DIR) && rm -rf $(TMPL_DIR) ; \
+ fi ; )
+ ( if [ z"$(builddir)" != z"$(srcdir)" ] ; then \
+ chmod -R u+w $(builddir)/src && rm -rf $(builddir)/src ; \
+ chmod -R u+w $(builddir)/images && rm -rf $(builddir)/images ; \
+ chmod -R u+w $(builddir)/*.png && rm -rf $(builddir)/*.png ; \
+ fi ; )
+
+distclean-local: clean-local
+
+maintainer-clean-local: clean-local
+ -rm -f *.html
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/docs/api/home.png b/docs/api/home.png
index 1700361..28c2e27 100644
Binary files a/docs/api/home.png and b/docs/api/home.png differ
diff --git a/docs/api/index.html b/docs/api/index.html
index b6d8133..6260bf1 100644
--- a/docs/api/index.html
+++ b/docs/api/index.html
@@ -4,7 +4,6 @@
<title>XML Security Library Reference Manual</title>
<meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.79">
<link rel="NEXT" title="XML Security Library Tutorial" href="xmlsec-notes.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -34,8 +33,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
diff --git a/docs/api/index.sgml b/docs/api/index.sgml
deleted file mode 100644
index 4c098fa..0000000
--- a/docs/api/index.sgml
+++ /dev/null
@@ -1,43 +0,0 @@
-<ANCHOR id ="XMLSEC-APP" href="xmlsec/xmlsec-app.html">
-<ANCHOR id ="XMLSEC-BASE64" href="xmlsec/xmlsec-base64.html">
-<ANCHOR id ="XMLSEC-BN" href="xmlsec/xmlsec-bn.html">
-<ANCHOR id ="XMLSEC-BUFFER" href="xmlsec/xmlsec-buffer.html">
-<ANCHOR id ="XMLSEC-DL" href="xmlsec/xmlsec-dl.html">
-<ANCHOR id ="XMLSEC-ERRORS" href="xmlsec/xmlsec-errors.html">
-<ANCHOR id ="XMLSEC-IO" href="xmlsec/xmlsec-io.html">
-<ANCHOR id ="XMLSEC-KEYINFO" href="xmlsec/xmlsec-keyinfo.html">
-<ANCHOR id ="XMLSEC-KEYSDATA" href="xmlsec/xmlsec-keysdata.html">
-<ANCHOR id ="XMLSEC-KEYS" href="xmlsec/xmlsec-keys.html">
-<ANCHOR id ="XMLSEC-KEYSMNGR" href="xmlsec/xmlsec-keysmngr.html">
-<ANCHOR id ="XMLSEC-LIST" href="xmlsec/xmlsec-list.html">
-<ANCHOR id ="XMLSEC-MEMBUF" href="xmlsec/xmlsec-membuf.html">
-<ANCHOR id ="XMLSEC-NODESET" href="xmlsec/xmlsec-nodeset.html">
-<ANCHOR id ="XMLSEC-PARSER" href="xmlsec/xmlsec-parser.html">
-<ANCHOR id ="XMLSEC-TEMPLATES" href="xmlsec/xmlsec-templates.html">
-<ANCHOR id ="XMLSEC-TRANSFORMS" href="xmlsec/xmlsec-transforms.html">
-<ANCHOR id ="XMLSEC-VERSION" href="xmlsec/xmlsec-version.html">
-<ANCHOR id ="XMLSEC-XMLDSIG" href="xmlsec/xmlsec-xmldsig.html">
-<ANCHOR id ="XMLSEC-XMLENC" href="xmlsec/xmlsec-xmlenc.html">
-<ANCHOR id ="XMLSEC-XMLSEC" href="xmlsec/xmlsec-xmlsec.html">
-<ANCHOR id ="XMLSEC-XMLTREE" href="xmlsec/xmlsec-xmltree.html">
-<ANCHOR id ="XMLSEC-X509" href="xmlsec/xmlsec-x509.html">
-<ANCHOR id ="XMLSEC-OPENSSL-APP" href="xmlsec/xmlsec-openssl-app.html">
-<ANCHOR id ="XMLSEC-OPENSSL-BN" href="xmlsec/xmlsec-openssl-bn.html">
-<ANCHOR id ="XMLSEC-OPENSSL-CRYPTO" href="xmlsec/xmlsec-openssl-crypto.html">
-<ANCHOR id ="XMLSEC-OPENSSL-EVP" href="xmlsec/xmlsec-openssl-evp.html">
-<ANCHOR id ="XMLSEC-OPENSSL-X509" href="xmlsec/xmlsec-openssl-x509.html">
-<ANCHOR id ="XMLSEC-GNUTLS-APP" href="xmlsec/xmlsec-gnutls-app.html">
-<ANCHOR id ="XMLSEC-GNUTLS-CRYPTO" href="xmlsec/xmlsec-gnutls-crypto.html">
-<ANCHOR id ="XMLSEC-GCRYPT-APP" href="xmlsec/xmlsec-gcrypt-app.html">
-<ANCHOR id ="XMLSEC-GCRYPT-CRYPTO" href="xmlsec/xmlsec-gcrypt-crypto.html">
-<ANCHOR id ="XMLSEC-NSS-APP" href="xmlsec/xmlsec-nss-app.html">
-<ANCHOR id ="XMLSEC-NSS-BIGNUM" href="xmlsec/xmlsec-nss-bignum.html">
-<ANCHOR id ="XMLSEC-NSS-CRYPTO" href="xmlsec/xmlsec-nss-crypto.html">
-<ANCHOR id ="XMLSEC-NSS-KEYSSTORE" href="xmlsec/xmlsec-nss-keysstore.html">
-<ANCHOR id ="XMLSEC-NSS-PKIKEYS" href="xmlsec/xmlsec-nss-pkikeys.html">
-<ANCHOR id ="XMLSEC-NSS-X509" href="xmlsec/xmlsec-nss-x509.html">
-<ANCHOR id ="XMLSEC-MSCRYPTO-APP" href="xmlsec/xmlsec-mscrypto-app.html">
-<ANCHOR id ="XMLSEC-MSCRYPTO-CERTKEYS" href="xmlsec/xmlsec-mscrypto-certkeys.html">
-<ANCHOR id ="XMLSEC-MSCRYPTO-CRYPTO" href="xmlsec/xmlsec-mscrypto-crypto.html">
-<ANCHOR id ="XMLSEC-MSCRYPTO-KEYSSTORE" href="xmlsec/xmlsec-mscrypto-keysstore.html">
-<ANCHOR id ="XMLSEC-MSCRYPTO-X509" href="xmlsec/xmlsec-mscrypto-x509.html">
diff --git a/docs/api/left.png b/docs/api/left.png
index 2d05b3d..c518641 100644
Binary files a/docs/api/left.png and b/docs/api/left.png differ
diff --git a/docs/api/right.png b/docs/api/right.png
index 92832e3..78f5875 100644
Binary files a/docs/api/right.png and b/docs/api/right.png differ
diff --git a/docs/api/chapters/compiling-and-linking.sgml b/docs/api/src/chapters/compiling-and-linking.sgml
similarity index 100%
rename from docs/api/chapters/compiling-and-linking.sgml
rename to docs/api/src/chapters/compiling-and-linking.sgml
diff --git a/docs/api/chapters/creating-templates.sgml b/docs/api/src/chapters/creating-templates.sgml
similarity index 100%
rename from docs/api/chapters/creating-templates.sgml
rename to docs/api/src/chapters/creating-templates.sgml
diff --git a/docs/api/chapters/examples.sgml b/docs/api/src/chapters/examples.sgml
similarity index 100%
rename from docs/api/chapters/examples.sgml
rename to docs/api/src/chapters/examples.sgml
diff --git a/docs/api/chapters/init-and-shutdown.sgml b/docs/api/src/chapters/init-and-shutdown.sgml
similarity index 98%
rename from docs/api/chapters/init-and-shutdown.sgml
rename to docs/api/src/chapters/init-and-shutdown.sgml
index 688a637..f4c060c 100644
--- a/docs/api/chapters/init-and-shutdown.sgml
+++ b/docs/api/src/chapters/init-and-shutdown.sgml
@@ -57,7 +57,7 @@
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/docs/api/chapters/new-crypto.sgml b/docs/api/src/chapters/new-crypto.sgml
similarity index 93%
rename from docs/api/chapters/new-crypto.sgml
rename to docs/api/src/chapters/new-crypto.sgml
index 5219141..35cbd14 100644
--- a/docs/api/chapters/new-crypto.sgml
+++ b/docs/api/src/chapters/new-crypto.sgml
@@ -41,20 +41,12 @@
<itemizedlist>
<listitem><para>
Copy src/skeleton and include/xmlsec/skeleton folders to src/mycrypto and
- include/xmlsec/mycrypto folders and remove CVS folders from the result:
+ include/xmlsec/mycrypto folders:
<example>
- <title>Coping skeleton folders.</title>
+ <title>Coping skeleton folders:</title>
<programlisting><![CDATA[
-cd src
-cp -r skeleton mycrypto
-cd mycrypto
-rm -rf CVS
-cd ../..
-cd include/xmlsec
-cp -r skeleton mycrypto
-cd mycrypto
-rm -rf CVS
-cd ../../..
+cp -r src/skeleton src/mycrypto
+cp -r include/xmlsec/skeleton include/xmlsec/mycrypto
]]></programlisting>
</example>
</para></listitem>
@@ -460,26 +452,9 @@ struct _xmlSecTransform {
and will use your library. Of course, you'll get all the credits
for your work.
</para>
- <para>The best way to submit your enchancements is to provide a diff
- with the current CVS version. In order to do this,
- <itemizedlist>
- <listitem><para>Checkout the sources from <ulink URL="http://developer.gnome.org/tools/cvs.html">GNOME CVS</ulink>
- (module name is "xmlsec").
- </para></listitem>
- <listitem><para>Add all the new files with "cvs add" command (this will not
- create files in CVS but mark them as "added" localy). You'll not be able
- to create new folders without a valid GNOME CVS account, let me know
- what you need and I'll be happy to help.
- </para></listitem>
- <listitem><para>Get a diff of all existing and new files using
- "cvs -z3 diff -u -N" command.
- </para></listitem>
- <listitem><para>Send the resulting diff file to the xmlsec mailing list
- with some information about yourself so I can update the authors
- and coping information.
- </para></listitem>
- </itemizedlist>
- I will try to review and check in your patch as soon as possible.
+ <para>The best way to submit your enchancements is to send a pull request
+ through <ulink URL="https://github.com/lsh123/xmlsec">GitHub</ulink>.
+ I will try to review and merge your pool request as soon as possible.
</para>
</sect1>
</chapter>
diff --git a/docs/api/chapters/sign-and-encrypt.sgml b/docs/api/src/chapters/sign-and-encrypt.sgml
similarity index 100%
rename from docs/api/chapters/sign-and-encrypt.sgml
rename to docs/api/src/chapters/sign-and-encrypt.sgml
diff --git a/docs/api/chapters/using-contexts.sgml b/docs/api/src/chapters/using-contexts.sgml
similarity index 100%
rename from docs/api/chapters/using-contexts.sgml
rename to docs/api/src/chapters/using-contexts.sgml
diff --git a/docs/api/chapters/using-keys.sgml b/docs/api/src/chapters/using-keys.sgml
similarity index 100%
rename from docs/api/chapters/using-keys.sgml
rename to docs/api/src/chapters/using-keys.sgml
diff --git a/docs/api/chapters/using-keysmngr.sgml b/docs/api/src/chapters/using-keysmngr.sgml
similarity index 100%
rename from docs/api/chapters/using-keysmngr.sgml
rename to docs/api/src/chapters/using-keysmngr.sgml
diff --git a/docs/api/chapters/using-transforms.sgml b/docs/api/src/chapters/using-transforms.sgml
similarity index 100%
rename from docs/api/chapters/using-transforms.sgml
rename to docs/api/src/chapters/using-transforms.sgml
diff --git a/docs/api/chapters/using-x509-certs.sgml b/docs/api/src/chapters/using-x509-certs.sgml
similarity index 100%
rename from docs/api/chapters/using-x509-certs.sgml
rename to docs/api/src/chapters/using-x509-certs.sgml
diff --git a/docs/api/chapters/verify-and-decrypt.sgml b/docs/api/src/chapters/verify-and-decrypt.sgml
similarity index 100%
rename from docs/api/chapters/verify-and-decrypt.sgml
rename to docs/api/src/chapters/verify-and-decrypt.sgml
diff --git a/docs/api/xmlsec.sgml b/docs/api/src/xmlsec.sgml
similarity index 78%
rename from docs/api/xmlsec.sgml
rename to docs/api/src/xmlsec.sgml
index afdd9a7..fdb3ac1 100644
--- a/docs/api/xmlsec.sgml
+++ b/docs/api/src/xmlsec.sgml
@@ -1,7 +1,7 @@
<!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
<!ENTITY chapter-compiling-and-linking SYSTEM "chapters/compiling-and-linking.sgml">
-<!ENTITY chapter-init-and-shutdown SYSTEM "chapters/init-and-shutdown.sgml">
-<!ENTITY chapter-sign-and-encrypt SYSTEM "chapters/sign-and-encrypt.sgml">
+<!ENTITY chapter-init-and-shutdown SYSTEM "chapters/init-and-shutdown.sgml">
+<!ENTITY chapter-sign-and-encrypt SYSTEM "chapters/sign-and-encrypt.sgml">
<!ENTITY chapter-verify-and-decrypt SYSTEM "chapters/verify-and-decrypt.sgml">
<!ENTITY chapter-creating-templates SYSTEM "chapters/creating-templates.sgml">
<!ENTITY chapter-using-keys SYSTEM "chapters/using-keys.sgml">
@@ -14,55 +14,55 @@
<!ENTITY xmlsec-index SYSTEM "xmlsec-index.sgml">
-<!ENTITY xmlsec-app SYSTEM "sgml/app.sgml">
-<!ENTITY xmlsec-base64 SYSTEM "sgml/base64.sgml">
-<!ENTITY xmlsec-bn SYSTEM "sgml/bn.sgml">
-<!ENTITY xmlsec-buffer SYSTEM "sgml/buffer.sgml">
-<!ENTITY xmlsec-dl SYSTEM "sgml/dl.sgml">
-<!ENTITY xmlsec-errors SYSTEM "sgml/errors.sgml">
-<!ENTITY xmlsec-io SYSTEM "sgml/io.sgml">
-<!ENTITY xmlsec-keyinfo SYSTEM "sgml/keyinfo.sgml">
-<!ENTITY xmlsec-keysdata SYSTEM "sgml/keysdata.sgml">
-<!ENTITY xmlsec-keys SYSTEM "sgml/keys.sgml">
-<!ENTITY xmlsec-keysmngr SYSTEM "sgml/keysmngr.sgml">
-<!ENTITY xmlsec-list SYSTEM "sgml/list.sgml">
-<!ENTITY xmlsec-membuf SYSTEM "sgml/membuf.sgml">
-<!ENTITY xmlsec-nodeset SYSTEM "sgml/nodeset.sgml">
-<!ENTITY xmlsec-parser SYSTEM "sgml/parser.sgml">
-<!ENTITY xmlsec-templates SYSTEM "sgml/templates.sgml">
-<!ENTITY xmlsec-transforms SYSTEM "sgml/transforms.sgml">
-<!ENTITY xmlsec-version SYSTEM "sgml/version.sgml">
-<!ENTITY xmlsec-xmldsig SYSTEM "sgml/xmldsig.sgml">
-<!ENTITY xmlsec-xmlenc SYSTEM "sgml/xmlenc.sgml">
-<!ENTITY xmlsec-xmlsec SYSTEM "sgml/xmlsec.sgml">
-<!ENTITY xmlsec-xmltree SYSTEM "sgml/xmltree.sgml">
-<!ENTITY xmlsec-x509 SYSTEM "sgml/x509.sgml">
+<!ENTITY xmlsec-app SYSTEM "app.sgml">
+<!ENTITY xmlsec-base64 SYSTEM "base64.sgml">
+<!ENTITY xmlsec-bn SYSTEM "bn.sgml">
+<!ENTITY xmlsec-buffer SYSTEM "buffer.sgml">
+<!ENTITY xmlsec-dl SYSTEM "dl.sgml">
+<!ENTITY xmlsec-errors SYSTEM "errors.sgml">
+<!ENTITY xmlsec-io SYSTEM "io.sgml">
+<!ENTITY xmlsec-keyinfo SYSTEM "keyinfo.sgml">
+<!ENTITY xmlsec-keysdata SYSTEM "keysdata.sgml">
+<!ENTITY xmlsec-keys SYSTEM "keys.sgml">
+<!ENTITY xmlsec-keysmngr SYSTEM "keysmngr.sgml">
+<!ENTITY xmlsec-list SYSTEM "list.sgml">
+<!ENTITY xmlsec-membuf SYSTEM "membuf.sgml">
+<!ENTITY xmlsec-nodeset SYSTEM "nodeset.sgml">
+<!ENTITY xmlsec-parser SYSTEM "parser.sgml">
+<!ENTITY xmlsec-templates SYSTEM "templates.sgml">
+<!ENTITY xmlsec-transforms SYSTEM "transforms.sgml">
+<!ENTITY xmlsec-version SYSTEM "version.sgml">
+<!ENTITY xmlsec-xmldsig SYSTEM "xmldsig.sgml">
+<!ENTITY xmlsec-xmlenc SYSTEM "xmlenc.sgml">
+<!ENTITY xmlsec-xmlsec SYSTEM "xmlsec.sgml">
+<!ENTITY xmlsec-xmltree SYSTEM "xmltree.sgml">
+<!ENTITY xmlsec-x509 SYSTEM "x509.sgml">
-<!ENTITY xmlsec-openssl-app SYSTEM "sgml/openssl/app.sgml">
-<!ENTITY xmlsec-openssl-bn SYSTEM "sgml/openssl/bn.sgml">
-<!ENTITY xmlsec-openssl-ciphers SYSTEM "sgml/openssl/ciphers.sgml">
-<!ENTITY xmlsec-openssl-crypto SYSTEM "sgml/openssl/crypto.sgml">
-<!ENTITY xmlsec-openssl-evp SYSTEM "sgml/openssl/evp.sgml">
-<!ENTITY xmlsec-openssl-x509 SYSTEM "sgml/openssl/x509.sgml">
+<!ENTITY xmlsec-openssl-app SYSTEM "openssl/app.sgml">
+<!ENTITY xmlsec-openssl-bn SYSTEM "openssl/bn.sgml">
+<!ENTITY xmlsec-openssl-ciphers SYSTEM "openssl/ciphers.sgml">
+<!ENTITY xmlsec-openssl-crypto SYSTEM "openssl/crypto.sgml">
+<!ENTITY xmlsec-openssl-evp SYSTEM "openssl/evp.sgml">
+<!ENTITY xmlsec-openssl-x509 SYSTEM "openssl/x509.sgml">
-<!ENTITY xmlsec-gnutls-app SYSTEM "sgml/gnutls/app.sgml">
-<!ENTITY xmlsec-gnutls-crypto SYSTEM "sgml/gnutls/crypto.sgml">
+<!ENTITY xmlsec-gnutls-app SYSTEM "gnutls/app.sgml">
+<!ENTITY xmlsec-gnutls-crypto SYSTEM "gnutls/crypto.sgml">
-<!ENTITY xmlsec-gcrypt-app SYSTEM "sgml/gcrypt/app.sgml">
-<!ENTITY xmlsec-gcrypt-crypto SYSTEM "sgml/gcrypt/crypto.sgml">
+<!ENTITY xmlsec-gcrypt-app SYSTEM "gcrypt/app.sgml">
+<!ENTITY xmlsec-gcrypt-crypto SYSTEM "gcrypt/crypto.sgml">
-<!ENTITY xmlsec-nss-app SYSTEM "sgml/nss/app.sgml">
-<!ENTITY xmlsec-nss-bignum SYSTEM "sgml/nss/bignum.sgml">
-<!ENTITY xmlsec-nss-crypto SYSTEM "sgml/nss/crypto.sgml">
-<!ENTITY xmlsec-nss-keysstore SYSTEM "sgml/nss/keysstore.sgml">
-<!ENTITY xmlsec-nss-pkikeys SYSTEM "sgml/nss/pkikeys.sgml">
-<!ENTITY xmlsec-nss-x509 SYSTEM "sgml/nss/x509.sgml">
+<!ENTITY xmlsec-nss-app SYSTEM "nss/app.sgml">
+<!ENTITY xmlsec-nss-bignum SYSTEM "nss/bignum.sgml">
+<!ENTITY xmlsec-nss-crypto SYSTEM "nss/crypto.sgml">
+<!ENTITY xmlsec-nss-keysstore SYSTEM "nss/keysstore.sgml">
+<!ENTITY xmlsec-nss-pkikeys SYSTEM "nss/pkikeys.sgml">
+<!ENTITY xmlsec-nss-x509 SYSTEM "nss/x509.sgml">
-<!ENTITY xmlsec-mscrypto-app SYSTEM "sgml/mscrypto/app.sgml">
-<!ENTITY xmlsec-mscrypto-certkeys SYSTEM "sgml/mscrypto/certkeys.sgml">
-<!ENTITY xmlsec-mscrypto-crypto SYSTEM "sgml/mscrypto/crypto.sgml">
-<!ENTITY xmlsec-mscrypto-keysstore SYSTEM "sgml/mscrypto/keysstore.sgml">
-<!ENTITY xmlsec-mscrypto-x509 SYSTEM "sgml/mscrypto/x509.sgml">
+<!ENTITY xmlsec-mscrypto-app SYSTEM "mscrypto/app.sgml">
+<!ENTITY xmlsec-mscrypto-certkeys SYSTEM "mscrypto/certkeys.sgml">
+<!ENTITY xmlsec-mscrypto-crypto SYSTEM "mscrypto/crypto.sgml">
+<!ENTITY xmlsec-mscrypto-keysstore SYSTEM "mscrypto/keysstore.sgml">
+<!ENTITY xmlsec-mscrypto-x509 SYSTEM "mscrypto/x509.sgml">
<!ENTITY xmlsec-example-sign1 SYSTEM "examples/sign1.sgml">
<!ENTITY xmlsec-example-sign2 SYSTEM "examples/sign2.sgml">
diff --git a/docs/api/tmpl/base/app.sgml b/docs/api/tmpl/base/app.sgml
new file mode 100644
index 0000000..b725a3b
--- /dev/null
+++ b/docs/api/tmpl/base/app.sgml
@@ -0,0 +1,1112 @@
+<!-- ##### SECTION Title ##### -->
+app
+
+<!-- ##### SECTION Short_Description ##### -->
+Crypto-engine independent application support function.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Crypto-engine application support function used by xmlsec command line utility.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecCryptoInit ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoKeysMngrInit ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataAesId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataAesGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataDesId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataDesGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataDsaId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataDsaGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataEcdsaId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataEcdsaGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataGost2001Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataGost2001GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataGostR3410_2012_256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataGostR3410_2012_256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataGostR3410_2012_512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataGostR3410_2012_512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataHmacId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataHmacGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataRsaId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataRsaGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataX509Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataX509GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataRawX509CertId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataRawX509CertGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecX509StoreId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecX509StoreGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformAes128CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformAes128CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformAes192CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformAes192CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformAes256CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformAes256CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformKWAes128Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformKWAes128GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformKWAes192Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformKWAes192GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformKWAes256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformKWAes256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformDes3CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformDes3CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformKWDes3Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformKWDes3GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformDsaSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformDsaSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformDsaSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformDsaSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformEcdsaSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformEcdsaSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformEcdsaSha224Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformEcdsaSha224GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformEcdsaSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformEcdsaSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformEcdsaSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformEcdsaSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformEcdsaSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformEcdsaSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformGost2001GostR3411_94Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformGost2001GostR3411_94GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformGostR3410_2012GostR3411_2012_256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformGostR3410_2012GostR3411_2012_256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformGostR3410_2012GostR3411_2012_512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformGostR3410_2012GostR3411_2012_512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformHmacMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformHmacMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformHmacRipemd160Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformHmacRipemd160GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformHmacSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformHmacSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformHmacSha224Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformHmacSha224GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformHmacSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformHmacSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformHmacSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformHmacSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformHmacSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformHmacSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformRipemd160Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformRipemd160GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformRsaMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformRsaMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformRsaRipemd160Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformRsaRipemd160GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformRsaSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformRsaSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformRsaSha224Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformRsaSha224GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformRsaSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformRsaSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformRsaSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformRsaSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformRsaSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformRsaSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformRsaPkcs1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformRsaPkcs1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformRsaOaepId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformRsaOaepGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformGostR3411_94Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformGostR3411_94GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformGostR3411_2012_256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformGostR3411_2012_256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformGostR3411_2012_512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformGostR3411_2012_512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformSha224Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformSha224GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppInit ##### -->
+<para>
+
+</para>
+
+ at config:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppDefaultKeysMngrInit ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppDefaultKeysMngrAdoptKey ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppDefaultKeysMngrLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at uri:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppDefaultKeysMngrSave ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at filename:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppKeysMngrCertLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at filename:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppKeysMngrCertLoadMemory ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at data:
+ at dataSize:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppKeyLoad ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppKeyLoadMemory ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppPkcs12Load ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppPkcs12LoadMemory ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppKeyCertLoad ##### -->
+<para>
+
+</para>
+
+ at key:
+ at filename:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppKeyCertLoadMemory ##### -->
+<para>
+
+</para>
+
+ at key:
+ at data:
+ at dataSize:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoAppGetDefaultPwdCallback ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/base64.sgml b/docs/api/tmpl/base/base64.sgml
new file mode 100644
index 0000000..a6d4ebf
--- /dev/null
+++ b/docs/api/tmpl/base/base64.sgml
@@ -0,0 +1,129 @@
+<!-- ##### SECTION Title ##### -->
+base64
+
+<!-- ##### SECTION Short_Description ##### -->
+Base64 encoding/decoding functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Base64 encoding/decoding functions.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO XMLSEC_BASE64_LINESIZE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecBase64GetDefaultLineSize ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBase64SetDefaultLineSize ##### -->
+<para>
+
+</para>
+
+ at columns:
+
+
+<!-- ##### FUNCTION xmlSecBase64CtxCreate ##### -->
+<para>
+
+</para>
+
+ at encode:
+ at columns:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBase64CtxDestroy ##### -->
+<para>
+
+</para>
+
+ at ctx:
+
+
+<!-- ##### FUNCTION xmlSecBase64CtxInitialize ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at encode:
+ at columns:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBase64CtxFinalize ##### -->
+<para>
+
+</para>
+
+ at ctx:
+
+
+<!-- ##### FUNCTION xmlSecBase64CtxUpdate ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at in:
+ at inSize:
+ at out:
+ at outSize:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBase64CtxFinal ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at out:
+ at outSize:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBase64Encode ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at len:
+ at columns:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBase64Decode ##### -->
+<para>
+
+</para>
+
+ at str:
+ at buf:
+ at len:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/bn.sgml b/docs/api/tmpl/base/bn.sgml
new file mode 100644
index 0000000..8b000f2
--- /dev/null
+++ b/docs/api/tmpl/base/bn.sgml
@@ -0,0 +1,263 @@
+<!-- ##### SECTION Title ##### -->
+bn
+
+<!-- ##### SECTION Short_Description ##### -->
+Big numbers support functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Big numbers support functions.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### ENUM xmlSecBnFormat ##### -->
+<para>
+
+</para>
+
+ at xmlSecBnBase64:
+ at xmlSecBnHex:
+ at xmlSecBnDec:
+
+<!-- ##### FUNCTION xmlSecBnCreate ##### -->
+<para>
+
+</para>
+
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnDestroy ##### -->
+<para>
+
+</para>
+
+ at bn:
+
+
+<!-- ##### FUNCTION xmlSecBnInitialize ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnFinalize ##### -->
+<para>
+
+</para>
+
+ at bn:
+
+
+<!-- ##### FUNCTION xmlSecBnGetData ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnSetData ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at data:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnGetSize ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnZero ##### -->
+<para>
+
+</para>
+
+ at bn:
+
+
+<!-- ##### FUNCTION xmlSecBnFromString ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at str:
+ at base:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnToString ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at base:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnFromHexString ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at str:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnToHexString ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnFromDecString ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at str:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnToDecString ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnMul ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at multiplier:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnDiv ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at divider:
+ at mod:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnAdd ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at delta:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnReverse ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnCompare ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at data:
+ at dataSize:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnCompareReverse ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at data:
+ at dataSize:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnGetNodeValue ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at cur:
+ at format:
+ at reverse:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnSetNodeValue ##### -->
+<para>
+
+</para>
+
+ at bn:
+ at cur:
+ at format:
+ at reverse:
+ at addLineBreaks:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBnBlobSetNodeValue ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at cur:
+ at format:
+ at reverse:
+ at addLineBreaks:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/buffer.sgml b/docs/api/tmpl/base/buffer.sgml
new file mode 100644
index 0000000..33a89bd
--- /dev/null
+++ b/docs/api/tmpl/base/buffer.sgml
@@ -0,0 +1,232 @@
+<!-- ##### SECTION Title ##### -->
+buffer
+
+<!-- ##### SECTION Short_Description ##### -->
+Binary buffer implementation.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Binary buffer implementation.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### ENUM xmlSecAllocMode ##### -->
+<para>
+
+</para>
+
+ at xmlSecAllocModeExact:
+ at xmlSecAllocModeDouble:
+
+<!-- ##### STRUCT xmlSecBuffer ##### -->
+<para>
+
+</para>
+
+ at data:
+ at size:
+ at maxSize:
+ at allocMode:
+
+<!-- ##### FUNCTION xmlSecBufferSetDefaultAllocMode ##### -->
+<para>
+
+</para>
+
+ at defAllocMode:
+ at defInitialSize:
+
+
+<!-- ##### FUNCTION xmlSecBufferCreate ##### -->
+<para>
+
+</para>
+
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferDestroy ##### -->
+<para>
+
+</para>
+
+ at buf:
+
+
+<!-- ##### FUNCTION xmlSecBufferInitialize ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferFinalize ##### -->
+<para>
+
+</para>
+
+ at buf:
+
+
+<!-- ##### FUNCTION xmlSecBufferGetData ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferSetData ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at data:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferGetSize ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferSetSize ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferGetMaxSize ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferSetMaxSize ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferEmpty ##### -->
+<para>
+
+</para>
+
+ at buf:
+
+
+<!-- ##### FUNCTION xmlSecBufferAppend ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at data:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferPrepend ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at data:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferRemoveHead ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferRemoveTail ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferReadFile ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at filename:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferBase64NodeContentRead ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at node:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferBase64NodeContentWrite ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at node:
+ at columns:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferCreateOutputBuffer ##### -->
+<para>
+
+</para>
+
+ at buf:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/dl.sgml b/docs/api/tmpl/base/dl.sgml
new file mode 100644
index 0000000..88ca820
--- /dev/null
+++ b/docs/api/tmpl/base/dl.sgml
@@ -0,0 +1,94 @@
+<!-- ##### SECTION Title ##### -->
+dl
+
+<!-- ##### SECTION Short_Description ##### -->
+Dynamic crypto-engine library loading support.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Dynamic crypto-engine library loading support.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms ##### -->
+<para>
+
+</para>
+
+ at functions:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoDLInit ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoDLShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoDLLoadLibrary ##### -->
+<para>
+
+</para>
+
+ at crypto:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoDLGetLibraryFunctions ##### -->
+<para>
+
+</para>
+
+ at crypto:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoDLUnloadLibrary ##### -->
+<para>
+
+</para>
+
+ at crypto:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoDLSetFunctions ##### -->
+<para>
+
+</para>
+
+ at functions:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCryptoDLGetFunctions ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/errors.sgml b/docs/api/tmpl/base/errors.sgml
new file mode 100644
index 0000000..185ae22
--- /dev/null
+++ b/docs/api/tmpl/base/errors.sgml
@@ -0,0 +1,490 @@
+<!-- ##### SECTION Title ##### -->
+errors
+
+<!-- ##### SECTION Short_Description ##### -->
+Error/log messages support.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Error/log messages support.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_XMLSEC_FAILED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_MALLOC_FAILED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_STRDUP_FAILED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_CRYPTO_FAILED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_XML_FAILED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_XSLT_FAILED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_IO_FAILED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_DISABLED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_NOT_IMPLEMENTED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_SIZE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_DATA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_RESULT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_TYPE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_OPERATION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_STATUS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_FORMAT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_DATA_NOT_MATCH ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_NODE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_NODE_CONTENT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_UNEXPECTED_NODE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_NODE_NOT_FOUND ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_TRANSFORM ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_URI_TYPE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_TRANSFORM_DISABLED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_KEY_DATA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_KEY_NOT_FOUND ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_KEYDATA_DISABLED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_CERT_VERIFY_FAILED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_CERT_NOT_FOUND ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_CERT_REVOKED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_CERT_ISSUER_FAILED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_CERT_NOT_YET_VALID ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_CERT_HAS_EXPIRED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_DSIG_NO_REFERENCES ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_ASSERTION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_MAX_NUMBER ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### USER_FUNCTION xmlSecErrorsCallback ##### -->
+<para>
+
+</para>
+
+ at file:
+ at line:
+ at func:
+ at errorObject:
+ at errorSubject:
+ at reason:
+ at msg:
+
+
+<!-- ##### FUNCTION xmlSecErrorsInit ##### -->
+<para>
+
+</para>
+
+ at void:
+
+
+<!-- ##### FUNCTION xmlSecErrorsShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+
+
+<!-- ##### FUNCTION xmlSecErrorsSetCallback ##### -->
+<para>
+
+</para>
+
+ at callback:
+
+
+<!-- ##### FUNCTION xmlSecErrorsDefaultCallback ##### -->
+<para>
+
+</para>
+
+ at file:
+ at line:
+ at func:
+ at errorObject:
+ at errorSubject:
+ at reason:
+ at msg:
+
+
+<!-- ##### FUNCTION xmlSecErrorsDefaultCallbackEnableOutput ##### -->
+<para>
+
+</para>
+
+ at enabled:
+
+
+<!-- ##### FUNCTION xmlSecErrorsGetCode ##### -->
+<para>
+
+</para>
+
+ at pos:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecErrorsGetMsg ##### -->
+<para>
+
+</para>
+
+ at pos:
+ at Returns:
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_HERE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecErrorsSafeString ##### -->
+<para>
+
+</para>
+
+ at str:
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_NO_MESSAGE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecError ##### -->
+<para>
+
+</para>
+
+ at file:
+ at line:
+ at func:
+ at errorObject:
+ at errorSubject:
+ at reason:
+ at msg:
+ at ...:
+
+
+<!-- ##### MACRO xmlSecAssert ##### -->
+<para>
+
+</para>
+
+ at p:
+
+
+<!-- ##### MACRO xmlSecAssert2 ##### -->
+<para>
+
+</para>
+
+ at p:
+ at ret:
+
+
diff --git a/docs/api/tmpl/base/exports.sgml b/docs/api/tmpl/base/exports.sgml
new file mode 100644
index 0000000..f4d396d
--- /dev/null
+++ b/docs/api/tmpl/base/exports.sgml
@@ -0,0 +1,29 @@
+<!-- ##### SECTION Title ##### -->
+exports
+
+<!-- ##### SECTION Short_Description ##### -->
+Black magic to export functions on Windows.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Black magic to export functions on Windows.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO extern ##### -->
+<para>
+
+</para>
+
+
+
diff --git a/docs/api/tmpl/base/io.sgml b/docs/api/tmpl/base/io.sgml
new file mode 100644
index 0000000..494ae00
--- /dev/null
+++ b/docs/api/tmpl/base/io.sgml
@@ -0,0 +1,103 @@
+<!-- ##### SECTION Title ##### -->
+io
+
+<!-- ##### SECTION Short_Description ##### -->
+Input/output support.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Input/output support.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecIOInit ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecIOShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+
+
+<!-- ##### FUNCTION xmlSecIOCleanupCallbacks ##### -->
+<para>
+
+</para>
+
+ at void:
+
+
+<!-- ##### FUNCTION xmlSecIORegisterDefaultCallbacks ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecIORegisterCallbacks ##### -->
+<para>
+
+</para>
+
+ at matchFunc:
+ at openFunc:
+ at readFunc:
+ at closeFunc:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformInputURIId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformInputURIGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformInputURIOpen ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at uri:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformInputURIClose ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/keyinfo.sgml b/docs/api/tmpl/base/keyinfo.sgml
new file mode 100644
index 0000000..e6ea391
--- /dev/null
+++ b/docs/api/tmpl/base/keyinfo.sgml
@@ -0,0 +1,312 @@
+<!-- ##### SECTION Title ##### -->
+keyinfo
+
+<!-- ##### SECTION Short_Description ##### -->
+<dsig:KeyInfo/> node parser.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+<dsig:KeyInfo/> node parser.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoNodeRead ##### -->
+<para>
+
+</para>
+
+ at keyInfoNode:
+ at key:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoNodeWrite ##### -->
+<para>
+
+</para>
+
+ at keyInfoNode:
+ at key:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### ENUM xmlSecKeyInfoMode ##### -->
+<para>
+
+</para>
+
+ at xmlSecKeyInfoModeRead:
+ at xmlSecKeyInfoModeWrite:
+
+<!-- ##### MACRO XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT xmlSecKeyInfoCtx ##### -->
+<para>
+
+</para>
+
+ at userData:
+ at flags:
+ at flags2:
+ at keysMngr:
+ at mode:
+ at enabledKeyData:
+ at base64LineSize:
+ at retrievalMethodCtx:
+ at maxRetrievalMethodLevel:
+ at encCtx:
+ at maxEncryptedKeyLevel:
+ at certsVerificationTime:
+ at certsVerificationDepth:
+ at pgpReserved:
+ at curRetrievalMethodLevel:
+ at curEncryptedKeyLevel:
+ at keyReq:
+ at reserved0:
+ at reserved1:
+
+<!-- ##### FUNCTION xmlSecKeyInfoCtxCreate ##### -->
+<para>
+
+</para>
+
+ at keysMngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoCtxDestroy ##### -->
+<para>
+
+</para>
+
+ at keyInfoCtx:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoCtxInitialize ##### -->
+<para>
+
+</para>
+
+ at keyInfoCtx:
+ at keysMngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoCtxFinalize ##### -->
+<para>
+
+</para>
+
+ at keyInfoCtx:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoCtxReset ##### -->
+<para>
+
+</para>
+
+ at keyInfoCtx:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoCtxCopyUserPref ##### -->
+<para>
+
+</para>
+
+ at dst:
+ at src:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoCtxCreateEncCtx ##### -->
+<para>
+
+</para>
+
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoCtxDebugDump ##### -->
+<para>
+
+</para>
+
+ at keyInfoCtx:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoCtxDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at keyInfoCtx:
+ at output:
+
+
+<!-- ##### MACRO xmlSecKeyDataNameId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataNameGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataValueId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataValueGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataRetrievalMethodId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataRetrievalMethodGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataEncryptedKeyId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataEncryptedKeyGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/keys.sgml b/docs/api/tmpl/base/keys.sgml
new file mode 100644
index 0000000..7bd74cf
--- /dev/null
+++ b/docs/api/tmpl/base/keys.sgml
@@ -0,0 +1,521 @@
+<!-- ##### SECTION Title ##### -->
+keys
+
+<!-- ##### SECTION Short_Description ##### -->
+Crypto key object definition.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Crypto key object definition.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### TYPEDEF xmlSecKeyUsage ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO xmlSecKeyUsageSign ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyUsageVerify ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyUsageEncrypt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyUsageDecrypt ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyUsageKeyExchange ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyUsageAny ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyUseWithInitialize ##### -->
+<para>
+
+</para>
+
+ at keyUseWith:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyUseWithFinalize ##### -->
+<para>
+
+</para>
+
+ at keyUseWith:
+
+
+<!-- ##### FUNCTION xmlSecKeyUseWithReset ##### -->
+<para>
+
+</para>
+
+ at keyUseWith:
+
+
+<!-- ##### FUNCTION xmlSecKeyUseWithCopy ##### -->
+<para>
+
+</para>
+
+ at dst:
+ at src:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyUseWithCreate ##### -->
+<para>
+
+</para>
+
+ at application:
+ at identifier:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyUseWithDuplicate ##### -->
+<para>
+
+</para>
+
+ at keyUseWith:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyUseWithDestroy ##### -->
+<para>
+
+</para>
+
+ at keyUseWith:
+
+
+<!-- ##### FUNCTION xmlSecKeyUseWithSet ##### -->
+<para>
+
+</para>
+
+ at keyUseWith:
+ at application:
+ at identifier:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyUseWithDebugDump ##### -->
+<para>
+
+</para>
+
+ at keyUseWith:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecKeyUseWithDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at keyUseWith:
+ at output:
+
+
+<!-- ##### STRUCT xmlSecKeyUseWith ##### -->
+<para>
+
+</para>
+
+ at application:
+ at identifier:
+ at reserved1:
+ at reserved2:
+
+<!-- ##### MACRO xmlSecKeyUseWithPtrListId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyUseWithPtrListGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### STRUCT xmlSecKeyReq ##### -->
+<para>
+
+</para>
+
+ at keyId:
+ at keyType:
+ at keyUsage:
+ at keyBitsSize:
+ at keyUseWithList:
+ at reserved1:
+ at reserved2:
+
+<!-- ##### FUNCTION xmlSecKeyReqInitialize ##### -->
+<para>
+
+</para>
+
+ at keyReq:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyReqFinalize ##### -->
+<para>
+
+</para>
+
+ at keyReq:
+
+
+<!-- ##### FUNCTION xmlSecKeyReqReset ##### -->
+<para>
+
+</para>
+
+ at keyReq:
+
+
+<!-- ##### FUNCTION xmlSecKeyReqCopy ##### -->
+<para>
+
+</para>
+
+ at dst:
+ at src:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyReqMatchKey ##### -->
+<para>
+
+</para>
+
+ at keyReq:
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyReqMatchKeyValue ##### -->
+<para>
+
+</para>
+
+ at keyReq:
+ at value:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyReqDebugDump ##### -->
+<para>
+
+</para>
+
+ at keyReq:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecKeyReqDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at keyReq:
+ at output:
+
+
+<!-- ##### STRUCT xmlSecKey ##### -->
+<para>
+
+</para>
+
+ at name:
+ at value:
+ at dataList:
+ at usage:
+ at notValidBefore:
+ at notValidAfter:
+
+<!-- ##### FUNCTION xmlSecKeyCreate ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDestroy ##### -->
+<para>
+
+</para>
+
+ at key:
+
+
+<!-- ##### FUNCTION xmlSecKeyEmpty ##### -->
+<para>
+
+</para>
+
+ at key:
+
+
+<!-- ##### FUNCTION xmlSecKeyDuplicate ##### -->
+<para>
+
+</para>
+
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyCopy ##### -->
+<para>
+
+</para>
+
+ at keyDst:
+ at keySrc:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyGetName ##### -->
+<para>
+
+</para>
+
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeySetName ##### -->
+<para>
+
+</para>
+
+ at key:
+ at name:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyGetType ##### -->
+<para>
+
+</para>
+
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyGetValue ##### -->
+<para>
+
+</para>
+
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeySetValue ##### -->
+<para>
+
+</para>
+
+ at key:
+ at value:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyGetData ##### -->
+<para>
+
+</para>
+
+ at key:
+ at dataId:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyEnsureData ##### -->
+<para>
+
+</para>
+
+ at key:
+ at dataId:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyAdoptData ##### -->
+<para>
+
+</para>
+
+ at key:
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDebugDump ##### -->
+<para>
+
+</para>
+
+ at key:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecKeyDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at key:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecKeyGenerate ##### -->
+<para>
+
+</para>
+
+ at dataId:
+ at sizeBits:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyGenerateByName ##### -->
+<para>
+
+</para>
+
+ at name:
+ at sizeBits:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyMatch ##### -->
+<para>
+
+</para>
+
+ at key:
+ at name:
+ at keyReq:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyReadBuffer ##### -->
+<para>
+
+</para>
+
+ at dataId:
+ at buffer:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyReadBinaryFile ##### -->
+<para>
+
+</para>
+
+ at dataId:
+ at filename:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyReadMemory ##### -->
+<para>
+
+</para>
+
+ at dataId:
+ at data:
+ at dataSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyIsValid ##### -->
+<para>
+
+</para>
+
+ at key:
+
+
+<!-- ##### MACRO xmlSecKeyCheckId ##### -->
+<para>
+
+</para>
+
+ at key:
+ at keyId:
+
+
+<!-- ##### MACRO xmlSecKeyPtrListId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyPtrListGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/keysdata.sgml b/docs/api/tmpl/base/keysdata.sgml
new file mode 100644
index 0000000..3260521
--- /dev/null
+++ b/docs/api/tmpl/base/keysdata.sgml
@@ -0,0 +1,930 @@
+<!-- ##### SECTION Title ##### -->
+keysdata
+
+<!-- ##### SECTION Short_Description ##### -->
+Crypto key data object definition.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Crypto key data object definition.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### TYPEDEF xmlSecKeyDataUsage ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO xmlSecKeyDataUsageUnknown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataUsageKeyInfoNodeRead ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataUsageKeyInfoNodeWrite ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataUsageKeyValueNodeRead ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataUsageKeyValueNodeWrite ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataUsageRetrievalMethodNodeXml ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataUsageRetrievalMethodNodeBin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataUsageAny ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataUsageKeyInfoNode ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataUsageKeyValueNode ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataUsageRetrievalMethodNode ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### TYPEDEF xmlSecKeyDataType ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO xmlSecKeyDataTypeUnknown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataTypeNone ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataTypePublic ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataTypePrivate ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataTypeSymmetric ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataTypeSession ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataTypePermanent ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataTypeTrusted ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyDataTypeAny ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### ENUM xmlSecKeyDataFormat ##### -->
+<para>
+
+</para>
+
+ at xmlSecKeyDataFormatUnknown:
+ at xmlSecKeyDataFormatBinary:
+ at xmlSecKeyDataFormatPem:
+ at xmlSecKeyDataFormatDer:
+ at xmlSecKeyDataFormatPkcs8Pem:
+ at xmlSecKeyDataFormatPkcs8Der:
+ at xmlSecKeyDataFormatPkcs12:
+ at xmlSecKeyDataFormatCertPem:
+ at xmlSecKeyDataFormatCertDer:
+
+<!-- ##### FUNCTION xmlSecKeyDataIdsGet ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataIdsInit ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataIdsShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataIdsRegisterDefault ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataIdsRegister ##### -->
+<para>
+
+</para>
+
+ at id:
+ at Returns:
+
+
+<!-- ##### STRUCT xmlSecKeyData ##### -->
+<para>
+
+</para>
+
+ at id:
+ at reserved0:
+ at reserved1:
+
+<!-- ##### FUNCTION xmlSecKeyDataCreate ##### -->
+<para>
+
+</para>
+
+ at id:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataDuplicate ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataDestroy ##### -->
+<para>
+
+</para>
+
+ at data:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataGenerate ##### -->
+<para>
+
+</para>
+
+ at data:
+ at sizeBits:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataGetType ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataGetSize ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataGetIdentifier ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataDebugDump ##### -->
+<para>
+
+</para>
+
+ at data:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at data:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataXmlRead ##### -->
+<para>
+
+</para>
+
+ at id:
+ at key:
+ at node:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataXmlWrite ##### -->
+<para>
+
+</para>
+
+ at id:
+ at key:
+ at node:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataBinRead ##### -->
+<para>
+
+</para>
+
+ at id:
+ at key:
+ at buf:
+ at bufSize:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataBinWrite ##### -->
+<para>
+
+</para>
+
+ at id:
+ at key:
+ at buf:
+ at bufSize:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataGetName ##### -->
+<para>
+
+</para>
+
+ at data:
+
+
+<!-- ##### MACRO xmlSecKeyDataIsValid ##### -->
+<para>
+
+</para>
+
+ at data:
+
+
+<!-- ##### MACRO xmlSecKeyDataCheckId ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataId:
+
+
+<!-- ##### MACRO xmlSecKeyDataCheckUsage ##### -->
+<para>
+
+</para>
+
+ at data:
+ at usg:
+
+
+<!-- ##### MACRO xmlSecKeyDataCheckSize ##### -->
+<para>
+
+</para>
+
+ at data:
+ at size:
+
+
+<!-- ##### MACRO xmlSecKeyDataIdUnknown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDataInitMethod ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDataDuplicateMethod ##### -->
+<para>
+
+</para>
+
+ at dst:
+ at src:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDataFinalizeMethod ##### -->
+<para>
+
+</para>
+
+ at data:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDataXmlReadMethod ##### -->
+<para>
+
+</para>
+
+ at id:
+ at key:
+ at node:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDataXmlWriteMethod ##### -->
+<para>
+
+</para>
+
+ at id:
+ at key:
+ at node:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDataBinReadMethod ##### -->
+<para>
+
+</para>
+
+ at id:
+ at key:
+ at buf:
+ at bufSize:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDataBinWriteMethod ##### -->
+<para>
+
+</para>
+
+ at id:
+ at key:
+ at buf:
+ at bufSize:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDataGenerateMethod ##### -->
+<para>
+
+</para>
+
+ at data:
+ at sizeBits:
+ at type:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDataGetTypeMethod ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDataGetSizeMethod ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDataGetIdentifierMethod ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDataDebugDumpMethod ##### -->
+<para>
+
+</para>
+
+ at data:
+ at output:
+
+
+<!-- ##### STRUCT xmlSecKeyDataKlass ##### -->
+<para>
+
+</para>
+
+ at klassSize:
+ at objSize:
+ at name:
+ at usage:
+ at href:
+ at dataNodeName:
+ at dataNodeNs:
+ at initialize:
+ at duplicate:
+ at finalize:
+ at generate:
+ at getType:
+ at getSize:
+ at getIdentifier:
+ at xmlRead:
+ at xmlWrite:
+ at binRead:
+ at binWrite:
+ at debugDump:
+ at debugXmlDump:
+ at reserved0:
+ at reserved1:
+
+<!-- ##### MACRO xmlSecKeyDataKlassGetName ##### -->
+<para>
+
+</para>
+
+ at klass:
+
+
+<!-- ##### MACRO xmlSecKeyDataListId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataListGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyDataIdListId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataIdListGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataIdListFind ##### -->
+<para>
+
+</para>
+
+ at list:
+ at dataId:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataIdListFindByNode ##### -->
+<para>
+
+</para>
+
+ at list:
+ at nodeName:
+ at nodeNs:
+ at usage:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataIdListFindByHref ##### -->
+<para>
+
+</para>
+
+ at list:
+ at href:
+ at usage:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataIdListFindByName ##### -->
+<para>
+
+</para>
+
+ at list:
+ at name:
+ at usage:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataIdListDebugDump ##### -->
+<para>
+
+</para>
+
+ at list:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataIdListDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at list:
+ at output:
+
+
+<!-- ##### MACRO xmlSecKeyDataBinarySize ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataBinaryValueInitialize ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataBinaryValueDuplicate ##### -->
+<para>
+
+</para>
+
+ at dst:
+ at src:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataBinaryValueFinalize ##### -->
+<para>
+
+</para>
+
+ at data:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataBinaryValueXmlRead ##### -->
+<para>
+
+</para>
+
+ at id:
+ at key:
+ at node:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataBinaryValueXmlWrite ##### -->
+<para>
+
+</para>
+
+ at id:
+ at key:
+ at node:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataBinaryValueBinRead ##### -->
+<para>
+
+</para>
+
+ at id:
+ at key:
+ at buf:
+ at bufSize:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataBinaryValueBinWrite ##### -->
+<para>
+
+</para>
+
+ at id:
+ at key:
+ at buf:
+ at bufSize:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataBinaryValueDebugDump ##### -->
+<para>
+
+</para>
+
+ at data:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataBinaryValueDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at data:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataBinaryValueGetSize ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataBinaryValueGetBuffer ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataBinaryValueSetBuffer ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### STRUCT xmlSecKeyDataStore ##### -->
+<para>
+
+</para>
+
+ at id:
+ at reserved0:
+ at reserved1:
+
+<!-- ##### FUNCTION xmlSecKeyDataStoreCreate ##### -->
+<para>
+
+</para>
+
+ at id:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDataStoreDestroy ##### -->
+<para>
+
+</para>
+
+ at store:
+
+
+<!-- ##### MACRO xmlSecKeyDataStoreGetName ##### -->
+<para>
+
+</para>
+
+ at store:
+
+
+<!-- ##### MACRO xmlSecKeyDataStoreIsValid ##### -->
+<para>
+
+</para>
+
+ at store:
+
+
+<!-- ##### MACRO xmlSecKeyDataStoreCheckId ##### -->
+<para>
+
+</para>
+
+ at store:
+ at storeId:
+
+
+<!-- ##### MACRO xmlSecKeyDataStoreCheckSize ##### -->
+<para>
+
+</para>
+
+ at store:
+ at size:
+
+
+<!-- ##### MACRO xmlSecKeyDataStoreIdUnknown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDataStoreInitializeMethod ##### -->
+<para>
+
+</para>
+
+ at store:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDataStoreFinalizeMethod ##### -->
+<para>
+
+</para>
+
+ at store:
+
+
+<!-- ##### STRUCT xmlSecKeyDataStoreKlass ##### -->
+<para>
+
+</para>
+
+ at klassSize:
+ at objSize:
+ at name:
+ at initialize:
+ at finalize:
+ at reserved0:
+ at reserved1:
+
+<!-- ##### MACRO xmlSecKeyDataStoreKlassGetName ##### -->
+<para>
+
+</para>
+
+ at klass:
+
+
+<!-- ##### MACRO xmlSecKeyDataStorePtrListId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecKeyDataStorePtrListGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/keysmngr.sgml b/docs/api/tmpl/base/keysmngr.sgml
new file mode 100644
index 0000000..6f55ffa
--- /dev/null
+++ b/docs/api/tmpl/base/keysmngr.sgml
@@ -0,0 +1,303 @@
+<!-- ##### SECTION Title ##### -->
+keysmngr
+
+<!-- ##### SECTION Short_Description ##### -->
+Keys manager object support.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Keys manager object support.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecKeysMngrCreate ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeysMngrDestroy ##### -->
+<para>
+
+</para>
+
+ at mngr:
+
+
+<!-- ##### FUNCTION xmlSecKeysMngrFindKey ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at name:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeysMngrAdoptKeysStore ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at store:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeysMngrGetKeysStore ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeysMngrAdoptDataStore ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at store:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeysMngrGetDataStore ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at id:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecGetKeyCallback ##### -->
+<para>
+
+</para>
+
+ at keyInfoNode:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### STRUCT xmlSecKeysMngr ##### -->
+<para>
+
+</para>
+
+ at keysStore:
+ at storesList:
+ at getKey:
+
+<!-- ##### FUNCTION xmlSecKeysMngrGetKey ##### -->
+<para>
+
+</para>
+
+ at keyInfoNode:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### STRUCT xmlSecKeyStore ##### -->
+<para>
+
+</para>
+
+ at id:
+ at reserved0:
+ at reserved1:
+
+<!-- ##### FUNCTION xmlSecKeyStoreCreate ##### -->
+<para>
+
+</para>
+
+ at id:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyStoreDestroy ##### -->
+<para>
+
+</para>
+
+ at store:
+
+
+<!-- ##### FUNCTION xmlSecKeyStoreFindKey ##### -->
+<para>
+
+</para>
+
+ at store:
+ at name:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecKeyStoreGetName ##### -->
+<para>
+
+</para>
+
+ at store:
+
+
+<!-- ##### MACRO xmlSecKeyStoreIsValid ##### -->
+<para>
+
+</para>
+
+ at store:
+
+
+<!-- ##### MACRO xmlSecKeyStoreCheckId ##### -->
+<para>
+
+</para>
+
+ at store:
+ at storeId:
+
+
+<!-- ##### MACRO xmlSecKeyStoreCheckSize ##### -->
+<para>
+
+</para>
+
+ at store:
+ at size:
+
+
+<!-- ##### MACRO xmlSecKeyStoreIdUnknown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyStoreInitializeMethod ##### -->
+<para>
+
+</para>
+
+ at store:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyStoreFinalizeMethod ##### -->
+<para>
+
+</para>
+
+ at store:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyStoreFindKeyMethod ##### -->
+<para>
+
+</para>
+
+ at store:
+ at name:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### STRUCT xmlSecKeyStoreKlass ##### -->
+<para>
+
+</para>
+
+ at klassSize:
+ at objSize:
+ at name:
+ at initialize:
+ at finalize:
+ at findKey:
+ at reserved0:
+ at reserved1:
+
+<!-- ##### MACRO xmlSecKeyStoreKlassGetName ##### -->
+<para>
+
+</para>
+
+ at klass:
+
+
+<!-- ##### MACRO xmlSecSimpleKeysStoreId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysStoreGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysStoreAdoptKey ##### -->
+<para>
+
+</para>
+
+ at store:
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysStoreLoad ##### -->
+<para>
+
+</para>
+
+ at store:
+ at uri:
+ at keysMngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysStoreSave ##### -->
+<para>
+
+</para>
+
+ at store:
+ at filename:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysStoreGetKeys ##### -->
+<para>
+
+</para>
+
+ at store:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/list.sgml b/docs/api/tmpl/base/list.sgml
new file mode 100644
index 0000000..3d62e65
--- /dev/null
+++ b/docs/api/tmpl/base/list.sgml
@@ -0,0 +1,275 @@
+<!-- ##### SECTION Title ##### -->
+list
+
+<!-- ##### SECTION Short_Description ##### -->
+Generic list structure implementation.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Generic list structure implementation.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### STRUCT xmlSecPtrList ##### -->
+<para>
+
+</para>
+
+ at id:
+ at data:
+ at use:
+ at max:
+ at allocMode:
+
+<!-- ##### FUNCTION xmlSecPtrListSetDefaultAllocMode ##### -->
+<para>
+
+</para>
+
+ at defAllocMode:
+ at defInitialSize:
+
+
+<!-- ##### FUNCTION xmlSecPtrListInitialize ##### -->
+<para>
+
+</para>
+
+ at list:
+ at id:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecPtrListFinalize ##### -->
+<para>
+
+</para>
+
+ at list:
+
+
+<!-- ##### FUNCTION xmlSecPtrListCreate ##### -->
+<para>
+
+</para>
+
+ at id:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecPtrListDestroy ##### -->
+<para>
+
+</para>
+
+ at list:
+
+
+<!-- ##### FUNCTION xmlSecPtrListEmpty ##### -->
+<para>
+
+</para>
+
+ at list:
+
+
+<!-- ##### FUNCTION xmlSecPtrListCopy ##### -->
+<para>
+
+</para>
+
+ at dst:
+ at src:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecPtrListDuplicate ##### -->
+<para>
+
+</para>
+
+ at list:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecPtrListGetSize ##### -->
+<para>
+
+</para>
+
+ at list:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecPtrListGetItem ##### -->
+<para>
+
+</para>
+
+ at list:
+ at pos:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecPtrListAdd ##### -->
+<para>
+
+</para>
+
+ at list:
+ at item:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecPtrListSet ##### -->
+<para>
+
+</para>
+
+ at list:
+ at item:
+ at pos:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecPtrListRemove ##### -->
+<para>
+
+</para>
+
+ at list:
+ at pos:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecPtrListRemoveAndReturn ##### -->
+<para>
+
+</para>
+
+ at list:
+ at pos:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecPtrListDebugDump ##### -->
+<para>
+
+</para>
+
+ at list:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecPtrListDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at list:
+ at output:
+
+
+<!-- ##### MACRO xmlSecPtrListGetName ##### -->
+<para>
+
+</para>
+
+ at list:
+
+
+<!-- ##### MACRO xmlSecPtrListIsValid ##### -->
+<para>
+
+</para>
+
+ at list:
+
+
+<!-- ##### MACRO xmlSecPtrListCheckId ##### -->
+<para>
+
+</para>
+
+ at list:
+ at dataId:
+
+
+<!-- ##### MACRO xmlSecPtrListIdUnknown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### USER_FUNCTION xmlSecPtrDuplicateItemMethod ##### -->
+<para>
+
+</para>
+
+ at ptr:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecPtrDestroyItemMethod ##### -->
+<para>
+
+</para>
+
+ at ptr:
+
+
+<!-- ##### USER_FUNCTION xmlSecPtrDebugDumpItemMethod ##### -->
+<para>
+
+</para>
+
+ at ptr:
+ at output:
+
+
+<!-- ##### STRUCT xmlSecPtrListKlass ##### -->
+<para>
+
+</para>
+
+ at name:
+ at duplicateItem:
+ at destroyItem:
+ at debugDumpItem:
+ at debugXmlDumpItem:
+
+<!-- ##### MACRO xmlSecPtrListKlassGetName ##### -->
+<para>
+
+</para>
+
+ at klass:
+
+
+<!-- ##### MACRO xmlSecStringListId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecStringListGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/membuf.sgml b/docs/api/tmpl/base/membuf.sgml
new file mode 100644
index 0000000..873eb5a
--- /dev/null
+++ b/docs/api/tmpl/base/membuf.sgml
@@ -0,0 +1,47 @@
+<!-- ##### SECTION Title ##### -->
+membuf
+
+<!-- ##### SECTION Short_Description ##### -->
+Memory buffer transform implementation.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Memory buffer transform implementation.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO xmlSecTransformMemBufId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformMemBufGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformMemBufGetBuffer ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/nodeset.sgml b/docs/api/tmpl/base/nodeset.sgml
new file mode 100644
index 0000000..c31c4ff
--- /dev/null
+++ b/docs/api/tmpl/base/nodeset.sgml
@@ -0,0 +1,172 @@
+<!-- ##### SECTION Title ##### -->
+nodeset
+
+<!-- ##### SECTION Short_Description ##### -->
+Nodeset object implementation.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Nodeset object implementation.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### ENUM xmlSecNodeSetType ##### -->
+<para>
+
+</para>
+
+ at xmlSecNodeSetNormal:
+ at xmlSecNodeSetInvert:
+ at xmlSecNodeSetTree:
+ at xmlSecNodeSetTreeWithoutComments:
+ at xmlSecNodeSetTreeInvert:
+ at xmlSecNodeSetTreeWithoutCommentsInvert:
+ at xmlSecNodeSetList:
+
+<!-- ##### ENUM xmlSecNodeSetOp ##### -->
+<para>
+
+</para>
+
+ at xmlSecNodeSetIntersection:
+ at xmlSecNodeSetSubtraction:
+ at xmlSecNodeSetUnion:
+
+<!-- ##### STRUCT xmlSecNodeSet ##### -->
+<para>
+
+</para>
+
+ at nodes:
+ at doc:
+ at destroyDoc:
+ at type:
+ at op:
+ at next:
+ at prev:
+ at children:
+
+<!-- ##### USER_FUNCTION xmlSecNodeSetWalkCallback ##### -->
+<para>
+
+</para>
+
+ at nset:
+ at cur:
+ at parent:
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetCreate ##### -->
+<para>
+
+</para>
+
+ at doc:
+ at nodes:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetDestroy ##### -->
+<para>
+
+</para>
+
+ at nset:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetDocDestroy ##### -->
+<para>
+
+</para>
+
+ at nset:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetContains ##### -->
+<para>
+
+</para>
+
+ at nset:
+ at node:
+ at parent:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetAdd ##### -->
+<para>
+
+</para>
+
+ at nset:
+ at newNSet:
+ at op:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetAddList ##### -->
+<para>
+
+</para>
+
+ at nset:
+ at newNSet:
+ at op:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetGetChildren ##### -->
+<para>
+
+</para>
+
+ at doc:
+ at parent:
+ at withComments:
+ at invert:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetWalk ##### -->
+<para>
+
+</para>
+
+ at nset:
+ at walkFunc:
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetDumpTextNodes ##### -->
+<para>
+
+</para>
+
+ at nset:
+ at out:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetDebugDump ##### -->
+<para>
+
+</para>
+
+ at nset:
+ at output:
+
+
diff --git a/docs/api/tmpl/base/parser.sgml b/docs/api/tmpl/base/parser.sgml
new file mode 100644
index 0000000..dd783cd
--- /dev/null
+++ b/docs/api/tmpl/base/parser.sgml
@@ -0,0 +1,72 @@
+<!-- ##### SECTION Title ##### -->
+parser
+
+<!-- ##### SECTION Short_Description ##### -->
+Parser transform implementation.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Parser transform implementation.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecParseFile ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecParseMemory ##### -->
+<para>
+
+</para>
+
+ at buffer:
+ at size:
+ at recovery:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecParseMemoryExt ##### -->
+<para>
+
+</para>
+
+ at prefix:
+ at prefixSize:
+ at buffer:
+ at bufferSize:
+ at postfix:
+ at postfixSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformXmlParserId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformXmlParserGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/private.sgml b/docs/api/tmpl/base/private.sgml
new file mode 100644
index 0000000..3ffde0a
--- /dev/null
+++ b/docs/api/tmpl/base/private.sgml
@@ -0,0 +1,288 @@
+<!-- ##### SECTION Title ##### -->
+private
+
+<!-- ##### SECTION Short_Description ##### -->
+Private header for building xmlsec-crypto-engine libraries.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Private header for building xmlsec-crypto-engine libraries.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoInitMethod ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoShutdownMethod ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoKeysMngrInitMethod ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoKeyDataGetKlassMethod ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoKeyDataStoreGetKlassMethod ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoTransformGetKlassMethod ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoAppInitMethod ##### -->
+<para>
+
+</para>
+
+ at config:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoAppShutdownMethod ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoAppKeysMngrCertLoadMethod ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at filename:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoAppKeysMngrCertLoadMemoryMethod ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at data:
+ at dataSize:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoAppKeyLoadMethod ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoAppKeyLoadMemoryMethod ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoAppPkcs12LoadMethod ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoAppPkcs12LoadMemoryMethod ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoAppKeyCertLoadMethod ##### -->
+<para>
+
+</para>
+
+ at key:
+ at filename:
+ at format:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCryptoAppKeyCertLoadMemoryMethod ##### -->
+<para>
+
+</para>
+
+ at key:
+ at data:
+ at dataSize:
+ at format:
+ at Returns:
+
+
+<!-- ##### STRUCT xmlSecCryptoDLFunctions ##### -->
+<para>
+
+</para>
+
+ at cryptoInit:
+ at cryptoShutdown:
+ at cryptoKeysMngrInit:
+ at keyDataAesGetKlass:
+ at keyDataDesGetKlass:
+ at keyDataDsaGetKlass:
+ at keyDataEcdsaGetKlass:
+ at keyDataGost2001GetKlass:
+ at keyDataGostR3410_2012_256GetKlass:
+ at keyDataGostR3410_2012_512GetKlass:
+ at keyDataHmacGetKlass:
+ at keyDataRsaGetKlass:
+ at keyDataX509GetKlass:
+ at keyDataRawX509CertGetKlass:
+ at x509StoreGetKlass:
+ at transformAes128CbcGetKlass:
+ at transformAes192CbcGetKlass:
+ at transformAes256CbcGetKlass:
+ at transformKWAes128GetKlass:
+ at transformKWAes192GetKlass:
+ at transformKWAes256GetKlass:
+ at transformDes3CbcGetKlass:
+ at transformKWDes3GetKlass:
+ at transformDsaSha1GetKlass:
+ at transformDsaSha256GetKlass:
+ at transformEcdsaSha1GetKlass:
+ at transformEcdsaSha224GetKlass:
+ at transformEcdsaSha256GetKlass:
+ at transformEcdsaSha384GetKlass:
+ at transformEcdsaSha512GetKlass:
+ at transformGost2001GostR3411_94GetKlass:
+ at transformGostR3410_2012GostR3411_2012_256GetKlass:
+ at transformGostR3410_2012GostR3411_2012_512GetKlass:
+ at transformHmacMd5GetKlass:
+ at transformHmacRipemd160GetKlass:
+ at transformHmacSha1GetKlass:
+ at transformHmacSha224GetKlass:
+ at transformHmacSha256GetKlass:
+ at transformHmacSha384GetKlass:
+ at transformHmacSha512GetKlass:
+ at transformMd5GetKlass:
+ at transformRipemd160GetKlass:
+ at transformRsaMd5GetKlass:
+ at transformRsaRipemd160GetKlass:
+ at transformRsaSha1GetKlass:
+ at transformRsaSha224GetKlass:
+ at transformRsaSha256GetKlass:
+ at transformRsaSha384GetKlass:
+ at transformRsaSha512GetKlass:
+ at transformRsaPkcs1GetKlass:
+ at transformRsaOaepGetKlass:
+ at transformGostR3411_94GetKlass:
+ at transformGostR3411_2012_256GetKlass:
+ at transformGostR3411_2012_512GetKlass:
+ at transformSha1GetKlass:
+ at transformSha224GetKlass:
+ at transformSha256GetKlass:
+ at transformSha384GetKlass:
+ at transformSha512GetKlass:
+ at cryptoAppInit:
+ at cryptoAppShutdown:
+ at cryptoAppDefaultKeysMngrInit:
+ at cryptoAppDefaultKeysMngrAdoptKey:
+ at cryptoAppDefaultKeysMngrLoad:
+ at cryptoAppDefaultKeysMngrSave:
+ at cryptoAppKeysMngrCertLoad:
+ at cryptoAppKeysMngrCertLoadMemory:
+ at cryptoAppKeyLoad:
+ at cryptoAppKeyLoadMemory:
+ at cryptoAppPkcs12Load:
+ at cryptoAppPkcs12LoadMemory:
+ at cryptoAppKeyCertLoad:
+ at cryptoAppKeyCertLoadMemory:
+ at cryptoAppDefaultPwdCallback:
+
+<!-- ##### MACRO xmlSecStrPrintf ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecStrVPrintf ##### -->
+<para>
+
+</para>
+
+
+
diff --git a/docs/api/tmpl/base/templates.sgml b/docs/api/tmpl/base/templates.sgml
new file mode 100644
index 0000000..861ec8e
--- /dev/null
+++ b/docs/api/tmpl/base/templates.sgml
@@ -0,0 +1,449 @@
+<!-- ##### SECTION Title ##### -->
+templates
+
+<!-- ##### SECTION Short_Description ##### -->
+Dynamic templates creation functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Dynamic templates creation functions.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecTmplSignatureCreate ##### -->
+<para>
+
+</para>
+
+ at doc:
+ at c14nMethodId:
+ at signMethodId:
+ at id:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplSignatureCreateNsPref ##### -->
+<para>
+
+</para>
+
+ at doc:
+ at c14nMethodId:
+ at signMethodId:
+ at id:
+ at nsPrefix:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplSignatureEnsureKeyInfo ##### -->
+<para>
+
+</para>
+
+ at signNode:
+ at id:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplSignatureAddReference ##### -->
+<para>
+
+</para>
+
+ at signNode:
+ at digestMethodId:
+ at id:
+ at uri:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplSignatureAddObject ##### -->
+<para>
+
+</para>
+
+ at signNode:
+ at id:
+ at mimeType:
+ at encoding:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplSignatureGetSignMethodNode ##### -->
+<para>
+
+</para>
+
+ at signNode:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplSignatureGetC14NMethodNode ##### -->
+<para>
+
+</para>
+
+ at signNode:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplReferenceAddTransform ##### -->
+<para>
+
+</para>
+
+ at referenceNode:
+ at transformId:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplObjectAddSignProperties ##### -->
+<para>
+
+</para>
+
+ at objectNode:
+ at id:
+ at target:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplObjectAddManifest ##### -->
+<para>
+
+</para>
+
+ at objectNode:
+ at id:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplManifestAddReference ##### -->
+<para>
+
+</para>
+
+ at manifestNode:
+ at digestMethodId:
+ at id:
+ at uri:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplEncDataCreate ##### -->
+<para>
+
+</para>
+
+ at doc:
+ at encMethodId:
+ at id:
+ at type:
+ at mimeType:
+ at encoding:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplEncDataEnsureKeyInfo ##### -->
+<para>
+
+</para>
+
+ at encNode:
+ at id:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplEncDataEnsureEncProperties ##### -->
+<para>
+
+</para>
+
+ at encNode:
+ at id:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplEncDataAddEncProperty ##### -->
+<para>
+
+</para>
+
+ at encNode:
+ at id:
+ at target:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplEncDataEnsureCipherValue ##### -->
+<para>
+
+</para>
+
+ at encNode:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplEncDataEnsureCipherReference ##### -->
+<para>
+
+</para>
+
+ at encNode:
+ at uri:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplEncDataGetEncMethodNode ##### -->
+<para>
+
+</para>
+
+ at encNode:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplCipherReferenceAddTransform ##### -->
+<para>
+
+</para>
+
+ at cipherReferenceNode:
+ at transformId:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplReferenceListAddDataReference ##### -->
+<para>
+
+</para>
+
+ at encNode:
+ at uri:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplReferenceListAddKeyReference ##### -->
+<para>
+
+</para>
+
+ at encNode:
+ at uri:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplKeyInfoAddKeyName ##### -->
+<para>
+
+</para>
+
+ at keyInfoNode:
+ at name:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplKeyInfoAddKeyValue ##### -->
+<para>
+
+</para>
+
+ at keyInfoNode:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplKeyInfoAddX509Data ##### -->
+<para>
+
+</para>
+
+ at keyInfoNode:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplKeyInfoAddRetrievalMethod ##### -->
+<para>
+
+</para>
+
+ at keyInfoNode:
+ at uri:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplRetrievalMethodAddTransform ##### -->
+<para>
+
+</para>
+
+ at retrMethodNode:
+ at transformId:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplKeyInfoAddEncryptedKey ##### -->
+<para>
+
+</para>
+
+ at keyInfoNode:
+ at encMethodId:
+ at id:
+ at type:
+ at recipient:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplX509DataAddIssuerSerial ##### -->
+<para>
+
+</para>
+
+ at x509DataNode:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplX509IssuerSerialAddIssuerName ##### -->
+<para>
+
+</para>
+
+ at x509IssuerSerialNode:
+ at issuerName:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplX509IssuerSerialAddSerialNumber ##### -->
+<para>
+
+</para>
+
+ at x509IssuerSerialNode:
+ at serial:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplX509DataAddSubjectName ##### -->
+<para>
+
+</para>
+
+ at x509DataNode:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplX509DataAddSKI ##### -->
+<para>
+
+</para>
+
+ at x509DataNode:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplX509DataAddCertificate ##### -->
+<para>
+
+</para>
+
+ at x509DataNode:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplX509DataAddCRL ##### -->
+<para>
+
+</para>
+
+ at x509DataNode:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplTransformAddHmacOutputLength ##### -->
+<para>
+
+</para>
+
+ at transformNode:
+ at bitsLen:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplTransformAddRsaOaepParam ##### -->
+<para>
+
+</para>
+
+ at transformNode:
+ at buf:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplTransformAddXsltStylesheet ##### -->
+<para>
+
+</para>
+
+ at transformNode:
+ at xslt:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplTransformAddC14NInclNamespaces ##### -->
+<para>
+
+</para>
+
+ at transformNode:
+ at prefixList:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplTransformAddXPath ##### -->
+<para>
+
+</para>
+
+ at transformNode:
+ at expression:
+ at nsList:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplTransformAddXPath2 ##### -->
+<para>
+
+</para>
+
+ at transformNode:
+ at type:
+ at expression:
+ at nsList:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTmplTransformAddXPointer ##### -->
+<para>
+
+</para>
+
+ at transformNode:
+ at expression:
+ at nsList:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/transforms.sgml b/docs/api/tmpl/base/transforms.sgml
new file mode 100644
index 0000000..4ceb0a9
--- /dev/null
+++ b/docs/api/tmpl/base/transforms.sgml
@@ -0,0 +1,1323 @@
+<!-- ##### SECTION Title ##### -->
+transforms
+
+<!-- ##### SECTION Short_Description ##### -->
+Transform object definition.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Transform object definition.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO XMLSEC_TRANSFORM_BINARY_CHUNK ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformIdsGet ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformIdsInit ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformIdsShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+
+
+<!-- ##### FUNCTION xmlSecTransformIdsRegisterDefault ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformIdsRegister ##### -->
+<para>
+
+</para>
+
+ at id:
+ at Returns:
+
+
+<!-- ##### ENUM xmlSecTransformStatus ##### -->
+<para>
+
+</para>
+
+ at xmlSecTransformStatusNone:
+ at xmlSecTransformStatusWorking:
+ at xmlSecTransformStatusFinished:
+ at xmlSecTransformStatusOk:
+ at xmlSecTransformStatusFail:
+
+<!-- ##### ENUM xmlSecTransformMode ##### -->
+<para>
+
+</para>
+
+ at xmlSecTransformModeNone:
+ at xmlSecTransformModePush:
+ at xmlSecTransformModePop:
+
+<!-- ##### ENUM xmlSecTransformOperation ##### -->
+<para>
+
+</para>
+
+ at xmlSecTransformOperationNone:
+ at xmlSecTransformOperationEncode:
+ at xmlSecTransformOperationDecode:
+ at xmlSecTransformOperationSign:
+ at xmlSecTransformOperationVerify:
+ at xmlSecTransformOperationEncrypt:
+ at xmlSecTransformOperationDecrypt:
+
+<!-- ##### TYPEDEF xmlSecTransformUriType ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO xmlSecTransformUriTypeNone ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecTransformUriTypeEmpty ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecTransformUriTypeSameDocument ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecTransformUriTypeLocal ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecTransformUriTypeRemote ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecTransformUriTypeAny ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformUriTypeCheck ##### -->
+<para>
+
+</para>
+
+ at type:
+ at uri:
+ at Returns:
+
+
+<!-- ##### TYPEDEF xmlSecTransformDataType ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO xmlSecTransformDataTypeUnknown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecTransformDataTypeBin ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecTransformDataTypeXml ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### TYPEDEF xmlSecTransformUsage ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO xmlSecTransformUsageUnknown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecTransformUsageDSigTransform ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecTransformUsageC14NMethod ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecTransformUsageDigestMethod ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecTransformUsageSignatureMethod ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecTransformUsageEncryptionMethod ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecTransformUsageAny ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformCtxPreExecuteCallback ##### -->
+<para>
+
+</para>
+
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### MACRO XMLSEC_TRANSFORMCTX_FLAGS_USE_VISA3D_HACK ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT xmlSecTransformCtx ##### -->
+<para>
+
+</para>
+
+ at userData:
+ at flags:
+ at flags2:
+ at enabledUris:
+ at enabledTransforms:
+ at preExecCallback:
+ at result:
+ at status:
+ at uri:
+ at xptrExpr:
+ at first:
+ at last:
+ at reserved0:
+ at reserved1:
+
+<!-- ##### FUNCTION xmlSecTransformCtxCreate ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxDestroy ##### -->
+<para>
+
+</para>
+
+ at ctx:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxInitialize ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxFinalize ##### -->
+<para>
+
+</para>
+
+ at ctx:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxReset ##### -->
+<para>
+
+</para>
+
+ at ctx:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxCopyUserPref ##### -->
+<para>
+
+</para>
+
+ at dst:
+ at src:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxSetUri ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at uri:
+ at hereNode:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxAppend ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at transform:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxPrepend ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at transform:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxCreateAndAppend ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at id:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxCreateAndPrepend ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at id:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxNodeRead ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at node:
+ at usage:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxNodesListRead ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at node:
+ at usage:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxPrepare ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at inputDataType:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxBinaryExecute ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at data:
+ at dataSize:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxUriExecute ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at uri:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxXmlExecute ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at nodes:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxExecute ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at doc:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxDebugDump ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecTransformCtxDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at output:
+
+
+<!-- ##### STRUCT xmlSecTransform ##### -->
+<para>
+
+</para>
+
+ at id:
+ at operation:
+ at status:
+ at hereNode:
+ at next:
+ at prev:
+ at inBuf:
+ at outBuf:
+ at inNodes:
+ at outNodes:
+ at reserved0:
+ at reserved1:
+
+<!-- ##### FUNCTION xmlSecTransformCreate ##### -->
+<para>
+
+</para>
+
+ at id:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformDestroy ##### -->
+<para>
+
+</para>
+
+ at transform:
+
+
+<!-- ##### FUNCTION xmlSecTransformNodeRead ##### -->
+<para>
+
+</para>
+
+ at node:
+ at usage:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformPump ##### -->
+<para>
+
+</para>
+
+ at left:
+ at right:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformSetKey ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformSetKeyReq ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at keyReq:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformVerify ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at data:
+ at dataSize:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformVerifyNodeContent ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at node:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformGetDataType ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at mode:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformPushBin ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at data:
+ at dataSize:
+ at final:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformPopBin ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at data:
+ at maxDataSize:
+ at dataSize:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformPushXml ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at nodes:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformPopXml ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at nodes:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformExecute ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at last:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformDebugDump ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecTransformDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at output:
+
+
+<!-- ##### MACRO xmlSecTransformGetName ##### -->
+<para>
+
+</para>
+
+ at transform:
+
+
+<!-- ##### MACRO xmlSecTransformIsValid ##### -->
+<para>
+
+</para>
+
+ at transform:
+
+
+<!-- ##### MACRO xmlSecTransformCheckId ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at i:
+
+
+<!-- ##### MACRO xmlSecTransformCheckSize ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at size:
+
+
+<!-- ##### FUNCTION xmlSecTransformConnect ##### -->
+<para>
+
+</para>
+
+ at left:
+ at right:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformRemove ##### -->
+<para>
+
+</para>
+
+ at transform:
+
+
+<!-- ##### FUNCTION xmlSecTransformDefaultGetDataType ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at mode:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformDefaultPushBin ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at data:
+ at dataSize:
+ at final:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformDefaultPopBin ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at data:
+ at maxDataSize:
+ at dataSize:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformDefaultPushXml ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at nodes:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformDefaultPopXml ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at nodes:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCreateOutputBuffer ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformCreateInputBuffer ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformInitializeMethod ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformFinalizeMethod ##### -->
+<para>
+
+</para>
+
+ at transform:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformGetDataTypeMethod ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at mode:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformNodeReadMethod ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at node:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformNodeWriteMethod ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at node:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformSetKeyRequirementsMethod ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at keyReq:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformSetKeyMethod ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at key:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformVerifyMethod ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at data:
+ at dataSize:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformPushBinMethod ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at data:
+ at dataSize:
+ at final:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformPopBinMethod ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at data:
+ at maxDataSize:
+ at dataSize:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformPushXmlMethod ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at nodes:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformPopXmlMethod ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at nodes:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformExecuteMethod ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at last:
+ at transformCtx:
+ at Returns:
+
+
+<!-- ##### STRUCT xmlSecTransformKlass ##### -->
+<para>
+
+</para>
+
+ at klassSize:
+ at objSize:
+ at name:
+ at href:
+ at usage:
+ at initialize:
+ at finalize:
+ at readNode:
+ at writeNode:
+ at setKeyReq:
+ at setKey:
+ at verify:
+ at getDataType:
+ at pushBin:
+ at popBin:
+ at pushXml:
+ at popXml:
+ at execute:
+ at reserved0:
+ at reserved1:
+
+<!-- ##### MACRO xmlSecTransformKlassGetName ##### -->
+<para>
+
+</para>
+
+ at klass:
+
+
+<!-- ##### MACRO xmlSecTransformIdListId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformIdListGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformIdListFind ##### -->
+<para>
+
+</para>
+
+ at list:
+ at transformId:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformIdListFindByHref ##### -->
+<para>
+
+</para>
+
+ at list:
+ at href:
+ at usage:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformIdListFindByName ##### -->
+<para>
+
+</para>
+
+ at list:
+ at name:
+ at usage:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformIdListDebugDump ##### -->
+<para>
+
+</para>
+
+ at list:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecTransformIdListDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at list:
+ at output:
+
+
+<!-- ##### MACRO xmlSecTransformIdUnknown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecTransformBase64Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformBase64GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformBase64SetLineSize ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at lineSize:
+
+
+<!-- ##### MACRO xmlSecTransformInclC14NId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformInclC14NGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformInclC14NWithCommentsId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformInclC14NWithCommentsGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformInclC14N11Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformInclC14N11GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformInclC14N11WithCommentsId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformInclC14N11WithCommentsGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformExclC14NId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformExclC14NGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformExclC14NWithCommentsId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformExclC14NWithCommentsGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformEnvelopedId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformEnvelopedGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformXPathId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformXPathGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformXPath2Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformXPath2GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformXPointerId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformXPointerGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformXPointerSetExpr ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at expr:
+ at nodeSetType:
+ at hereNode:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformRelationshipId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformRelationshipGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformXsltId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformXsltGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformXsltSetDefaultSecurityPrefs ##### -->
+<para>
+
+</para>
+
+ at sec:
+
+
+<!-- ##### MACRO xmlSecTransformRemoveXmlTagsC14NId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformRemoveXmlTagsC14NGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecTransformVisa3DHackId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformVisa3DHackGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformVisa3DHackSetID ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at id:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/version.sgml b/docs/api/tmpl/base/version.sgml
new file mode 100644
index 0000000..a154ef8
--- /dev/null
+++ b/docs/api/tmpl/base/version.sgml
@@ -0,0 +1,57 @@
+<!-- ##### SECTION Title ##### -->
+version
+
+<!-- ##### SECTION Short_Description ##### -->
+Version macros.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Version macros.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO XMLSEC_VERSION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_VERSION_MAJOR ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_VERSION_MINOR ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_VERSION_SUBMINOR ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_VERSION_INFO ##### -->
+<para>
+
+</para>
+
+
+
diff --git a/docs/api/tmpl/base/x509.sgml b/docs/api/tmpl/base/x509.sgml
new file mode 100644
index 0000000..6df7936
--- /dev/null
+++ b/docs/api/tmpl/base/x509.sgml
@@ -0,0 +1,74 @@
+<!-- ##### SECTION Title ##### -->
+x509
+
+<!-- ##### SECTION Short_Description ##### -->
+<dsig:X509Certificate/> node parser.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+<dsig:X509Certificate/> node parser.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO XMLSEC_X509DATA_CERTIFICATE_NODE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_X509DATA_SUBJECTNAME_NODE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_X509DATA_ISSUERSERIAL_NODE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_X509DATA_SKI_NODE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_X509DATA_CRL_NODE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_X509DATA_DEFAULT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecX509DataGetNodeContent ##### -->
+<para>
+
+</para>
+
+ at node:
+ at keyInfoCtx:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/xmldsig.sgml b/docs/api/tmpl/base/xmldsig.sgml
new file mode 100644
index 0000000..e6d0a6d
--- /dev/null
+++ b/docs/api/tmpl/base/xmldsig.sgml
@@ -0,0 +1,316 @@
+<!-- ##### SECTION Title ##### -->
+xmldsig
+
+<!-- ##### SECTION Short_Description ##### -->
+XML Digital Signature support.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+XML Digital Signature support.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### ENUM xmlSecDSigStatus ##### -->
+<para>
+
+</para>
+
+ at xmlSecDSigStatusUnknown:
+ at xmlSecDSigStatusSucceeded:
+ at xmlSecDSigStatusInvalid:
+
+<!-- ##### MACRO XMLSEC_DSIG_FLAGS_IGNORE_MANIFESTS ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_DSIG_FLAGS_STORE_SIGNEDINFO_REFERENCES ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_DSIG_FLAGS_STORE_MANIFEST_REFERENCES ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_DSIG_FLAGS_STORE_SIGNATURE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_DSIG_FLAGS_USE_VISA3D_HACK ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT xmlSecDSigCtx ##### -->
+<para>
+
+</para>
+
+ at userData:
+ at flags:
+ at flags2:
+ at keyInfoReadCtx:
+ at keyInfoWriteCtx:
+ at transformCtx:
+ at enabledReferenceUris:
+ at enabledReferenceTransforms:
+ at referencePreExecuteCallback:
+ at defSignMethodId:
+ at defC14NMethodId:
+ at defDigestMethodId:
+ at signKey:
+ at operation:
+ at result:
+ at status:
+ at signMethod:
+ at c14nMethod:
+ at preSignMemBufMethod:
+ at signValueNode:
+ at id:
+ at signedInfoReferences:
+ at manifestReferences:
+ at reserved0:
+ at reserved1:
+
+<!-- ##### FUNCTION xmlSecDSigCtxCreate ##### -->
+<para>
+
+</para>
+
+ at keysMngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigCtxDestroy ##### -->
+<para>
+
+</para>
+
+ at dsigCtx:
+
+
+<!-- ##### FUNCTION xmlSecDSigCtxInitialize ##### -->
+<para>
+
+</para>
+
+ at dsigCtx:
+ at keysMngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigCtxFinalize ##### -->
+<para>
+
+</para>
+
+ at dsigCtx:
+
+
+<!-- ##### FUNCTION xmlSecDSigCtxSign ##### -->
+<para>
+
+</para>
+
+ at dsigCtx:
+ at tmpl:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigCtxVerify ##### -->
+<para>
+
+</para>
+
+ at dsigCtx:
+ at node:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigCtxEnableReferenceTransform ##### -->
+<para>
+
+</para>
+
+ at dsigCtx:
+ at transformId:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigCtxEnableSignatureTransform ##### -->
+<para>
+
+</para>
+
+ at dsigCtx:
+ at transformId:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigCtxGetPreSignBuffer ##### -->
+<para>
+
+</para>
+
+ at dsigCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigCtxDebugDump ##### -->
+<para>
+
+</para>
+
+ at dsigCtx:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecDSigCtxDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at dsigCtx:
+ at output:
+
+
+<!-- ##### ENUM xmlSecDSigReferenceOrigin ##### -->
+<para>
+
+</para>
+
+ at xmlSecDSigReferenceOriginSignedInfo:
+ at xmlSecDSigReferenceOriginManifest:
+
+<!-- ##### STRUCT xmlSecDSigReferenceCtx ##### -->
+<para>
+
+</para>
+
+ at userData:
+ at dsigCtx:
+ at origin:
+ at transformCtx:
+ at digestMethod:
+ at result:
+ at status:
+ at preDigestMemBufMethod:
+ at id:
+ at uri:
+ at type:
+ at reserved0:
+ at reserved1:
+
+<!-- ##### FUNCTION xmlSecDSigReferenceCtxCreate ##### -->
+<para>
+
+</para>
+
+ at dsigCtx:
+ at origin:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigReferenceCtxDestroy ##### -->
+<para>
+
+</para>
+
+ at dsigRefCtx:
+
+
+<!-- ##### FUNCTION xmlSecDSigReferenceCtxInitialize ##### -->
+<para>
+
+</para>
+
+ at dsigRefCtx:
+ at dsigCtx:
+ at origin:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigReferenceCtxFinalize ##### -->
+<para>
+
+</para>
+
+ at dsigRefCtx:
+
+
+<!-- ##### FUNCTION xmlSecDSigReferenceCtxProcessNode ##### -->
+<para>
+
+</para>
+
+ at dsigRefCtx:
+ at node:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigReferenceCtxGetPreDigestBuffer ##### -->
+<para>
+
+</para>
+
+ at dsigRefCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigReferenceCtxDebugDump ##### -->
+<para>
+
+</para>
+
+ at dsigRefCtx:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecDSigReferenceCtxDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at dsigRefCtx:
+ at output:
+
+
+<!-- ##### MACRO xmlSecDSigReferenceCtxListId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecDSigReferenceCtxListGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/base/xmlenc.sgml b/docs/api/tmpl/base/xmlenc.sgml
new file mode 100644
index 0000000..f10b113
--- /dev/null
+++ b/docs/api/tmpl/base/xmlenc.sgml
@@ -0,0 +1,194 @@
+<!-- ##### SECTION Title ##### -->
+xmlenc
+
+<!-- ##### SECTION Short_Description ##### -->
+XML Encryption support.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+XML Encryption support.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### ENUM xmlEncCtxMode ##### -->
+<para>
+
+</para>
+
+ at xmlEncCtxModeEncryptedData:
+ at xmlEncCtxModeEncryptedKey:
+
+<!-- ##### MACRO XMLSEC_ENC_RETURN_REPLACED_NODE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT xmlSecEncCtx ##### -->
+<para>
+
+</para>
+
+ at userData:
+ at flags:
+ at flags2:
+ at mode:
+ at keyInfoReadCtx:
+ at keyInfoWriteCtx:
+ at transformCtx:
+ at defEncMethodId:
+ at encKey:
+ at operation:
+ at result:
+ at resultBase64Encoded:
+ at resultReplaced:
+ at encMethod:
+ at id:
+ at type:
+ at mimeType:
+ at encoding:
+ at recipient:
+ at carriedKeyName:
+ at encDataNode:
+ at encMethodNode:
+ at keyInfoNode:
+ at cipherValueNode:
+ at replacedNodeList:
+ at reserved1:
+
+<!-- ##### FUNCTION xmlSecEncCtxCreate ##### -->
+<para>
+
+</para>
+
+ at keysMngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncCtxDestroy ##### -->
+<para>
+
+</para>
+
+ at encCtx:
+
+
+<!-- ##### FUNCTION xmlSecEncCtxInitialize ##### -->
+<para>
+
+</para>
+
+ at encCtx:
+ at keysMngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncCtxFinalize ##### -->
+<para>
+
+</para>
+
+ at encCtx:
+
+
+<!-- ##### FUNCTION xmlSecEncCtxCopyUserPref ##### -->
+<para>
+
+</para>
+
+ at dst:
+ at src:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncCtxReset ##### -->
+<para>
+
+</para>
+
+ at encCtx:
+
+
+<!-- ##### FUNCTION xmlSecEncCtxBinaryEncrypt ##### -->
+<para>
+
+</para>
+
+ at encCtx:
+ at tmpl:
+ at data:
+ at dataSize:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncCtxXmlEncrypt ##### -->
+<para>
+
+</para>
+
+ at encCtx:
+ at tmpl:
+ at node:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncCtxUriEncrypt ##### -->
+<para>
+
+</para>
+
+ at encCtx:
+ at tmpl:
+ at uri:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncCtxDecrypt ##### -->
+<para>
+
+</para>
+
+ at encCtx:
+ at node:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncCtxDecryptToBuffer ##### -->
+<para>
+
+</para>
+
+ at encCtx:
+ at node:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncCtxDebugDump ##### -->
+<para>
+
+</para>
+
+ at encCtx:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecEncCtxDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at encCtx:
+ at output:
+
+
diff --git a/docs/api/tmpl/base/xmlsec-unused.sgml b/docs/api/tmpl/base/xmlsec-unused.sgml
new file mode 100644
index 0000000..e35eac2
--- /dev/null
+++ b/docs/api/tmpl/base/xmlsec-unused.sgml
@@ -0,0 +1,794 @@
+<!-- ##### SECTION ./tmpl/base/xmlsec-unused.sgml:Image ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/xkms.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/xkms.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/xkms.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/xkms.sgml:Title ##### -->
+xkms
+
+
+<!-- ##### SECTION ./tmpl/xmlsec-unused.sgml:Image ##### -->
+
+
+
+<!-- ##### MACRO XMLSEC_XKMS_KEY_BINDING_REASON_MASK_ISSUER_TRAST ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_XKMS_KEY_BINDING_REASON_MASK_REVOCATION_STATUS ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_XKMS_KEY_BINDING_REASON_MASK_SIGNATURE ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_XKMS_KEY_BINDING_REASON_MASK_VALIDITY_INTERVAL ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_XKMS_NO_RESPONSE_LIMIT ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_XKMS_RESPONSE_MECHANISM_MASK_PENDING ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_XKMS_RESPONSE_MECHANISM_MASK_REPRESENT ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_XKMS_RESPONSE_MECHANISM_MASK_REQUEST_SIGNATURE_VALUE ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_KEY_USAGE ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_RESPOND_WITH ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_RESPONSE_MECHANISM ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO xmlSecTransformCheckType ##### -->
+<para>
+
+</para>
+
+ at transform:
+ at t:
+
+<!-- ##### ENUM xmlSecXkmsKeyBindingStatus ##### -->
+<para>
+
+</para>
+
+ at xmlSecXkmsKeyBindingStatusNone:
+ at xmlSecXkmsKeyBindingStatusValid:
+ at xmlSecXkmsKeyBindingStatusInvalid:
+ at xmlSecXkmsKeyBindingStatusIndeterminate:
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithDebugDump ##### -->
+<para>
+
+</para>
+
+ at id:
+ at output:
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at id:
+ at output:
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithDefaultNodeRead ##### -->
+<para>
+
+</para>
+
+ at id:
+ at ctx:
+ at node:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithDefaultNodeWrite ##### -->
+<para>
+
+</para>
+
+ at id:
+ at ctx:
+ at node:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithIdListFind ##### -->
+<para>
+
+</para>
+
+ at list:
+ at id:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithIdListFindByNodeValue ##### -->
+<para>
+
+</para>
+
+ at list:
+ at node:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithIdListGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsRespondWithIdListId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithIdListWrite ##### -->
+<para>
+
+</para>
+
+ at list:
+ at ctx:
+ at node:
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsRespondWithIdUnknown ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithIdsGet ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithIdsInit ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithIdsRegister ##### -->
+<para>
+
+</para>
+
+ at id:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithIdsRegisterDefault ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithIdsShutdown ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithKeyNameGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsRespondWithKeyNameId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithKeyValueGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsRespondWithKeyValueId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithNodeRead ##### -->
+<para>
+
+</para>
+
+ at id:
+ at ctx:
+ at node:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithNodeWrite ##### -->
+<para>
+
+</para>
+
+ at id:
+ at ctx:
+ at node:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithPGPGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsRespondWithPGPId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithPrivateKeyGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsRespondWithPrivateKeyId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithRetrievalMethodGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsRespondWithRetrievalMethodId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithSPKIGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsRespondWithSPKIId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithX509CRLGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsRespondWithX509CRLId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithX509CertGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsRespondWithX509CertId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsRespondWithX509ChainGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsRespondWithX509ChainId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ENUM xmlSecXkmsResultMajor ##### -->
+<para>
+
+</para>
+
+ at xmlSecXkmsResultMajorSuccess:
+ at xmlSecXkmsResultMajorVersionMismatch:
+ at xmlSecXkmsResultMajorSender:
+ at xmlSecXkmsResultMajorReceiver:
+ at xmlSecXkmsResultMajorRepresent:
+ at xmlSecXkmsResultMajorPending:
+
+<!-- ##### ENUM xmlSecXkmsResultMinor ##### -->
+<para>
+
+</para>
+
+ at xmlSecXkmsResultMinorNone:
+ at xmlSecXkmsResultMinorNoMatch:
+ at xmlSecXkmsResultMinorTooManyResponses:
+ at xmlSecXkmsResultMinorIncomplete:
+ at xmlSecXkmsResultMinorFailure:
+ at xmlSecXkmsResultMinorRefused:
+ at xmlSecXkmsResultMinorNoAuthentication:
+ at xmlSecXkmsResultMinorMessageNotSupported:
+ at xmlSecXkmsResultMinorUnknownResponseId:
+ at xmlSecXkmsResultMinorSynchronous:
+
+<!-- ##### STRUCT xmlSecXkmsServerCtx ##### -->
+<para>
+
+</para>
+
+ at userData:
+ at flags:
+ at flags2:
+ at keyInfoReadCtx:
+ at keyInfoWriteCtx:
+ at enabledRespondWithIds:
+ at enabledServerRequestIds:
+ at expectedService:
+ at idPrefix:
+ at idLen:
+ at keys:
+ at resultMajor:
+ at resultMinor:
+ at requestId:
+ at id:
+ at service:
+ at nonce:
+ at originalRequestId:
+ at pendingNotificationMechanism:
+ at pendingNotificationIdentifier:
+ at responseLimit:
+ at responseMechanismMask:
+ at compoundRequestContexts:
+ at requestNode:
+ at opaqueClientDataNode:
+ at firtsMsgExtNode:
+ at keyInfoNode:
+ at respWithList:
+ at reserved0:
+ at reserved1:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxCopyUserPref ##### -->
+<para>
+
+</para>
+
+ at dst:
+ at src:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxCreate ##### -->
+<para>
+
+</para>
+
+ at keysMngr:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxDebugDump ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at output:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at output:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxDestroy ##### -->
+<para>
+
+</para>
+
+ at ctx:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxFatalErrorResponseCreate ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at format:
+ at doc:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxFinalize ##### -->
+<para>
+
+</para>
+
+ at ctx:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxInitialize ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at keysMngr:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxProcess ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at node:
+ at format:
+ at doc:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxPtrListGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsServerCtxPtrListId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxRequestRead ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at node:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxRequestUnwrap ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at node:
+ at format:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxReset ##### -->
+<para>
+
+</para>
+
+ at ctx:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxResponseWrap ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at node:
+ at format:
+ at doc:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxResponseWrite ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at doc:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerCtxSetResult ##### -->
+<para>
+
+</para>
+
+ at ctx:
+ at resultMajor:
+ at resultMinor:
+
+<!-- ##### ENUM xmlSecXkmsServerFormat ##### -->
+<para>
+
+</para>
+
+ at xmlSecXkmsServerFormatUnknown:
+ at xmlSecXkmsServerFormatPlain:
+ at xmlSecXkmsServerFormatSoap11:
+ at xmlSecXkmsServerFormatSoap12:
+
+<!-- ##### FUNCTION xmlSecXkmsServerFormatFromString ##### -->
+<para>
+
+</para>
+
+ at str:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerFormatToString ##### -->
+<para>
+
+</para>
+
+ at format:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestCompoundGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsServerRequestCompoundId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestDebugDump ##### -->
+<para>
+
+</para>
+
+ at id:
+ at output:
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at id:
+ at output:
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestExecute ##### -->
+<para>
+
+</para>
+
+ at id:
+ at ctx:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestIdListFind ##### -->
+<para>
+
+</para>
+
+ at list:
+ at id:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestIdListFindByName ##### -->
+<para>
+
+</para>
+
+ at list:
+ at name:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestIdListFindByNode ##### -->
+<para>
+
+</para>
+
+ at list:
+ at node:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestIdListGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsServerRequestIdListId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO xmlSecXkmsServerRequestIdUnknown ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestIdsGet ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestIdsInit ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestIdsRegister ##### -->
+<para>
+
+</para>
+
+ at id:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestIdsRegisterDefault ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestIdsShutdown ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestLocateGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsServerRequestLocateId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestNodeRead ##### -->
+<para>
+
+</para>
+
+ at id:
+ at ctx:
+ at node:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestNodeWrite ##### -->
+<para>
+
+</para>
+
+ at id:
+ at ctx:
+ at doc:
+ at node:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestResultGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsServerRequestResultId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestStatusGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsServerRequestStatusId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecXkmsServerRequestValidateGetKlass ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
+<!-- ##### MACRO xmlSecXkmsServerRequestValidateId ##### -->
+<para>
+
+</para>
+
+
diff --git a/docs/api/tmpl/base/xmlsec.sgml b/docs/api/tmpl/base/xmlsec.sgml
new file mode 100644
index 0000000..0bc6d17
--- /dev/null
+++ b/docs/api/tmpl/base/xmlsec.sgml
@@ -0,0 +1,151 @@
+<!-- ##### SECTION Title ##### -->
+xmlsec
+
+<!-- ##### SECTION Short_Description ##### -->
+Utility functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Utility functions.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### TYPEDEF xmlSecPtr ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO xmlSecSize ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_SIZE_BAD_CAST ##### -->
+<para>
+
+</para>
+
+ at val:
+
+
+<!-- ##### MACRO xmlSecByte ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecInit ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGetDefaultCrypto ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO XMLSEC_CRYPTO ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecCheckVersionExact ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecCheckVersion ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### ENUM xmlSecCheckVersionMode ##### -->
+<para>
+
+</para>
+
+ at xmlSecCheckVersionExactMatch:
+ at xmlSecCheckVersionABICompatible:
+
+<!-- ##### FUNCTION xmlSecCheckVersionExt ##### -->
+<para>
+
+</para>
+
+ at major:
+ at minor:
+ at subminor:
+ at mode:
+ at Returns:
+
+
+<!-- ##### MACRO ATTRIBUTE_UNUSED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_PTR_TO_FUNC_IMPL ##### -->
+<para>
+
+</para>
+
+ at func_type:
+
+
+<!-- ##### MACRO XMLSEC_PTR_TO_FUNC ##### -->
+<para>
+
+</para>
+
+ at func_type:
+ at ptr:
+
+
+<!-- ##### MACRO XMLSEC_FUNC_TO_PTR ##### -->
+<para>
+
+</para>
+
+ at func_type:
+ at func:
+
+
diff --git a/docs/api/tmpl/base/xmltree.sgml b/docs/api/tmpl/base/xmltree.sgml
new file mode 100644
index 0000000..4a7764e
--- /dev/null
+++ b/docs/api/tmpl/base/xmltree.sgml
@@ -0,0 +1,574 @@
+<!-- ##### SECTION Title ##### -->
+xmltree
+
+<!-- ##### SECTION Short_Description ##### -->
+XML tree operations.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+XML tree operations.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO xmlSecNodeGetName ##### -->
+<para>
+
+</para>
+
+ at node:
+
+
+<!-- ##### FUNCTION xmlSecGetNodeNsHref ##### -->
+<para>
+
+</para>
+
+ at cur:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCheckNodeName ##### -->
+<para>
+
+</para>
+
+ at cur:
+ at name:
+ at ns:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGetNextElementNode ##### -->
+<para>
+
+</para>
+
+ at cur:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecFindSibling ##### -->
+<para>
+
+</para>
+
+ at cur:
+ at name:
+ at ns:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecFindChild ##### -->
+<para>
+
+</para>
+
+ at parent:
+ at name:
+ at ns:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecFindParent ##### -->
+<para>
+
+</para>
+
+ at cur:
+ at name:
+ at ns:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecFindNode ##### -->
+<para>
+
+</para>
+
+ at parent:
+ at name:
+ at ns:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecAddChild ##### -->
+<para>
+
+</para>
+
+ at parent:
+ at name:
+ at ns:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecEnsureEmptyChild ##### -->
+<para>
+
+</para>
+
+ at parent:
+ at name:
+ at ns:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecAddChildNode ##### -->
+<para>
+
+</para>
+
+ at parent:
+ at child:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecAddNextSibling ##### -->
+<para>
+
+</para>
+
+ at node:
+ at name:
+ at ns:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecAddPrevSibling ##### -->
+<para>
+
+</para>
+
+ at node:
+ at name:
+ at ns:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecReplaceNode ##### -->
+<para>
+
+</para>
+
+ at node:
+ at newNode:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecReplaceNodeAndReturn ##### -->
+<para>
+
+</para>
+
+ at node:
+ at newNode:
+ at replaced:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecReplaceContent ##### -->
+<para>
+
+</para>
+
+ at node:
+ at newNode:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecReplaceContentAndReturn ##### -->
+<para>
+
+</para>
+
+ at node:
+ at newNode:
+ at replaced:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecReplaceNodeBuffer ##### -->
+<para>
+
+</para>
+
+ at node:
+ at buffer:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecReplaceNodeBufferAndReturn ##### -->
+<para>
+
+</para>
+
+ at node:
+ at buffer:
+ at size:
+ at replaced:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeEncodeAndSetContent ##### -->
+<para>
+
+</para>
+
+ at node:
+ at buffer:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecAddIDs ##### -->
+<para>
+
+</para>
+
+ at doc:
+ at cur:
+ at ids:
+
+
+<!-- ##### FUNCTION xmlSecGenerateAndAddID ##### -->
+<para>
+
+</para>
+
+ at node:
+ at attrName:
+ at prefix:
+ at len:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGenerateID ##### -->
+<para>
+
+</para>
+
+ at prefix:
+ at len:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecCreateTree ##### -->
+<para>
+
+</para>
+
+ at rootNodeName:
+ at rootNodeNs:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecIsEmptyNode ##### -->
+<para>
+
+</para>
+
+ at node:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecIsEmptyString ##### -->
+<para>
+
+</para>
+
+ at str:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGetQName ##### -->
+<para>
+
+</para>
+
+ at node:
+ at href:
+ at local:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecPrintXmlString ##### -->
+<para>
+
+</para>
+
+ at fd:
+ at str:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecIsHex ##### -->
+<para>
+
+</para>
+
+ at c:
+
+
+<!-- ##### MACRO xmlSecGetHex ##### -->
+<para>
+
+</para>
+
+ at c:
+
+
+<!-- ##### STRUCT xmlSecQName2IntegerInfo ##### -->
+<para>
+
+</para>
+
+ at qnameHref:
+ at qnameLocalPart:
+ at intValue:
+
+<!-- ##### TYPEDEF xmlSecQName2IntegerInfoConstPtr ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecQName2IntegerGetInfo ##### -->
+<para>
+
+</para>
+
+ at info:
+ at intValue:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecQName2IntegerGetInteger ##### -->
+<para>
+
+</para>
+
+ at info:
+ at qnameHref:
+ at qnameLocalPart:
+ at intValue:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecQName2IntegerGetIntegerFromString ##### -->
+<para>
+
+</para>
+
+ at info:
+ at node:
+ at qname:
+ at intValue:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecQName2IntegerGetStringFromInteger ##### -->
+<para>
+
+</para>
+
+ at info:
+ at node:
+ at intValue:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecQName2IntegerNodeRead ##### -->
+<para>
+
+</para>
+
+ at info:
+ at node:
+ at intValue:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecQName2IntegerNodeWrite ##### -->
+<para>
+
+</para>
+
+ at info:
+ at node:
+ at nodeName:
+ at nodeNs:
+ at intValue:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecQName2IntegerAttributeRead ##### -->
+<para>
+
+</para>
+
+ at info:
+ at node:
+ at attrName:
+ at intValue:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecQName2IntegerAttributeWrite ##### -->
+<para>
+
+</para>
+
+ at info:
+ at node:
+ at attrName:
+ at intValue:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecQName2IntegerDebugDump ##### -->
+<para>
+
+</para>
+
+ at info:
+ at intValue:
+ at name:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecQName2IntegerDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at info:
+ at intValue:
+ at name:
+ at output:
+
+
+<!-- ##### TYPEDEF xmlSecBitMask ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT xmlSecQName2BitMaskInfo ##### -->
+<para>
+
+</para>
+
+ at qnameHref:
+ at qnameLocalPart:
+ at mask:
+
+<!-- ##### TYPEDEF xmlSecQName2BitMaskInfoConstPtr ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecQName2BitMaskGetInfo ##### -->
+<para>
+
+</para>
+
+ at info:
+ at mask:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecQName2BitMaskGetBitMask ##### -->
+<para>
+
+</para>
+
+ at info:
+ at qnameLocalPart:
+ at qnameHref:
+ at mask:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecQName2BitMaskNodesRead ##### -->
+<para>
+
+</para>
+
+ at info:
+ at node:
+ at nodeName:
+ at nodeNs:
+ at stopOnUnknown:
+ at mask:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecQName2BitMaskGetBitMaskFromString ##### -->
+<para>
+
+</para>
+
+ at info:
+ at node:
+ at qname:
+ at mask:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecQName2BitMaskGetStringFromBitMask ##### -->
+<para>
+
+</para>
+
+ at info:
+ at node:
+ at mask:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecQName2BitMaskNodesWrite ##### -->
+<para>
+
+</para>
+
+ at info:
+ at node:
+ at nodeName:
+ at nodeNs:
+ at mask:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecQName2BitMaskDebugDump ##### -->
+<para>
+
+</para>
+
+ at info:
+ at mask:
+ at name:
+ at output:
+
+
+<!-- ##### FUNCTION xmlSecQName2BitMaskDebugXmlDump ##### -->
+<para>
+
+</para>
+
+ at info:
+ at mask:
+ at name:
+ at output:
+
+
diff --git a/docs/api/tmpl/gcrypt/app.sgml b/docs/api/tmpl/gcrypt/app.sgml
new file mode 100644
index 0000000..4a009fc
--- /dev/null
+++ b/docs/api/tmpl/gcrypt/app.sgml
@@ -0,0 +1,189 @@
+<!-- ##### SECTION Title ##### -->
+app
+
+<!-- ##### SECTION Short_Description ##### -->
+Application functions implementation for GnuTLS.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Application functions implementation for GCrypt.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppInit ##### -->
+<para>
+
+</para>
+
+ at config:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppDefaultKeysMngrInit ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppDefaultKeysMngrAdoptKey ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppDefaultKeysMngrLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at uri:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppDefaultKeysMngrSave ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at filename:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppKeysMngrCertLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at filename:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppKeysMngrCertLoadMemory ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at data:
+ at dataSize:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppKeyLoad ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppKeyLoadMemory ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppPkcs12Load ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppPkcs12LoadMemory ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppKeyCertLoad ##### -->
+<para>
+
+</para>
+
+ at key:
+ at filename:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppKeyCertLoadMemory ##### -->
+<para>
+
+</para>
+
+ at key:
+ at data:
+ at dataSize:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptAppGetDefaultPwdCallback ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/gcrypt/crypto.sgml b/docs/api/tmpl/gcrypt/crypto.sgml
new file mode 100644
index 0000000..b079b8c
--- /dev/null
+++ b/docs/api/tmpl/gcrypt/crypto.sgml
@@ -0,0 +1,708 @@
+<!-- ##### SECTION Title ##### -->
+crypto
+
+<!-- ##### SECTION Short_Description ##### -->
+Crypto transforms implementation for GCrypt.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Crypto transforms implementation for GCrypt.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecCryptoGetFunctions_gcrypt ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptInit ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeysMngrInit ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptGenerateRandom ##### -->
+<para>
+
+</para>
+
+ at buffer:
+ at size:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptKeyDataAesId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataAesGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataAesSet ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformAes128CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformAes128CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformAes192CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformAes192CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformAes256CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformAes256CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformKWAes128Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformKWAes128GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformKWAes192Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformKWAes192GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformKWAes256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformKWAes256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptKeyDataDesId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataDesGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataDesSet ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformDes3CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformDes3CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformKWDes3Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformKWDes3GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptKeyDataDsaId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataDsaGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataDsaAdoptKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dsa_key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataDsaAdoptKeyPair ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pub_key:
+ at priv_key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataDsaGetPublicKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataDsaGetPrivateKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformDsaSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformDsaSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptHmacGetMinOutputLength ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptHmacSetMinOutputLength ##### -->
+<para>
+
+</para>
+
+ at min_length:
+
+
+<!-- ##### MACRO xmlSecGCryptKeyDataHmacId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataHmacGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataHmacSet ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformHmacMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformHmacMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformHmacRipemd160Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformHmacRipemd160GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformHmacSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformHmacSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformHmacSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformHmacSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformHmacSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformHmacSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformHmacSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformHmacSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptKeyDataRsaId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataRsaGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataRsaAdoptKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at rsa_key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataRsaAdoptKeyPair ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pub_key:
+ at priv_key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataRsaGetPublicKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGCryptKeyDataRsaGetPrivateKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformRsaMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformRsaMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformRsaRipemd160Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformRsaRipemd160GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformRsaSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformRsaSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformRsaSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformRsaSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformRsaSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformRsaSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformRsaSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformRsaSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGCryptTransformRipemd160Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGCryptTransformRipemd160GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/gcrypt/xmlsec-gcrypt-unused.sgml b/docs/api/tmpl/gcrypt/xmlsec-gcrypt-unused.sgml
new file mode 100644
index 0000000..7377b2e
--- /dev/null
+++ b/docs/api/tmpl/gcrypt/xmlsec-gcrypt-unused.sgml
@@ -0,0 +1,15 @@
+<!-- ##### SECTION ./tmpl/gcrypt/xmlsec-gcrypt-unused.sgml:Image ##### -->
+
+
+
+<!-- ##### SECTION tmpl/gcrypt/xmlsec-gcrypt-unused.sgml:Image ##### -->
+
+
+
+<!-- ##### FUNCTION xmlSecCryptoGetFunctions_GCrypt ##### -->
+<para>
+
+</para>
+
+ at Returns:
+
diff --git a/docs/api/tmpl/gnutls/app.sgml b/docs/api/tmpl/gnutls/app.sgml
new file mode 100644
index 0000000..24bd87a
--- /dev/null
+++ b/docs/api/tmpl/gnutls/app.sgml
@@ -0,0 +1,189 @@
+<!-- ##### SECTION Title ##### -->
+app
+
+<!-- ##### SECTION Short_Description ##### -->
+Application functions implementation for GnuTLS.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Application functions implementation for GnuTLS.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppInit ##### -->
+<para>
+
+</para>
+
+ at config:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppDefaultKeysMngrInit ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppDefaultKeysMngrAdoptKey ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppDefaultKeysMngrLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at uri:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppDefaultKeysMngrSave ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at filename:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppKeysMngrCertLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at filename:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppKeysMngrCertLoadMemory ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at data:
+ at dataSize:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppKeyLoad ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppKeyLoadMemory ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppPkcs12Load ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppPkcs12LoadMemory ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppKeyCertLoad ##### -->
+<para>
+
+</para>
+
+ at key:
+ at filename:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppKeyCertLoadMemory ##### -->
+<para>
+
+</para>
+
+ at key:
+ at data:
+ at dataSize:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSAppGetDefaultPwdCallback ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/gnutls/crypto.sgml b/docs/api/tmpl/gnutls/crypto.sgml
new file mode 100644
index 0000000..fb8130d
--- /dev/null
+++ b/docs/api/tmpl/gnutls/crypto.sgml
@@ -0,0 +1,674 @@
+<!-- ##### SECTION Title ##### -->
+crypto
+
+<!-- ##### SECTION Short_Description ##### -->
+Crypto transforms implementation for GnuTLS.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Crypto transforms implementation for GnuTLS.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecCryptoGetFunctions_gnutls ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSInit ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeysMngrInit ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSGenerateRandom ##### -->
+<para>
+
+</para>
+
+ at buffer:
+ at size:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSKeyDataAesId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataAesGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataAesSet ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformAes128CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformAes128CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformAes192CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformAes192CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformAes256CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformAes256CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformKWAes128Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformKWAes128GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformKWAes192Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformKWAes192GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformKWAes256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformKWAes256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSKeyDataDesId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataDesGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataDesSet ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformDes3CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformDes3CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformKWDes3Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformKWDes3GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSKeyDataDsaId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataDsaGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataDsaAdoptPrivateKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dsa_key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataDsaAdoptPublicKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at p:
+ at q:
+ at g:
+ at y:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformDsaSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformDsaSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSHmacGetMinOutputLength ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSHmacSetMinOutputLength ##### -->
+<para>
+
+</para>
+
+ at min_length:
+
+
+<!-- ##### MACRO xmlSecGnuTLSKeyDataHmacId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataHmacGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataHmacSet ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformHmacMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformHmacMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformHmacRipemd160Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformHmacRipemd160GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformHmacSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformHmacSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformHmacSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformHmacSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformHmacSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformHmacSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformHmacSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformHmacSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSKeyDataRsaId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataRsaGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataRsaAdoptPrivateKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at rsa_key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataRsaAdoptPublicKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at m:
+ at e:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformRsaMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformRsaMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformRsaRipemd160Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformRsaRipemd160GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformRsaSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformRsaSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformRsaSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformRsaSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformRsaSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformRsaSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformRsaSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformRsaSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSTransformRipemd160Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSTransformRipemd160GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/gnutls/x509.sgml b/docs/api/tmpl/gnutls/x509.sgml
new file mode 100644
index 0000000..1c9872e
--- /dev/null
+++ b/docs/api/tmpl/gnutls/x509.sgml
@@ -0,0 +1,193 @@
+<!-- ##### SECTION Title ##### -->
+x509
+
+<!-- ##### SECTION Short_Description ##### -->
+X509 certificates support implementation for GnuTLS.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+X509 certificates support implementation for GnuTLS.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO xmlSecGnuTLSKeyDataX509Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataX509GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataX509GetKeyCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataX509AdoptKeyCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at cert:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataX509AdoptCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at cert:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataX509GetCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pos:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataX509GetCertsSize ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataX509AdoptCrl ##### -->
+<para>
+
+</para>
+
+ at data:
+ at crl:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataX509GetCrl ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pos:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataX509GetCrlsSize ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSX509CertGetKey ##### -->
+<para>
+
+</para>
+
+ at cert:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSKeyDataRawX509CertId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataRawX509CertGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecGnuTLSX509StoreId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSX509StoreGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSX509StoreFindCert ##### -->
+<para>
+
+</para>
+
+ at store:
+ at subjectName:
+ at issuerName:
+ at issuerSerial:
+ at ski:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSX509StoreVerify ##### -->
+<para>
+
+</para>
+
+ at store:
+ at certs:
+ at crls:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSX509StoreAdoptCert ##### -->
+<para>
+
+</para>
+
+ at store:
+ at cert:
+ at type:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/gnutls/xmlsec-gnutls-unused.sgml b/docs/api/tmpl/gnutls/xmlsec-gnutls-unused.sgml
new file mode 100644
index 0000000..8dfd1ae
--- /dev/null
+++ b/docs/api/tmpl/gnutls/xmlsec-gnutls-unused.sgml
@@ -0,0 +1,78 @@
+<!-- ##### SECTION ./tmpl/gnutls/xmlsec-gnutls-unused.sgml:Image ##### -->
+
+
+
+<!-- ##### SECTION tmpl/gnutls/xmlsec-gnutls-unused.sgml:Image ##### -->
+
+
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataDsaAdoptKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dsa_key:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataDsaAdoptKeyPair ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pub_key:
+ at priv_key:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataDsaGetPrivateKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataDsaGetPublicKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataRsaAdoptKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at rsa_key:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataRsaAdoptKeyPair ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pub_key:
+ at priv_key:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataRsaGetPrivateKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecGnuTLSKeyDataRsaGetPublicKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
diff --git a/docs/api/tmpl/mscrypto/app.sgml b/docs/api/tmpl/mscrypto/app.sgml
new file mode 100644
index 0000000..48cf7db
--- /dev/null
+++ b/docs/api/tmpl/mscrypto/app.sgml
@@ -0,0 +1,258 @@
+<!-- ##### SECTION Title ##### -->
+app
+
+<!-- ##### SECTION Short_Description ##### -->
+Application functions implementation for MS Crypto.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Application functions implementation for MS Crypto.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppInit ##### -->
+<para>
+
+</para>
+
+ at config:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppGetCertStoreName ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppDefaultKeysMngrInit ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppDefaultKeysMngrAdoptKey ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppDefaultKeysMngrLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at uri:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppDefaultKeysMngrSave ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at filename:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppDefaultKeysMngrPrivateKeyLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at hKey:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppDefaultKeysMngrPublicKeyLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at hKey:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppDefaultKeysMngrSymKeyLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at hKey:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppDefaultKeysMngrAdoptKeyStore ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at keyStore:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppDefaultKeysMngrAdoptTrustedStore ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at trustedStore:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppDefaultKeysMngrAdoptUntrustedStore ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at untrustedStore:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppKeysMngrCertLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at filename:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppKeysMngrCertLoadMemory ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at data:
+ at dataSize:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppKeyLoad ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppKeyLoadMemory ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppPkcs12Load ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppPkcs12LoadMemory ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppKeyCertLoad ##### -->
+<para>
+
+</para>
+
+ at key:
+ at filename:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppKeyCertLoadMemory ##### -->
+<para>
+
+</para>
+
+ at key:
+ at data:
+ at dataSize:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoAppGetDefaultPwdCallback ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/mscrypto/certkeys.sgml b/docs/api/tmpl/mscrypto/certkeys.sgml
new file mode 100644
index 0000000..96ca06b
--- /dev/null
+++ b/docs/api/tmpl/mscrypto/certkeys.sgml
@@ -0,0 +1,96 @@
+<!-- ##### SECTION Title ##### -->
+certkeys
+
+<!-- ##### SECTION Short_Description ##### -->
+MS Crypto certificates helper functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+MS Crypto certificates helper functions.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataGetCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataGetKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataGetDecryptKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoCertDup ##### -->
+<para>
+
+</para>
+
+ at pCert:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoCertAdopt ##### -->
+<para>
+
+</para>
+
+ at pCert:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataGetMSCryptoProvider ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataGetMSCryptoKeySpec ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataGetMSCryptoProviderInfo ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/mscrypto/crypto.sgml b/docs/api/tmpl/mscrypto/crypto.sgml
new file mode 100644
index 0000000..1df46b7
--- /dev/null
+++ b/docs/api/tmpl/mscrypto/crypto.sgml
@@ -0,0 +1,728 @@
+<!-- ##### SECTION Title ##### -->
+crypto
+
+<!-- ##### SECTION Short_Description ##### -->
+Crypto transforms implementation for MS Crypto.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Crypto transforms implementation for MS Crypto.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecCryptoGetFunctions_mscrypto ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoInit ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeysMngrInit ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoGenerateRandom ##### -->
+<para>
+
+</para>
+
+ at buffer:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoErrorsDefaultCallback ##### -->
+<para>
+
+</para>
+
+ at file:
+ at line:
+ at func:
+ at errorObject:
+ at errorSubject:
+ at reason:
+ at msg:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoConvertLocaleToUnicode ##### -->
+<para>
+
+</para>
+
+ at str:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoConvertUtf8ToUnicode ##### -->
+<para>
+
+</para>
+
+ at str:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoConvertUnicodeToUtf8 ##### -->
+<para>
+
+</para>
+
+ at str:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoConvertLocaleToUtf8 ##### -->
+<para>
+
+</para>
+
+ at str:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoConvertUtf8ToLocale ##### -->
+<para>
+
+</para>
+
+ at str:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoConvertTstrToUtf8 ##### -->
+<para>
+
+</para>
+
+ at str:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoConvertUtf8ToTstr ##### -->
+<para>
+
+</para>
+
+ at str:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoKeyDataDsaId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataDsaGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformDsaSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformDsaSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoKeyDataGost2001Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataGost2001GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformGost2001GostR3411_94Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformGost2001GostR3411_94GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoKeyDataRsaId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataRsaGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformRsaMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformRsaMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformRsaSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformRsaSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformRsaSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformRsaSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformRsaSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformRsaSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformRsaSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformRsaSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformRsaPkcs1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformRsaPkcs1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformRsaOaepId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformRsaOaepGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformGostR3411_94Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformGostR3411_94GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoKeyDataAesId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataAesGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataAesSet ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformAes128CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformAes128CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformAes192CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformAes192CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformAes256CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformAes256CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformKWAes128Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformKWAes128GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformKWAes192Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformKWAes192GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformKWAes256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformKWAes256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoKeyDataDesId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataDesGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformDes3CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformDes3CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformKWDes3Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformKWDes3GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoHmacGetMinOutputLength ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoHmacSetMinOutputLength ##### -->
+<para>
+
+</para>
+
+ at min_length:
+
+
+<!-- ##### MACRO xmlSecMSCryptoKeyDataHmacId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataHmacGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataHmacSet ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformHmacMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformHmacMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformHmacSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformHmacSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformHmacSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformHmacSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformHmacSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformHmacSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoTransformHmacSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoTransformHmacSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/mscrypto/keysstore.sgml b/docs/api/tmpl/mscrypto/keysstore.sgml
new file mode 100644
index 0000000..2c95039
--- /dev/null
+++ b/docs/api/tmpl/mscrypto/keysstore.sgml
@@ -0,0 +1,70 @@
+<!-- ##### SECTION Title ##### -->
+keysstore
+
+<!-- ##### SECTION Short_Description ##### -->
+Keys store implementation for MS Crypto.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Keys store implementation for MS Crypto.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO xmlSecMSCryptoKeysStoreId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeysStoreGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeysStoreAdoptKey ##### -->
+<para>
+
+</para>
+
+ at store:
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeysStoreLoad ##### -->
+<para>
+
+</para>
+
+ at store:
+ at uri:
+ at keysMngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeysStoreSave ##### -->
+<para>
+
+</para>
+
+ at store:
+ at filename:
+ at type:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/mscrypto/x509.sgml b/docs/api/tmpl/mscrypto/x509.sgml
new file mode 100644
index 0000000..1be2828
--- /dev/null
+++ b/docs/api/tmpl/mscrypto/x509.sgml
@@ -0,0 +1,197 @@
+<!-- ##### SECTION Title ##### -->
+x509
+
+<!-- ##### SECTION Short_Description ##### -->
+X509 certificates support implementation for MS Crypto.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+X509 certificates support implementation for MS Crypto.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO xmlSecMSCryptoKeyDataX509Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataX509GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataX509GetKeyCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataX509AdoptKeyCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at cert:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataX509AdoptCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at cert:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataX509GetCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pos:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataX509GetCertsSize ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataX509AdoptCrl ##### -->
+<para>
+
+</para>
+
+ at data:
+ at crl:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataX509GetCrl ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pos:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataX509GetCrlsSize ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoKeyDataRawX509CertId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoKeyDataRawX509CertGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecMSCryptoX509StoreId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoX509StoreGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoX509StoreAdoptCert ##### -->
+<para>
+
+</para>
+
+ at store:
+ at cert:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoX509StoreAdoptKeyStore ##### -->
+<para>
+
+</para>
+
+ at store:
+ at keyStore:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoX509StoreAdoptTrustedStore ##### -->
+<para>
+
+</para>
+
+ at store:
+ at trustedStore:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoX509StoreAdoptUntrustedStore ##### -->
+<para>
+
+</para>
+
+ at store:
+ at untrustedStore:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoX509StoreEnableSystemTrustedCerts ##### -->
+<para>
+
+</para>
+
+ at store:
+ at val:
+
+
diff --git a/docs/api/tmpl/mscrypto/xmlsec-mscrypto-unused.sgml b/docs/api/tmpl/mscrypto/xmlsec-mscrypto-unused.sgml
new file mode 100644
index 0000000..0b5accb
--- /dev/null
+++ b/docs/api/tmpl/mscrypto/xmlsec-mscrypto-unused.sgml
@@ -0,0 +1,141 @@
+<!-- ##### SECTION ./tmpl/mscrypto/xmlsec-mscrypto-unused.sgml:Image ##### -->
+
+
+
+<!-- ##### MACRO XMLSEC_CRYPTO_MS_ENH_RSA_AES_PROV ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_CRYPTO_MS_ENH_RSA_AES_PROV_A ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_CRYPTO_MS_ENH_RSA_AES_PROV_PROTOTYPE ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_CRYPTO_MS_ENH_RSA_AES_PROV_PROTOTYPE_A ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_CRYPTO_MS_ENH_RSA_AES_PROV_PROTOTYPE_W ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_CRYPTO_MS_ENH_RSA_AES_PROV_W ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION tmpl/mscrypto/xmlsec-mscrypto-unused.sgml:Image ##### -->
+
+
+
+<!-- ##### FUNCTION xmlSecMSCryptoCertStrToName ##### -->
+<para>
+
+</para>
+
+ at dwCertEncodingType:
+ at pszX500:
+ at dwStrType:
+ at len:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecMSCryptoCreatePrivateExponentOneKey ##### -->
+<para>
+
+</para>
+
+ at hProv:
+ at hPrivateKey:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecMSCryptoFindProvider ##### -->
+<para>
+
+</para>
+
+ at providers:
+ at pszContainer:
+ at dwFlags:
+ at bUseXmlSecContainer:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecMSCryptoImportPlainSessionBlob ##### -->
+<para>
+
+</para>
+
+ at hProv:
+ at hPrivateKey:
+ at dwAlgId:
+ at pbKeyMaterial:
+ at dwKeyMaterial:
+ at bCheckKeyLength:
+ at hSessionKey:
+ at Returns:
+
+<!-- ##### STRUCT xmlSecMSCryptoProviderInfo ##### -->
+<para>
+
+</para>
+
+ at providerName:
+ at providerType:
+
+<!-- ##### FUNCTION xmlSecMSCryptoX509FindCertBySubject ##### -->
+<para>
+
+</para>
+
+ at store:
+ at wcSubject:
+ at dwCertEncodingType:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecMSCryptoX509GetNameString ##### -->
+<para>
+
+</para>
+
+ at pCertContext:
+ at dwType:
+ at dwFlags:
+ at pvTypePara:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecMSCryptoX509StoreFindCert ##### -->
+<para>
+
+</para>
+
+ at store:
+ at subjectName:
+ at issuerName:
+ at issuerSerial:
+ at ski:
+ at keyInfoCtx:
+ at Returns:
+
+<!-- ##### FUNCTION xmlSecMSCryptoX509StoreVerify ##### -->
+<para>
+
+</para>
+
+ at store:
+ at certs:
+ at keyInfoCtx:
+ at Returns:
+
diff --git a/docs/api/tmpl/nss/app.sgml b/docs/api/tmpl/nss/app.sgml
new file mode 100644
index 0000000..16cbcfb
--- /dev/null
+++ b/docs/api/tmpl/nss/app.sgml
@@ -0,0 +1,247 @@
+<!-- ##### SECTION Title ##### -->
+app
+
+<!-- ##### SECTION Short_Description ##### -->
+Application functions implementation for NSS.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Application functions implementation for NSS.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecNssAppInit ##### -->
+<para>
+
+</para>
+
+ at config:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppDefaultKeysMngrInit ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppDefaultKeysMngrAdoptKey ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppDefaultKeysMngrLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at uri:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppDefaultKeysMngrSave ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at filename:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppKeysMngrCertLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at filename:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppKeysMngrCertLoadMemory ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at data:
+ at dataSize:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppKeysMngrCertLoadSECItem ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at secItem:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppKeyLoad ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppKeyLoadMemory ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppKeyLoadSECItem ##### -->
+<para>
+
+</para>
+
+ at secItem:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppPkcs12Load ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppPkcs12LoadMemory ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppPkcs12LoadSECItem ##### -->
+<para>
+
+</para>
+
+ at secItem:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppKeyCertLoad ##### -->
+<para>
+
+</para>
+
+ at key:
+ at filename:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppKeyCertLoadMemory ##### -->
+<para>
+
+</para>
+
+ at key:
+ at data:
+ at dataSize:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppKeyCertLoadSECItem ##### -->
+<para>
+
+</para>
+
+ at key:
+ at secItem:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppKeyFromCertLoadSECItem ##### -->
+<para>
+
+</para>
+
+ at secItem:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssAppGetDefaultPwdCallback ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/nss/bignum.sgml b/docs/api/tmpl/nss/bignum.sgml
new file mode 100644
index 0000000..cd8b2b2
--- /dev/null
+++ b/docs/api/tmpl/nss/bignum.sgml
@@ -0,0 +1,44 @@
+<!-- ##### SECTION Title ##### -->
+bignum
+
+<!-- ##### SECTION Short_Description ##### -->
+Big numbers helper functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Big numbers helper functions.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecNssNodeGetBigNumValue ##### -->
+<para>
+
+</para>
+
+ at arena:
+ at cur:
+ at a:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssNodeSetBigNumValue ##### -->
+<para>
+
+</para>
+
+ at cur:
+ at a:
+ at addLineBreaks:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/nss/crypto.sgml b/docs/api/tmpl/nss/crypto.sgml
new file mode 100644
index 0000000..6e625db
--- /dev/null
+++ b/docs/api/tmpl/nss/crypto.sgml
@@ -0,0 +1,653 @@
+<!-- ##### SECTION Title ##### -->
+crypto
+
+<!-- ##### SECTION Short_Description ##### -->
+Crypto transforms implementation for NSS.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Crypto transforms implementation for NSS.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecCryptoGetFunctions_nss ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssInit ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeysMngrInit ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssGenerateRandom ##### -->
+<para>
+
+</para>
+
+ at buffer:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssErrorsDefaultCallback ##### -->
+<para>
+
+</para>
+
+ at file:
+ at line:
+ at func:
+ at errorObject:
+ at errorSubject:
+ at reason:
+ at msg:
+
+
+<!-- ##### FUNCTION xmlSecNssGetInternalKeySlot ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssKeyDataAesId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataAesGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataAesSet ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformAes128CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformAes128CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformAes192CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformAes192CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformAes256CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformAes256CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformKWAes128Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformKWAes128GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformKWAes192Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformKWAes192GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformKWAes256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformKWAes256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssKeyDataDesId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataDesGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataDesSet ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformDes3CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformDes3CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformKWDes3Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformKWDes3GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssKeyDataDsaId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataDsaGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformDsaSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformDsaSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssHmacGetMinOutputLength ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssHmacSetMinOutputLength ##### -->
+<para>
+
+</para>
+
+ at min_length:
+
+
+<!-- ##### MACRO xmlSecNssKeyDataHmacId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataHmacGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataHmacSet ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformHmacMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformHmacMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformHmacRipemd160Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformHmacRipemd160GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformHmacSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformHmacSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformHmacSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformHmacSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformHmacSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformHmacSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformHmacSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformHmacSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssKeyDataRsaId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataRsaGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformRsaMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformRsaMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformRsaSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformRsaSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformRsaSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformRsaSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformRsaSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformRsaSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformRsaSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformRsaSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformRsaPkcs1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformRsaPkcs1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformRsaOaepId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformRsaOaepGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssTransformMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssTransformMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/nss/keysstore.sgml b/docs/api/tmpl/nss/keysstore.sgml
new file mode 100644
index 0000000..fef8396
--- /dev/null
+++ b/docs/api/tmpl/nss/keysstore.sgml
@@ -0,0 +1,70 @@
+<!-- ##### SECTION Title ##### -->
+keysstore
+
+<!-- ##### SECTION Short_Description ##### -->
+Keys store implementation for NSS.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Keys store implementation for NSS.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO xmlSecNssKeysStoreId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssKeysStoreGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeysStoreAdoptKey ##### -->
+<para>
+
+</para>
+
+ at store:
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeysStoreLoad ##### -->
+<para>
+
+</para>
+
+ at store:
+ at uri:
+ at keysMngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeysStoreSave ##### -->
+<para>
+
+</para>
+
+ at store:
+ at filename:
+ at type:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/nss/pkikeys.sgml b/docs/api/tmpl/nss/pkikeys.sgml
new file mode 100644
index 0000000..8541a55
--- /dev/null
+++ b/docs/api/tmpl/nss/pkikeys.sgml
@@ -0,0 +1,69 @@
+<!-- ##### SECTION Title ##### -->
+pkikeys
+
+<!-- ##### SECTION Short_Description ##### -->
+PKI keys data implementation.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+PKI keys data implementation.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecNssPKIAdoptKey ##### -->
+<para>
+
+</para>
+
+ at privkey:
+ at pubkey:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssPKIKeyDataGetPubKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssPKIKeyDataGetPrivKey ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssPKIKeyDataGetKeyType ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssPKIKeyDataDuplicate ##### -->
+<para>
+
+</para>
+
+ at dst:
+ at src:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/nss/x509.sgml b/docs/api/tmpl/nss/x509.sgml
new file mode 100644
index 0000000..e897bc0
--- /dev/null
+++ b/docs/api/tmpl/nss/x509.sgml
@@ -0,0 +1,192 @@
+<!-- ##### SECTION Title ##### -->
+x509
+
+<!-- ##### SECTION Short_Description ##### -->
+X509 certificates support implementation for NSS.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+X509 certificates support implementation for NSS.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO xmlSecNssKeyDataX509Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataX509GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataX509GetKeyCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataX509AdoptKeyCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at cert:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataX509AdoptCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at cert:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataX509GetCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pos:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataX509GetCertsSize ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataX509AdoptCrl ##### -->
+<para>
+
+</para>
+
+ at data:
+ at crl:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataX509GetCrl ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pos:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataX509GetCrlsSize ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssX509CertGetKey ##### -->
+<para>
+
+</para>
+
+ at cert:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssKeyDataRawX509CertId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssKeyDataRawX509CertGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecNssX509StoreId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecNssX509StoreGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssX509StoreFindCert ##### -->
+<para>
+
+</para>
+
+ at store:
+ at subjectName:
+ at issuerName:
+ at issuerSerial:
+ at ski:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssX509StoreVerify ##### -->
+<para>
+
+</para>
+
+ at store:
+ at certs:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecNssX509StoreAdoptCert ##### -->
+<para>
+
+</para>
+
+ at store:
+ at cert:
+ at type:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/nss/xmlsec-nss-unused.sgml b/docs/api/tmpl/nss/xmlsec-nss-unused.sgml
new file mode 100644
index 0000000..3764668
--- /dev/null
+++ b/docs/api/tmpl/nss/xmlsec-nss-unused.sgml
@@ -0,0 +1,8 @@
+<!-- ##### SECTION ./tmpl/nss/xmlsec-nss-unused.sgml:Image ##### -->
+
+
+
+<!-- ##### SECTION tmpl/nss/xmlsec-nss-unused.sgml:Image ##### -->
+
+
+
diff --git a/docs/api/tmpl/openssl/app.sgml b/docs/api/tmpl/openssl/app.sgml
new file mode 100644
index 0000000..1bb1425
--- /dev/null
+++ b/docs/api/tmpl/openssl/app.sgml
@@ -0,0 +1,267 @@
+<!-- ##### SECTION Title ##### -->
+app
+
+<!-- ##### SECTION Short_Description ##### -->
+Application functions implementation for OpenSSL.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Application functions implementation for OpenSSL.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppInit ##### -->
+<para>
+
+</para>
+
+ at config:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppDefaultKeysMngrInit ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppDefaultKeysMngrAdoptKey ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at key:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppDefaultKeysMngrLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at uri:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppDefaultKeysMngrSave ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at filename:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppKeysMngrCertLoad ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at filename:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppKeysMngrCertLoadMemory ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at data:
+ at dataSize:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppKeysMngrCertLoadBIO ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at bio:
+ at format:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppKeysMngrAddCertsPath ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at path:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppKeysMngrAddCertsFile ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at file:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppKeyLoad ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppKeyLoadMemory ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppKeyLoadBIO ##### -->
+<para>
+
+</para>
+
+ at bio:
+ at format:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppPkcs12Load ##### -->
+<para>
+
+</para>
+
+ at filename:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppPkcs12LoadMemory ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dataSize:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppPkcs12LoadBIO ##### -->
+<para>
+
+</para>
+
+ at bio:
+ at pwd:
+ at pwdCallback:
+ at pwdCallbackCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppKeyCertLoad ##### -->
+<para>
+
+</para>
+
+ at key:
+ at filename:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppKeyCertLoadMemory ##### -->
+<para>
+
+</para>
+
+ at key:
+ at data:
+ at dataSize:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppKeyCertLoadBIO ##### -->
+<para>
+
+</para>
+
+ at key:
+ at bio:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppKeyFromCertLoadBIO ##### -->
+<para>
+
+</para>
+
+ at bio:
+ at format:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLAppGetDefaultPwdCallback ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/openssl/bn.sgml b/docs/api/tmpl/openssl/bn.sgml
new file mode 100644
index 0000000..73c85cc
--- /dev/null
+++ b/docs/api/tmpl/openssl/bn.sgml
@@ -0,0 +1,43 @@
+<!-- ##### SECTION Title ##### -->
+bn
+
+<!-- ##### SECTION Short_Description ##### -->
+Big numbers helper functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Big numbers helper functions.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLNodeGetBNValue ##### -->
+<para>
+
+</para>
+
+ at cur:
+ at a:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLNodeSetBNValue ##### -->
+<para>
+
+</para>
+
+ at cur:
+ at a:
+ at addLineBreaks:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/openssl/ciphers.sgml b/docs/api/tmpl/openssl/ciphers.sgml
new file mode 100644
index 0000000..527aed5
--- /dev/null
+++ b/docs/api/tmpl/openssl/ciphers.sgml
@@ -0,0 +1,18 @@
+<!-- ##### SECTION Title ##### -->
+app
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
diff --git a/docs/api/tmpl/openssl/crypto.sgml b/docs/api/tmpl/openssl/crypto.sgml
new file mode 100644
index 0000000..594630a
--- /dev/null
+++ b/docs/api/tmpl/openssl/crypto.sgml
@@ -0,0 +1,1126 @@
+<!-- ##### SECTION Title ##### -->
+crypto
+
+<!-- ##### SECTION Short_Description ##### -->
+Crypto transforms implementation for OpenSSL.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+Crypto transforms implementation for OpenSSL.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecCryptoGetFunctions_openssl ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLInit ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLShutdown ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeysMngrInit ##### -->
+<para>
+
+</para>
+
+ at mngr:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLGenerateRandom ##### -->
+<para>
+
+</para>
+
+ at buffer:
+ at size:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLSetDefaultTrustedCertsFolder ##### -->
+<para>
+
+</para>
+
+ at path:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLGetDefaultTrustedCertsFolder ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLKeyDataAesId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataAesGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataAesSet ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformAes128CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformAes128CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformAes192CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformAes192CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformAes256CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformAes256CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformKWAes128Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformKWAes128GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformKWAes192Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformKWAes192GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformKWAes256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformKWAes256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLKeyDataDesId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataDesGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataDesSet ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformDes3CbcId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformDes3CbcGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformKWDes3Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformKWDes3GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLKeyDataDsaId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataDsaGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataDsaAdoptDsa ##### -->
+<para>
+
+</para>
+
+ at data:
+ at dsa:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataDsaGetDsa ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataDsaAdoptEvp ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pKey:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataDsaGetEvp ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformDsaSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformDsaSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformDsaSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformDsaSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLKeyDataEcdsaId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataEcdsaGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataEcdsaAdoptEcdsa ##### -->
+<para>
+
+</para>
+
+ at data:
+ at ecdsa:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataEcdsaGetEcdsa ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataEcdsaAdoptEvp ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pKey:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataEcdsaGetEvp ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformEcdsaSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformEcdsaSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformEcdsaSha224Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformEcdsaSha224GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformEcdsaSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformEcdsaSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformEcdsaSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformEcdsaSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformEcdsaSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformEcdsaSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLKeyDataGost2001Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataGost2001GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformGost2001GostR3411_94Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformGostR3411_94Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformGostR3411_94GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLKeyDataGostR3410_2012_256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataGostR3410_2012_256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLKeyDataGostR3410_2012_512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataGostR3410_2012_512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformGostR3411_2012_256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformGostR3411_2012_256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformGostR3411_2012_512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformGostR3411_2012_512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLHmacGetMinOutputLength ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLHmacSetMinOutputLength ##### -->
+<para>
+
+</para>
+
+ at min_length:
+
+
+<!-- ##### MACRO xmlSecOpenSSLKeyDataHmacId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataHmacGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataHmacSet ##### -->
+<para>
+
+</para>
+
+ at data:
+ at buf:
+ at bufSize:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformHmacMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformHmacMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformHmacRipemd160Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformHmacRipemd160GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformHmacSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformHmacSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformHmacSha224Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformHmacSha224GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformHmacSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformHmacSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformHmacSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformHmacSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformHmacSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformHmacSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformRipemd160Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformRipemd160GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLKeyDataRsaId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataRsaGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataRsaAdoptRsa ##### -->
+<para>
+
+</para>
+
+ at data:
+ at rsa:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataRsaGetRsa ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataRsaAdoptEvp ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pKey:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataRsaGetEvp ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformRsaMd5Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformRsaMd5GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformRsaRipemd160Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformRsaRipemd160GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformRsaSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformRsaSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformRsaSha224Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformRsaSha224GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformRsaSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformRsaSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformRsaSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformRsaSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformRsaSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformRsaSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformRsaPkcs1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformRsaPkcs1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformRsaOaepId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformRsaOaepGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformSha1Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformSha1GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformSha224Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformSha224GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformSha256Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformSha256GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformSha384Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformSha384GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLTransformSha512Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLTransformSha512GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO XMLSEC_OPENSSL_ERRORS_LIB ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_OPENSSL_ERRORS_FUNCTION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLErrorsDefaultCallback ##### -->
+<para>
+
+</para>
+
+ at file:
+ at line:
+ at func:
+ at errorObject:
+ at errorSubject:
+ at reason:
+ at msg:
+
+
diff --git a/docs/api/tmpl/openssl/evp.sgml b/docs/api/tmpl/openssl/evp.sgml
new file mode 100644
index 0000000..e97b12e
--- /dev/null
+++ b/docs/api/tmpl/openssl/evp.sgml
@@ -0,0 +1,59 @@
+<!-- ##### SECTION Title ##### -->
+evp
+
+<!-- ##### SECTION Short_Description ##### -->
+EVP keys data implementation.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+EVP keys data implementation.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLEvpKeyDataAdoptEvp ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pKey:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLEvpKeyDataGetEvp ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLEvpKeyDup ##### -->
+<para>
+
+</para>
+
+ at pKey:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLEvpKeyAdopt ##### -->
+<para>
+
+</para>
+
+ at pKey:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/openssl/x509.sgml b/docs/api/tmpl/openssl/x509.sgml
new file mode 100644
index 0000000..bc79480
--- /dev/null
+++ b/docs/api/tmpl/openssl/x509.sgml
@@ -0,0 +1,237 @@
+<!-- ##### SECTION Title ##### -->
+x509
+
+<!-- ##### SECTION Short_Description ##### -->
+X509 certificates support implementation for OpenSSL.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+X509 certificates support implementation for OpenSSL.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION Stability_Level ##### -->
+
+
+<!-- ##### SECTION Image ##### -->
+
+
+<!-- ##### MACRO XMLSEC_STACK_OF_X509 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_STACK_OF_X509_CRL ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecOpenSSLKeyDataX509Id ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataX509GetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataX509GetKeyCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataX509AdoptKeyCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at cert:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataX509AdoptCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at cert:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataX509GetCert ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pos:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataX509GetCertsSize ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataX509AdoptCrl ##### -->
+<para>
+
+</para>
+
+ at data:
+ at crl:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataX509GetCrl ##### -->
+<para>
+
+</para>
+
+ at data:
+ at pos:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataX509GetCrlsSize ##### -->
+<para>
+
+</para>
+
+ at data:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLX509CertGetKey ##### -->
+<para>
+
+</para>
+
+ at cert:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLKeyDataRawX509CertId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLKeyDataRawX509CertGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### MACRO xmlSecOpenSSLX509StoreId ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLX509StoreGetKlass ##### -->
+<para>
+
+</para>
+
+ at void:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLX509StoreFindCert ##### -->
+<para>
+
+</para>
+
+ at store:
+ at subjectName:
+ at issuerName:
+ at issuerSerial:
+ at ski:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLX509StoreVerify ##### -->
+<para>
+
+</para>
+
+ at store:
+ at certs:
+ at crls:
+ at keyInfoCtx:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLX509StoreAdoptCert ##### -->
+<para>
+
+</para>
+
+ at store:
+ at cert:
+ at type:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLX509StoreAdoptCrl ##### -->
+<para>
+
+</para>
+
+ at store:
+ at crl:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLX509StoreAddCertsPath ##### -->
+<para>
+
+</para>
+
+ at store:
+ at path:
+ at Returns:
+
+
+<!-- ##### FUNCTION xmlSecOpenSSLX509StoreAddCertsFile ##### -->
+<para>
+
+</para>
+
+ at store:
+ at file:
+ at Returns:
+
+
diff --git a/docs/api/tmpl/openssl/xmlsec-openssl-unused.sgml b/docs/api/tmpl/openssl/xmlsec-openssl-unused.sgml
new file mode 100644
index 0000000..6f6b3c6
--- /dev/null
+++ b/docs/api/tmpl/openssl/xmlsec-openssl-unused.sgml
@@ -0,0 +1,78 @@
+<!-- ##### SECTION ./tmpl/openssl/ciphers.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/openssl/ciphers.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION ./tmpl/openssl/ciphers.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/openssl/ciphers.sgml:Title ##### -->
+app
+
+
+<!-- ##### SECTION ./tmpl/openssl/xmlsec-openssl-unused.sgml:Image ##### -->
+
+
+
+<!-- ##### MACRO XMLSEC_NO_AES ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_NO_SHA224 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_NO_SHA256 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_NO_SHA384 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_NO_SHA512 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION tmpl/openssl/ciphers.sgml:Long_Description ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION tmpl/openssl/ciphers.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION tmpl/openssl/ciphers.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION tmpl/openssl/ciphers.sgml:Title ##### -->
+app
+
+
+<!-- ##### SECTION tmpl/openssl/xmlsec-openssl-unused.sgml:Image ##### -->
+
+
+
diff --git a/docs/api/up.png b/docs/api/up.png
index 85b3e2a..af46b2a 100644
Binary files a/docs/api/up.png and b/docs/api/up.png differ
diff --git a/docs/api/xmlsec-app.html b/docs/api/xmlsec-app.html
index b243949..b4f0c3c 100644
--- a/docs/api/xmlsec-app.html
+++ b/docs/api/xmlsec-app.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="NEXT" title="base64" href="xmlsec-base64.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,1707 +101,2466 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-ref.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-ref.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-base64.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-base64.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-APP"></a>app</h1>
<div class="REFNAMEDIV">
-<a name="AEN836"></a><h2>Name</h2>app -- Crypto-engine independent application support function.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-APP.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>int</font> <a href="xmlsec-app.html#XMLSECCRYPTOINIT">xmlSecCryptoInit</a> (void);
-<font>int</font> <a href="xmlsec-app.html#XMLSECCRYPTOSHUTDOWN">xmlSecCryptoShutdown</a> (void);
-<font>int</font> <a href="xmlsec-app.html#XMLSECCRYPTOKEYSMNGRINIT">xmlSecCryptoKeysMngrInit</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);
-#define <a href="xmlsec-app.html#XMLSECKEYDATAAESID">xmlSecKeyDataAesId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-app.html#XMLSECKEYDATAAESGETKLASS">xmlSecKeyDataAesGetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECKEYDATADESID">xmlSecKeyDataDesId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-app.html#XMLSECKEYDATADESGETKLASS">xmlSecKeyDataDesGetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECKEYDATADSAID">xmlSecKeyDataDsaId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-app.html#XMLSECKEYDATADSAGETKLASS">xmlSecKeyDataDsaGetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECKEYDATAECDSAID">xmlSecKeyDataEcdsaId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-app.html#XMLSECKEYDATAECDSAGETKLASS">xmlSecKeyDataEcdsaGetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECKEYDATAGOST2001ID">xmlSecKeyDataGost2001Id</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-app.html#XMLSECKEYDATAGOST2001GETKLASS">xmlSecKeyDataGost2001GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECKEYDATAHMACID">xmlSecKeyDataHmacId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-app.html#XMLSECKEYDATAHMACGETKLASS">xmlSecKeyDataHmacGetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECKEYDATARSAID">xmlSecKeyDataRsaId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-app.html#XMLSECKEYDATARSAGETKLASS">xmlSecKeyDataRsaGetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECKEYDATAX509ID">xmlSecKeyDataX509Id</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-app.html#XMLSECKEYDATAX509GETKLASS">xmlSecKeyDataX509GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECKEYDATARAWX509CERTID">xmlSecKeyDataRawX509CertId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-app.html#XMLSECKEYDATARAWX509CERTGETKLASS">xmlSecKeyDataRawX509CertGetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECX509STOREID">xmlSecX509StoreId</a>
-<font>xmlSecKeyDataStoreId</font> <a href="xmlsec-app.html#XMLSECX509STOREGETKLASS">xmlSecX509StoreGetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMAES128CBCID">xmlSecTransformAes128CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMAES128CBCGETKLASS">xmlSecTransformAes128CbcGetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMAES192CBCID">xmlSecTransformAes192CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMAES192CBCGETKLASS">xmlSecTransformAes192CbcGetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMAES256CBCID">xmlSecTransformAes256CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMAES256CBCGETKLASS">xmlSecTransformAes256CbcGetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMKWAES128ID">xmlSecTransformKWAes128Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMKWAES128GETKLASS">xmlSecTransformKWAes128GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMKWAES192ID">xmlSecTransformKWAes192Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMKWAES192GETKLASS">xmlSecTransformKWAes192GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMKWAES256ID">xmlSecTransformKWAes256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMKWAES256GETKLASS">xmlSecTransformKWAes256GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMDES3CBCID">xmlSecTransformDes3CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMDES3CBCGETKLASS">xmlSecTransformDes3CbcGetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMKWDES3ID">xmlSecTransformKWDes3Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMKWDES3GETKLASS">xmlSecTransformKWDes3GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMDSASHA1ID">xmlSecTransformDsaSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMDSASHA1GETKLASS">xmlSecTransformDsaSha1GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMDSASHA256ID">xmlSecTransformDsaSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMDSASHA256GETKLASS">xmlSecTransformDsaSha256GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA1ID">xmlSecTransformEcdsaSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA1GETKLASS">xmlSecTransformEcdsaSha1GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA224ID">xmlSecTransformEcdsaSha224Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA224GETKLASS">xmlSecTransformEcdsaSha224GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA256ID">xmlSecTransformEcdsaSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA256GETKLASS">xmlSecTransformEcdsaSha256GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA384ID">xmlSecTransformEcdsaSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA384GETKLASS">xmlSecTransformEcdsaSha384GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA512ID">xmlSecTransformEcdsaSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA512GETKLASS">xmlSecTransformEcdsaSha512GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMGOST2001GOSTR3411-94ID">xmlSecTransformGost2001GostR3411_94Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMGOST2001GOSTR3411-94GETKLASS">xmlSecTransformGost2001GostR3411_94GetKlass</a>
- (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMHMACMD5ID">xmlSecTransformHmacMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMHMACMD5GETKLASS">xmlSecTransformHmacMd5GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMHMACRIPEMD160ID">xmlSecTransformHmacRipemd160Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMHMACRIPEMD160GETKLASS">xmlSecTransformHmacRipemd160GetKlass</a>
- (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA1ID">xmlSecTransformHmacSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA1GETKLASS">xmlSecTransformHmacSha1GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA224ID">xmlSecTransformHmacSha224Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA224GETKLASS">xmlSecTransformHmacSha224GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA256ID">xmlSecTransformHmacSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA256GETKLASS">xmlSecTransformHmacSha256GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA384ID">xmlSecTransformHmacSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA384GETKLASS">xmlSecTransformHmacSha384GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA512ID">xmlSecTransformHmacSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA512GETKLASS">xmlSecTransformHmacSha512GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMMD5ID">xmlSecTransformMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMMD5GETKLASS">xmlSecTransformMd5GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMRIPEMD160ID">xmlSecTransformRipemd160Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMRIPEMD160GETKLASS">xmlSecTransformRipemd160GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMRSAMD5ID">xmlSecTransformRsaMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMRSAMD5GETKLASS">xmlSecTransformRsaMd5GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMRSARIPEMD160ID">xmlSecTransformRsaRipemd160Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMRSARIPEMD160GETKLASS">xmlSecTransformRsaRipemd160GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA1ID">xmlSecTransformRsaSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA1GETKLASS">xmlSecTransformRsaSha1GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA224ID">xmlSecTransformRsaSha224Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA224GETKLASS">xmlSecTransformRsaSha224GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA256ID">xmlSecTransformRsaSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA256GETKLASS">xmlSecTransformRsaSha256GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA384ID">xmlSecTransformRsaSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA384GETKLASS">xmlSecTransformRsaSha384GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA512ID">xmlSecTransformRsaSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA512GETKLASS">xmlSecTransformRsaSha512GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMRSAPKCS1ID">xmlSecTransformRsaPkcs1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMRSAPKCS1GETKLASS">xmlSecTransformRsaPkcs1GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMRSAOAEPID">xmlSecTransformRsaOaepId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMRSAOAEPGETKLASS">xmlSecTransformRsaOaepGetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMGOSTR3411-94ID">xmlSecTransformGostR3411_94Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMGOSTR3411-94GETKLASS">xmlSecTransformGostR3411_94GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMSHA1ID">xmlSecTransformSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMSHA1GETKLASS">xmlSecTransformSha1GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMSHA224ID">xmlSecTransformSha224Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMSHA224GETKLASS">xmlSecTransformSha224GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMSHA256ID">xmlSecTransformSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMSHA256GETKLASS">xmlSecTransformSha256GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMSHA384ID">xmlSecTransformSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMSHA384GETKLASS">xmlSecTransformSha384GetKlass</a> (void);
-#define <a href="xmlsec-app.html#XMLSECTRANSFORMSHA512ID">xmlSecTransformSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-app.html#XMLSECTRANSFORMSHA512GETKLASS">xmlSecTransformSha512GetKlass</a> (void);
-<font>int</font> <a href="xmlsec-app.html#XMLSECCRYPTOAPPINIT">xmlSecCryptoAppInit</a> (const <font>char</font> *config);
-<font>int</font> <a href="xmlsec-app.html#XMLSECCRYPTOAPPSHUTDOWN">xmlSecCryptoAppShutdown</a> (void);
-<font>int</font> <a href="xmlsec-app.html#XMLSECCRYPTOAPPDEFAULTKEYSMNGRINIT">xmlSecCryptoAppDefaultKeysMngrInit</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);
-<font>int</font> <a href="xmlsec-app.html#XMLSECCRYPTOAPPDEFAULTKEYSMNGRADOPTKEY">xmlSecCryptoAppDefaultKeysMngrAdoptKey</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> <a href="xmlsec-app.html#XMLSECCRYPTOAPPDEFAULTKEYSMNGRLOAD">xmlSecCryptoAppDefaultKeysMngrLoad</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *uri);
-<font>int</font> <a href="xmlsec-app.html#XMLSECCRYPTOAPPDEFAULTKEYSMNGRSAVE">xmlSecCryptoAppDefaultKeysMngrSave</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-app.html#XMLSECCRYPTOAPPKEYSMNGRCERTLOAD">xmlSecCryptoAppKeysMngrCertLoad</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-app.html#XMLSECCRYPTOAPPKEYSMNGRCERTLOADMEMORY">xmlSecCryptoAppKeysMngrCertLoadMemory</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-app.html#XMLSECCRYPTOAPPKEYLOAD">xmlSecCryptoAppKeyLoad</a> (const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-app.html#XMLSECCRYPTOAPPKEYLOADMEMORY">xmlSecCryptoAppKeyLoadMemory</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-app.html#XMLSECCRYPTOAPPPKCS12LOAD">xmlSecCryptoAppPkcs12Load</a> (const <font>char</font> *filename,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-app.html#XMLSECCRYPTOAPPPKCS12LOADMEMORY">xmlSecCryptoAppPkcs12LoadMemory</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<font>int</font> <a href="xmlsec-app.html#XMLSECCRYPTOAPPKEYCERTLOAD">xmlSecCryptoAppKeyCertLoad</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<font>int</font> <a href="xmlsec-app.html#XMLSECCRYPTOAPPKEYCERTLOADMEMORY">xmlSecCryptoAppKeyCertLoadMemory</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<font>void</font>* <a href="xmlsec-app.html#XMLSECCRYPTOAPPGETDEFAULTPWDCALLBACK">xmlSecCryptoAppGetDefaultPwdCallback</a>
- (void);</pre>
+<a name="AEN857"></a><h2>Name</h2>app -- Crypto-engine independent application support function.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-APP.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN862"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOINIT">xmlSecCryptoInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOSHUTDOWN">xmlSecCryptoShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOKEYSMNGRINIT">xmlSecCryptoKeysMngrInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECKEYDATAAESGETKLASS">xmlSecKeyDataAesGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECKEYDATADESGETKLASS">xmlSecKeyDataDesGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECKEYDATADSAGETKLASS">xmlSecKeyDataDsaGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECKEYDATAECDSAGETKLASS">xmlSecKeyDataEcdsaGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECKEYDATAGOST2001GETKLASS">xmlSecKeyDataGost2001GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECKEYDATAGOSTR3410-2012-256GETKLASS">xmlSecKeyDataGostR3410_2012_256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECKEYDATAGOSTR3410-2012-512GETKLASS">xmlSecKeyDataGostR3410_2012_512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECKEYDATAHMACGETKLASS">xmlSecKeyDataHmacGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECKEYDATARSAGETKLASS">xmlSecKeyDataRsaGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECKEYDATAX509GETKLASS">xmlSecKeyDataX509GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECKEYDATARAWX509CERTGETKLASS">xmlSecKeyDataRawX509CertGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataStoreId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECX509STOREGETKLASS">xmlSecX509StoreGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMAES128CBCGETKLASS">xmlSecTransformAes128CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMAES192CBCGETKLASS">xmlSecTransformAes192CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMAES256CBCGETKLASS">xmlSecTransformAes256CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMKWAES128GETKLASS">xmlSecTransformKWAes128GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMKWAES192GETKLASS">xmlSecTransformKWAes192GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMKWAES256GETKLASS">xmlSecTransformKWAes256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMDES3CBCGETKLASS">xmlSecTransformDes3CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMKWDES3GETKLASS">xmlSecTransformKWDes3GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMDSASHA1GETKLASS">xmlSecTransformDsaSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMDSASHA256GETKLASS">xmlSecTransformDsaSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA1GETKLASS">xmlSecTransformEcdsaSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA224GETKLASS">xmlSecTransformEcdsaSha224GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA256GETKLASS">xmlSecTransformEcdsaSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA384GETKLASS">xmlSecTransformEcdsaSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA512GETKLASS">xmlSecTransformEcdsaSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMGOST2001GOSTR3411-94GETKLASS">xmlSecTransformGost2001GostR3411_94GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMGOSTR3410-2012GOSTR3411-2012-256GETKLASS">xmlSecTransformGostR3410_2012GostR3411_2012_256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMGOSTR3410-2012GOSTR3411-2012-512GETKLASS">xmlSecTransformGostR3410_2012GostR3411_2012_512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMHMACMD5GETKLASS">xmlSecTransformHmacMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMHMACRIPEMD160GETKLASS">xmlSecTransformHmacRipemd160GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA1GETKLASS">xmlSecTransformHmacSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA224GETKLASS">xmlSecTransformHmacSha224GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA256GETKLASS">xmlSecTransformHmacSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA384GETKLASS">xmlSecTransformHmacSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA512GETKLASS">xmlSecTransformHmacSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMMD5GETKLASS">xmlSecTransformMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMRIPEMD160GETKLASS">xmlSecTransformRipemd160GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMRSAMD5GETKLASS">xmlSecTransformRsaMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMRSARIPEMD160GETKLASS">xmlSecTransformRsaRipemd160GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA1GETKLASS">xmlSecTransformRsaSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA224GETKLASS">xmlSecTransformRsaSha224GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA256GETKLASS">xmlSecTransformRsaSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA384GETKLASS">xmlSecTransformRsaSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA512GETKLASS">xmlSecTransformRsaSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMRSAPKCS1GETKLASS">xmlSecTransformRsaPkcs1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMRSAOAEPGETKLASS">xmlSecTransformRsaOaepGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMGOSTR3411-94GETKLASS">xmlSecTransformGostR3411_94GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMGOSTR3411-2012-256GETKLASS">xmlSecTransformGostR3411_2012_256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMGOSTR3411-2012-512GETKLASS">xmlSecTransformGostR3411_2012_512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMSHA1GETKLASS">xmlSecTransformSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMSHA224GETKLASS">xmlSecTransformSha224GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMSHA256GETKLASS">xmlSecTransformSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMSHA384GETKLASS">xmlSecTransformSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECTRANSFORMSHA512GETKLASS">xmlSecTransformSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPINIT">xmlSecCryptoAppInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPSHUTDOWN">xmlSecCryptoAppShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPDEFAULTKEYSMNGRINIT">xmlSecCryptoAppDefaultKeysMngrInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPDEFAULTKEYSMNGRADOPTKEY">xmlSecCryptoAppDefaultKeysMngrAdoptKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPDEFAULTKEYSMNGRLOAD">xmlSecCryptoAppDefaultKeysMngrLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPDEFAULTKEYSMNGRSAVE">xmlSecCryptoAppDefaultKeysMngrSave</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPKEYSMNGRCERTLOAD">xmlSecCryptoAppKeysMngrCertLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPKEYSMNGRCERTLOADMEMORY">xmlSecCryptoAppKeysMngrCertLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPKEYLOAD">xmlSecCryptoAppKeyLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPKEYLOADMEMORY">xmlSecCryptoAppKeyLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPPKCS12LOAD">xmlSecCryptoAppPkcs12Load</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPPKCS12LOADMEMORY">xmlSecCryptoAppPkcs12LoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPKEYCERTLOAD">xmlSecCryptoAppKeyCertLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPKEYCERTLOADMEMORY">xmlSecCryptoAppKeyCertLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">void</span></font> *</td>
+<td>
+<a href="xmlsec-app.html#XMLSECCRYPTOAPPGETDEFAULTPWDCALLBACK">xmlSecCryptoAppGetDefaultPwdCallback</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-APP.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN1385"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECKEYDATAAESID">xmlSecKeyDataAesId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECKEYDATADESID">xmlSecKeyDataDesId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECKEYDATADSAID">xmlSecKeyDataDsaId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECKEYDATAECDSAID">xmlSecKeyDataEcdsaId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECKEYDATAGOST2001ID">xmlSecKeyDataGost2001Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECKEYDATAGOSTR3410-2012-256ID">xmlSecKeyDataGostR3410_2012_256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECKEYDATAGOSTR3410-2012-512ID">xmlSecKeyDataGostR3410_2012_512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECKEYDATAHMACID">xmlSecKeyDataHmacId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECKEYDATARSAID">xmlSecKeyDataRsaId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECKEYDATAX509ID">xmlSecKeyDataX509Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECKEYDATARAWX509CERTID">xmlSecKeyDataRawX509CertId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECX509STOREID">xmlSecX509StoreId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMAES128CBCID">xmlSecTransformAes128CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMAES192CBCID">xmlSecTransformAes192CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMAES256CBCID">xmlSecTransformAes256CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMKWAES128ID">xmlSecTransformKWAes128Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMKWAES192ID">xmlSecTransformKWAes192Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMKWAES256ID">xmlSecTransformKWAes256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMDES3CBCID">xmlSecTransformDes3CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMKWDES3ID">xmlSecTransformKWDes3Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMDSASHA1ID">xmlSecTransformDsaSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMDSASHA256ID">xmlSecTransformDsaSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA1ID">xmlSecTransformEcdsaSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA224ID">xmlSecTransformEcdsaSha224Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA256ID">xmlSecTransformEcdsaSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA384ID">xmlSecTransformEcdsaSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMECDSASHA512ID">xmlSecTransformEcdsaSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMGOST2001GOSTR3411-94ID">xmlSecTransformGost2001GostR3411_94Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMGOSTR3410-2012GOSTR3411-2012-256ID">xmlSecTransformGostR3410_2012GostR3411_2012_256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMGOSTR3410-2012GOSTR3411-2012-512ID">xmlSecTransformGostR3410_2012GostR3411_2012_512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMHMACMD5ID">xmlSecTransformHmacMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMHMACRIPEMD160ID">xmlSecTransformHmacRipemd160Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA1ID">xmlSecTransformHmacSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA224ID">xmlSecTransformHmacSha224Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA256ID">xmlSecTransformHmacSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA384ID">xmlSecTransformHmacSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMHMACSHA512ID">xmlSecTransformHmacSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMMD5ID">xmlSecTransformMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMRIPEMD160ID">xmlSecTransformRipemd160Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMRSAMD5ID">xmlSecTransformRsaMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMRSARIPEMD160ID">xmlSecTransformRsaRipemd160Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA1ID">xmlSecTransformRsaSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA224ID">xmlSecTransformRsaSha224Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA256ID">xmlSecTransformRsaSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA384ID">xmlSecTransformRsaSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMRSASHA512ID">xmlSecTransformRsaSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMRSAPKCS1ID">xmlSecTransformRsaPkcs1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMRSAOAEPID">xmlSecTransformRsaOaepId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMGOSTR3411-94ID">xmlSecTransformGostR3411_94Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMGOSTR3411-2012-256ID">xmlSecTransformGostR3411_2012_256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMGOSTR3411-2012-512ID">xmlSecTransformGostR3411_2012_512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMSHA1ID">xmlSecTransformSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMSHA224ID">xmlSecTransformSha224Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMSHA256ID">xmlSecTransformSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMSHA384ID">xmlSecTransformSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-app.html#XMLSECTRANSFORMSHA512ID">xmlSecTransformSha512Id</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-APP.DESCRIPTION"></a><h2>Description</h2>
<p>Crypto-engine application support function used by xmlsec command line utility.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-APP.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-APP.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECCRYPTOINIT"></a><h3>xmlSecCryptoInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoInit (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoInit (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>XMLSec library specific crypto engine initialization.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1088"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN1627"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECCRYPTOSHUTDOWN"></a><h3>xmlSecCryptoShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoShutdown (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>XMLSec library specific crypto engine shutdown.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1102"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN1640"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECCRYPTOKEYSMNGRINIT"></a><h3>xmlSecCryptoKeysMngrInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoKeysMngrInit (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoKeysMngrInit (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>);</pre>
<p>Adds crypto specific key data stores in keys manager.</p>
+<div class="REFSECT3">
+<a name="AEN1654"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN1656"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN1117"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN1122"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAAESID"></a><h3>xmlSecKeyDataAesId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataAesId xmlSecKeyDataAesGetKlass()</pre>
-<p>The AES key klass.</p>
-<p></p>
+</div>
+<div class="REFSECT3">
+<a name="AEN1665"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYDATAAESGETKLASS"></a><h3>xmlSecKeyDataAesGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataAesGetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataAesGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The AES key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1143"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES key data klass or NULL if an error occurs
+<div class="REFSECT3">
+<a name="AEN1678"></a><h4>Returns</h4>
+<p> AES key data klass or NULL if an error occurs
(xmlsec-crypto library is not loaded or the AES key data
-klass is not implemented).</p></td>
-</tr></tbody></table>
+klass is not implemented).</p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATADESID"></a><h3>xmlSecKeyDataDesId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataDesId xmlSecKeyDataDesGetKlass()</pre>
-<p>The DES key klass.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYDATADESGETKLASS"></a><h3>xmlSecKeyDataDesGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataDesGetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataDesGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The DES key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1164"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DES key data klass or NULL if an error occurs
+<div class="REFSECT3">
+<a name="AEN1691"></a><h4>Returns</h4>
+<p> DES key data klass or NULL if an error occurs
(xmlsec-crypto library is not loaded or the DES key data
-klass is not implemented).</p></td>
-</tr></tbody></table>
+klass is not implemented).</p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATADSAID"></a><h3>xmlSecKeyDataDsaId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataDsaId xmlSecKeyDataDsaGetKlass()</pre>
-<p>The DSA key klass.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYDATADSAGETKLASS"></a><h3>xmlSecKeyDataDsaGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataDsaGetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataDsaGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The DSA key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1185"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DSA key data klass or NULL if an error occurs
+<div class="REFSECT3">
+<a name="AEN1704"></a><h4>Returns</h4>
+<p> DSA key data klass or NULL if an error occurs
(xmlsec-crypto library is not loaded or the DSA key data
-klass is not implemented).</p></td>
-</tr></tbody></table>
+klass is not implemented).</p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAECDSAID"></a><h3>xmlSecKeyDataEcdsaId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataEcdsaId xmlSecKeyDataEcdsaGetKlass()</pre>
-<p>The ECDSA key klass.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYDATAECDSAGETKLASS"></a><h3>xmlSecKeyDataEcdsaGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataEcdsaGetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataEcdsaGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The ECDSA key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1206"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> ECDSA key data klass or NULL if an error occurs
+<div class="REFSECT3">
+<a name="AEN1717"></a><h4>Returns</h4>
+<p> ECDSA key data klass or NULL if an error occurs
(xmlsec-crypto library is not loaded or the ECDSA key data
-klass is not implemented).</p></td>
-</tr></tbody></table>
+klass is not implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAGOST2001GETKLASS"></a><h3>xmlSecKeyDataGost2001GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataGost2001GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The GOST2001 key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN1730"></a><h4>Returns</h4>
+<p> GOST2001 key data klass or NULL if an error occurs
+(xmlsec-crypto library is not loaded or the GOST2001 key data
+klass is not implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAGOSTR3410-2012-256GETKLASS"></a><h3>xmlSecKeyDataGostR3410_2012_256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataGostR3410_2012_256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The GOST R 34.10-2012 256 bit key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN1743"></a><h4>Returns</h4>
+<p> GOST R 34.10-2012 256 bit key data klass or NULL if an error occurs
+(xmlsec-crypto library is not loaded or the GOST R 34.10-2012 key data
+klass is not implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAGOSTR3410-2012-512GETKLASS"></a><h3>xmlSecKeyDataGostR3410_2012_512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataGostR3410_2012_512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The GOST R 34.10-2012 512 bit key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN1756"></a><h4>Returns</h4>
+<p> GOST R 34.10-2012 512 bit key data klass or NULL if an error occurs
+(xmlsec-crypto library is not loaded or the GOST R 34.10-2012 key data
+klass is not implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAHMACGETKLASS"></a><h3>xmlSecKeyDataHmacGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataHmacGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN1769"></a><h4>Returns</h4>
+<p> HMAC key data klass or NULL if an error occurs
+(xmlsec-crypto library is not loaded or the HMAC key data
+klass is not implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATARSAGETKLASS"></a><h3>xmlSecKeyDataRsaGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataRsaGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN1782"></a><h4>Returns</h4>
+<p> RSA key data klass or NULL if an error occurs
+(xmlsec-crypto library is not loaded or the RSA key data
+klass is not implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAX509GETKLASS"></a><h3>xmlSecKeyDataX509GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataX509GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The X509 key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN1795"></a><h4>Returns</h4>
+<p> X509 key data klass or NULL if an error occurs
+(xmlsec-crypto library is not loaded or the X509 key data
+klass is not implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATARAWX509CERTGETKLASS"></a><h3>xmlSecKeyDataRawX509CertGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataRawX509CertGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The raw X509 cert key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN1808"></a><h4>Returns</h4>
+<p> raw x509 cert key data klass or NULL if an error occurs
+(xmlsec-crypto library is not loaded or the raw X509 cert key data
+klass is not implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECX509STOREGETKLASS"></a><h3>xmlSecX509StoreGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataStoreId</span></font>
+xmlSecX509StoreGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The X509 certificates key data store klass.</p>
+<div class="REFSECT3">
+<a name="AEN1821"></a><h4>Returns</h4>
+<p> pointer to X509 certificates key data store klass or NULL if
+an error occurs (xmlsec-crypto library is not loaded or the raw X509
+cert key data klass is not implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMAES128CBCGETKLASS"></a><h3>xmlSecTransformAes128CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformAes128CbcGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 128 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN1834"></a><h4>Returns</h4>
+<p> pointer to AES 128 CBC encryption transform or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMAES192CBCGETKLASS"></a><h3>xmlSecTransformAes192CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformAes192CbcGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 192 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN1847"></a><h4>Returns</h4>
+<p> pointer to AES 192 CBC encryption transform or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMAES256CBCGETKLASS"></a><h3>xmlSecTransformAes256CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformAes256CbcGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 256 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN1860"></a><h4>Returns</h4>
+<p> pointer to AES 256 CBC encryption transform or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMKWAES128GETKLASS"></a><h3>xmlSecTransformKWAes128GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformKWAes128GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-128 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN1873"></a><h4>Returns</h4>
+<p> AES-128 kew wrapper transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMKWAES192GETKLASS"></a><h3>xmlSecTransformKWAes192GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformKWAes192GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-192 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN1886"></a><h4>Returns</h4>
+<p> AES-192 kew wrapper transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMKWAES256GETKLASS"></a><h3>xmlSecTransformKWAes256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformKWAes256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-256 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN1899"></a><h4>Returns</h4>
+<p> AES-256 kew wrapper transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMDES3CBCGETKLASS"></a><h3>xmlSecTransformDes3CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformDes3CbcGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Triple DES CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN1912"></a><h4>Returns</h4>
+<p> pointer to Triple DES encryption transform or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAGOST2001ID"></a><h3>xmlSecKeyDataGost2001Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataGost2001Id xmlSecKeyDataGost2001GetKlass()</pre>
-<p>The GOST2001 key klass.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATAGOST2001GETKLASS"></a><h3>xmlSecKeyDataGost2001GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataGost2001GetKlass (void);</pre>
-<p>The GOST2001 key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1227"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> GOST2001 key data klass or NULL if an error occurs
-(xmlsec-crypto library is not loaded or the GOST2001 key data
-klass is not implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMKWDES3GETKLASS"></a><h3>xmlSecTransformKWDes3GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformKWDes3GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The Triple DES key wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN1925"></a><h4>Returns</h4>
+<p> Triple DES key wrapper transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATAHMACID"></a><h3>xmlSecKeyDataHmacId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataHmacId xmlSecKeyDataHmacGetKlass()</pre>
-<p>The DHMAC key klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMDSASHA1GETKLASS"></a><h3>xmlSecTransformDsaSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformDsaSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DSA-SHA1 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN1938"></a><h4>Returns</h4>
+<p> DSA-SHA1 signature transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATAHMACGETKLASS"></a><h3>xmlSecKeyDataHmacGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataHmacGetKlass (void);</pre>
-<p>The HMAC key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1248"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> HMAC key data klass or NULL if an error occurs
-(xmlsec-crypto library is not loaded or the HMAC key data
-klass is not implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMDSASHA256GETKLASS"></a><h3>xmlSecTransformDsaSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformDsaSha256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DSA-SHA256 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN1951"></a><h4>Returns</h4>
+<p> DSA-SHA256 signature transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATARSAID"></a><h3>xmlSecKeyDataRsaId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataRsaId xmlSecKeyDataRsaGetKlass()</pre>
-<p>The RSA key klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMECDSASHA1GETKLASS"></a><h3>xmlSecTransformEcdsaSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformEcdsaSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The ECDSA-SHA1 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN1964"></a><h4>Returns</h4>
+<p> ECDSA-SHA1 signature transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATARSAGETKLASS"></a><h3>xmlSecKeyDataRsaGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataRsaGetKlass (void);</pre>
-<p>The RSA key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1269"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA key data klass or NULL if an error occurs
-(xmlsec-crypto library is not loaded or the RSA key data
-klass is not implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMECDSASHA224GETKLASS"></a><h3>xmlSecTransformEcdsaSha224GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformEcdsaSha224GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The ECDSA-SHA224 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN1977"></a><h4>Returns</h4>
+<p> ECDSA-SHA224 signature transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATAX509ID"></a><h3>xmlSecKeyDataX509Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataX509Id xmlSecKeyDataX509GetKlass()</pre>
-<p>The X509 data klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMECDSASHA256GETKLASS"></a><h3>xmlSecTransformEcdsaSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformEcdsaSha256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The ECDSA-SHA256 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN1990"></a><h4>Returns</h4>
+<p> ECDSA-SHA256 signature transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATAX509GETKLASS"></a><h3>xmlSecKeyDataX509GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataX509GetKlass (void);</pre>
-<p>The X509 key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1290"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> X509 key data klass or NULL if an error occurs
-(xmlsec-crypto library is not loaded or the X509 key data
-klass is not implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMECDSASHA384GETKLASS"></a><h3>xmlSecTransformEcdsaSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformEcdsaSha384GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The ECDSA-SHA384 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2003"></a><h4>Returns</h4>
+<p> ECDSA-SHA384 signature transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATARAWX509CERTID"></a><h3>xmlSecKeyDataRawX509CertId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataRawX509CertId xmlSecKeyDataRawX509CertGetKlass()</pre>
-<p>The raw X509 certificate klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMECDSASHA512GETKLASS"></a><h3>xmlSecTransformEcdsaSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformEcdsaSha512GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The ECDSA-SHA512 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2016"></a><h4>Returns</h4>
+<p> ECDSA-SHA512 signature transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATARAWX509CERTGETKLASS"></a><h3>xmlSecKeyDataRawX509CertGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataRawX509CertGetKlass (void);</pre>
-<p>The raw X509 cert key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1311"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> raw x509 cert key data klass or NULL if an error occurs
-(xmlsec-crypto library is not loaded or the raw X509 cert key data
-klass is not implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMGOST2001GOSTR3411-94GETKLASS"></a><h3>xmlSecTransformGost2001GostR3411_94GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformGost2001GostR3411_94GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The GOST2001-GOSTR3411_94 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2029"></a><h4>Returns</h4>
+<p> GOST2001-GOSTR3411_94 signature transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECX509STOREID"></a><h3>xmlSecX509StoreId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecX509StoreId xmlSecX509StoreGetKlass()</pre>
-<p>The X509 store klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMGOSTR3410-2012GOSTR3411-2012-256GETKLASS"></a><h3>xmlSecTransformGostR3410_2012GostR3411_2012_256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformGostR3410_2012GostR3411_2012_256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The GOST R 34.10-2012 - GOST R 34.11-2012 256 bit signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2042"></a><h4>Returns</h4>
+<p> GOST R 34.10-2012 - GOST R 34.11-2012 256 bit signature transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECX509STOREGETKLASS"></a><h3>xmlSecX509StoreGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataStoreId</font> xmlSecX509StoreGetKlass (void);</pre>
-<p>The X509 certificates key data store klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1332"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to X509 certificates key data store klass or NULL if
-an error occurs (xmlsec-crypto library is not loaded or the raw X509
-cert key data klass is not implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMGOSTR3410-2012GOSTR3411-2012-512GETKLASS"></a><h3>xmlSecTransformGostR3410_2012GostR3411_2012_512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformGostR3410_2012GostR3411_2012_512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The GOST R 34.10-2012 - GOST R 34.11-2012 512 bit signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2055"></a><h4>Returns</h4>
+<p> GOST R 34.10-2012 - GOST R 34.11-2012 512 bit signature transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMAES128CBCID"></a><h3>xmlSecTransformAes128CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformAes128CbcId xmlSecTransformAes128CbcGetKlass()</pre>
-<p>The AES128 CBC cipher transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMHMACMD5GETKLASS"></a><h3>xmlSecTransformHmacMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformHmacMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-MD5 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2068"></a><h4>Returns</h4>
+<p> the HMAC-MD5 transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMAES128CBCGETKLASS"></a><h3>xmlSecTransformAes128CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformAes128CbcGetKlass (void);</pre>
-<p>AES 128 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1353"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 128 CBC encryption transform or NULL if an error
+<a name="XMLSECTRANSFORMHMACRIPEMD160GETKLASS"></a><h3>xmlSecTransformHmacRipemd160GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformHmacRipemd160GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-RIPEMD160 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2081"></a><h4>Returns</h4>
+<p> the HMAC-RIPEMD160 transform klass or NULL if an error
occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMAES192CBCID"></a><h3>xmlSecTransformAes192CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformAes192CbcId xmlSecTransformAes192CbcGetKlass()</pre>
-<p>The AES192 CBC cipher transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMHMACSHA1GETKLASS"></a><h3>xmlSecTransformHmacSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformHmacSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA1 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2094"></a><h4>Returns</h4>
+<p> the HMAC-SHA1 transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMAES192CBCGETKLASS"></a><h3>xmlSecTransformAes192CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformAes192CbcGetKlass (void);</pre>
-<p>AES 192 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1374"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 192 CBC encryption transform or NULL if an error
+<a name="XMLSECTRANSFORMHMACSHA224GETKLASS"></a><h3>xmlSecTransformHmacSha224GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformHmacSha224GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA224 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2107"></a><h4>Returns</h4>
+<p> the HMAC-SHA224 transform klass or NULL if an error
occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMAES256CBCID"></a><h3>xmlSecTransformAes256CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformAes256CbcId xmlSecTransformAes256CbcGetKlass()</pre>
-<p>The AES256 CBC cipher transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMHMACSHA256GETKLASS"></a><h3>xmlSecTransformHmacSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformHmacSha256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA256 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2120"></a><h4>Returns</h4>
+<p> the HMAC-SHA256 transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMAES256CBCGETKLASS"></a><h3>xmlSecTransformAes256CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformAes256CbcGetKlass (void);</pre>
-<p>AES 256 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1395"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 256 CBC encryption transform or NULL if an error
+<a name="XMLSECTRANSFORMHMACSHA384GETKLASS"></a><h3>xmlSecTransformHmacSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformHmacSha384GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA384 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2133"></a><h4>Returns</h4>
+<p> the HMAC-SHA384 transform klass or NULL if an error
occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMKWAES128ID"></a><h3>xmlSecTransformKWAes128Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformKWAes128Id xmlSecTransformKWAes128GetKlass()</pre>
-<p>The AES 128 key wrap transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMHMACSHA512GETKLASS"></a><h3>xmlSecTransformHmacSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformHmacSha512GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA512 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2146"></a><h4>Returns</h4>
+<p> the HMAC-SHA512 transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMKWAES128GETKLASS"></a><h3>xmlSecTransformKWAes128GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformKWAes128GetKlass (void);</pre>
-<p>The AES-128 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1416"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-128 kew wrapper transform klass or NULL if an error
+<a name="XMLSECTRANSFORMMD5GETKLASS"></a><h3>xmlSecTransformMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>MD5 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2159"></a><h4>Returns</h4>
+<p> pointer to MD5 digest transform klass or NULL if an error
occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMKWAES192ID"></a><h3>xmlSecTransformKWAes192Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformKWAes192Id xmlSecTransformKWAes192GetKlass()</pre>
-<p>The AES 192 key wrap transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMRIPEMD160GETKLASS"></a><h3>xmlSecTransformRipemd160GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformRipemd160GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>RIPEMD-160 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2172"></a><h4>Returns</h4>
+<p> pointer to RIPEMD-160 digest transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMKWAES192GETKLASS"></a><h3>xmlSecTransformKWAes192GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformKWAes192GetKlass (void);</pre>
-<p>The AES-192 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1437"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-192 kew wrapper transform klass or NULL if an error
+<a name="XMLSECTRANSFORMRSAMD5GETKLASS"></a><h3>xmlSecTransformRsaMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformRsaMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-MD5 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2185"></a><h4>Returns</h4>
+<p> RSA-MD5 signature transform klass or NULL if an error
occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMKWAES256ID"></a><h3>xmlSecTransformKWAes256Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformKWAes256Id xmlSecTransformKWAes256GetKlass()</pre>
-<p>The AES 256 key wrap transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMRSARIPEMD160GETKLASS"></a><h3>xmlSecTransformRsaRipemd160GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformRsaRipemd160GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-RIPEMD160 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2198"></a><h4>Returns</h4>
+<p> RSA-RIPEMD160 signature transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMKWAES256GETKLASS"></a><h3>xmlSecTransformKWAes256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformKWAes256GetKlass (void);</pre>
-<p>The AES-256 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1458"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-256 kew wrapper transform klass or NULL if an error
+<a name="XMLSECTRANSFORMRSASHA1GETKLASS"></a><h3>xmlSecTransformRsaSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformRsaSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA1 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2211"></a><h4>Returns</h4>
+<p> RSA-SHA1 signature transform klass or NULL if an error
occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDES3CBCID"></a><h3>xmlSecTransformDes3CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformDes3CbcId xmlSecTransformDes3CbcGetKlass()</pre>
-<p>The Triple DES encryption transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMRSASHA224GETKLASS"></a><h3>xmlSecTransformRsaSha224GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformRsaSha224GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA224 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2224"></a><h4>Returns</h4>
+<p> RSA-SHA224 signature transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDES3CBCGETKLASS"></a><h3>xmlSecTransformDes3CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformDes3CbcGetKlass (void);</pre>
-<p>Triple DES CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1479"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to Triple DES encryption transform or NULL if an error
+<a name="XMLSECTRANSFORMRSASHA256GETKLASS"></a><h3>xmlSecTransformRsaSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformRsaSha256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA256 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2237"></a><h4>Returns</h4>
+<p> RSA-SHA256 signature transform klass or NULL if an error
occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMKWDES3ID"></a><h3>xmlSecTransformKWDes3Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformKWDes3Id xmlSecTransformKWDes3GetKlass()</pre>
-<p>The DES3 CBC cipher transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMRSASHA384GETKLASS"></a><h3>xmlSecTransformRsaSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformRsaSha384GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA384 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2250"></a><h4>Returns</h4>
+<p> RSA-SHA384 signature transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMKWDES3GETKLASS"></a><h3>xmlSecTransformKWDes3GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformKWDes3GetKlass (void);</pre>
-<p>The Triple DES key wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1500"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> Triple DES key wrapper transform klass or NULL if an error
+<a name="XMLSECTRANSFORMRSASHA512GETKLASS"></a><h3>xmlSecTransformRsaSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformRsaSha512GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA512 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2263"></a><h4>Returns</h4>
+<p> RSA-SHA512 signature transform klass or NULL if an error
occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDSASHA1ID"></a><h3>xmlSecTransformDsaSha1Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformDsaSha1Id xmlSecTransformDsaSha1GetKlass()</pre>
-<p>The DSA-SHA1 signature transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMRSAPKCS1GETKLASS"></a><h3>xmlSecTransformRsaPkcs1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformRsaPkcs1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-PKCS1 key transport transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2276"></a><h4>Returns</h4>
+<p> RSA-PKCS1 key transport transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDSASHA1GETKLASS"></a><h3>xmlSecTransformDsaSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformDsaSha1GetKlass (void);</pre>
-<p>The DSA-SHA1 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1521"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DSA-SHA1 signature transform klass or NULL if an error
+<a name="XMLSECTRANSFORMRSAOAEPGETKLASS"></a><h3>xmlSecTransformRsaOaepGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformRsaOaepGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-OAEP key transport transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2289"></a><h4>Returns</h4>
+<p> RSA-OAEP key transport transform klass or NULL if an error
occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDSASHA256ID"></a><h3>xmlSecTransformDsaSha256Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformDsaSha256Id xmlSecTransformDsaSha256GetKlass()</pre>
-<p>The DSA-SHA256 signature transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMGOSTR3411-94GETKLASS"></a><h3>xmlSecTransformGostR3411_94GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformGostR3411_94GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>GOSTR3411_94 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2302"></a><h4>Returns</h4>
+<p> pointer to GOSTR3411_94 digest transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDSASHA256GETKLASS"></a><h3>xmlSecTransformDsaSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformDsaSha256GetKlass (void);</pre>
-<p>The DSA-SHA256 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1542"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DSA-SHA256 signature transform klass or NULL if an error
+<a name="XMLSECTRANSFORMGOSTR3411-2012-256GETKLASS"></a><h3>xmlSecTransformGostR3411_2012_256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformGostR3411_2012_256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>GOST R 34.11-2012 256 bit digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2315"></a><h4>Returns</h4>
+<p> pointer to GOST R 34.11-2012 256 bit digest transform klass or NULL if an error
occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMECDSASHA1ID"></a><h3>xmlSecTransformEcdsaSha1Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformEcdsaSha1Id xmlSecTransformEcdsaSha1GetKlass()</pre>
-<p>The ECDSA-SHA1 signature transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMGOSTR3411-2012-512GETKLASS"></a><h3>xmlSecTransformGostR3411_2012_512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformGostR3411_2012_512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>GOST R 34.11-2012 512 bit digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2328"></a><h4>Returns</h4>
+<p> pointer to GOST R 34.11-2012 512 bit digest transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMECDSASHA1GETKLASS"></a><h3>xmlSecTransformEcdsaSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformEcdsaSha1GetKlass (void);</pre>
-<p>The ECDSA-SHA1 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1563"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> ECDSA-SHA1 signature transform klass or NULL if an error
+<a name="XMLSECTRANSFORMSHA1GETKLASS"></a><h3>xmlSecTransformSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA-1 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2341"></a><h4>Returns</h4>
+<p> pointer to SHA-1 digest transform klass or NULL if an error
occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMECDSASHA224ID"></a><h3>xmlSecTransformEcdsaSha224Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformEcdsaSha224Id xmlSecTransformEcdsaSha224GetKlass()</pre>
-<p>The ECDSA-SHA224 signature transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMSHA224GETKLASS"></a><h3>xmlSecTransformSha224GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformSha224GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA224 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2354"></a><h4>Returns</h4>
+<p> pointer to SHA224 digest transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMECDSASHA224GETKLASS"></a><h3>xmlSecTransformEcdsaSha224GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformEcdsaSha224GetKlass (void);</pre>
-<p>The ECDSA-SHA224 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1584"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> ECDSA-SHA224 signature transform klass or NULL if an error
+<a name="XMLSECTRANSFORMSHA256GETKLASS"></a><h3>xmlSecTransformSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformSha256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA256 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2367"></a><h4>Returns</h4>
+<p> pointer to SHA256 digest transform klass or NULL if an error
occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMECDSASHA256ID"></a><h3>xmlSecTransformEcdsaSha256Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformEcdsaSha256Id xmlSecTransformEcdsaSha256GetKlass()</pre>
-<p>The ECDSA-SHA256 signature transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMSHA384GETKLASS"></a><h3>xmlSecTransformSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformSha384GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA384 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2380"></a><h4>Returns</h4>
+<p> pointer to SHA384 digest transform klass or NULL if an error
+occurs (the xmlsec-crypto library is not loaded or this transform is not
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMECDSASHA256GETKLASS"></a><h3>xmlSecTransformEcdsaSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformEcdsaSha256GetKlass (void);</pre>
-<p>The ECDSA-SHA256 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1605"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> ECDSA-SHA256 signature transform klass or NULL if an error
+<a name="XMLSECTRANSFORMSHA512GETKLASS"></a><h3>xmlSecTransformSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformSha512GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA512 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN2393"></a><h4>Returns</h4>
+<p> pointer to SHA512 digest transform klass or NULL if an error
occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+implemented).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMECDSASHA384ID"></a><h3>xmlSecTransformEcdsaSha384Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformEcdsaSha384Id xmlSecTransformEcdsaSha384GetKlass()</pre>
-<p>The ECDS-SHA384 signature transform klass.</p>
+<a name="XMLSECCRYPTOAPPINIT"></a><h3>xmlSecCryptoAppInit ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoAppInit (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *config</code>);</pre>
+<p>General crypto engine initialization. This function is used
+by XMLSec command line utility and called before
+<code class="PARAMETER">xmlSecInit</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN2408"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN2410"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>config</p></td>
+<td><p>the path to crypto library configuration.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN2419"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMECDSASHA384GETKLASS"></a><h3>xmlSecTransformEcdsaSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformEcdsaSha384GetKlass (void);</pre>
-<p>The ECDSA-SHA384 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1626"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> ECDSA-SHA384 signature transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECCRYPTOAPPSHUTDOWN"></a><h3>xmlSecCryptoAppShutdown ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoAppShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>General crypto engine shutdown. This function is used
+by XMLSec command line utility and called after
+<code class="PARAMETER">xmlSecShutdown</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN2433"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMECDSASHA512ID"></a><h3>xmlSecTransformEcdsaSha512Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformEcdsaSha512Id xmlSecTransformEcdsaSha512GetKlass()</pre>
-<p>The ECDSA-SHA512 signature transform klass.</p>
+<a name="XMLSECCRYPTOAPPDEFAULTKEYSMNGRINIT"></a><h3>xmlSecCryptoAppDefaultKeysMngrInit ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoAppDefaultKeysMngrInit (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>);</pre>
+<p>Initializes <code class="PARAMETER">mngr</code>
+ with simple keys store <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREID"><span class="TYPE">xmlSecSimpleKeysStoreId</span></a>
+and a default crypto key data stores.</p>
+<div class="REFSECT3">
+<a name="AEN2450"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN2452"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN2461"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMECDSASHA512GETKLASS"></a><h3>xmlSecTransformEcdsaSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformEcdsaSha512GetKlass (void);</pre>
-<p>The ECDSA-SHA512 signature transform klass.</p>
-<p></p>
+<a name="XMLSECCRYPTOAPPDEFAULTKEYSMNGRADOPTKEY"></a><h3>xmlSecCryptoAppDefaultKeysMngrAdoptKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoAppDefaultKeysMngrAdoptKey
+ (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Adds <code class="PARAMETER">key</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+ created with <a href="xmlsec-app.html#XMLSECCRYPTOAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecCryptoAppDefaultKeysMngrInit</span></a>
+function.</p>
+<div class="REFSECT3">
+<a name="AEN2482"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN2484"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1647"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> ECDSA-SHA512 signature transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN2499"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMGOST2001GOSTR3411-94ID"></a><h3>xmlSecTransformGost2001GostR3411_94Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformGost2001GostR3411_94Id xmlSecTransformGost2001GostR3411_94GetKlass()</pre>
-<p>The GOST2001-GOSTR3411_94 signature transform klass.</p>
+<a name="XMLSECCRYPTOAPPDEFAULTKEYSMNGRLOAD"></a><h3>xmlSecCryptoAppDefaultKeysMngrLoad ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoAppDefaultKeysMngrLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *uri</code>);</pre>
+<p>Loads XML keys file from <code class="PARAMETER">uri</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+ created
+with <a href="xmlsec-app.html#XMLSECCRYPTOAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecCryptoAppDefaultKeysMngrInit</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN2520"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN2522"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>uri</p></td>
+<td><p>the uri.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN2537"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMGOST2001GOSTR3411-94GETKLASS"></a><h3>xmlSecTransformGost2001GostR3411_94GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformGost2001GostR3411_94GetKlass
- (void);</pre>
-<p>The GOST2001-GOSTR3411_94 signature transform klass.</p>
-<p></p>
+<a name="XMLSECCRYPTOAPPDEFAULTKEYSMNGRSAVE"></a><h3>xmlSecCryptoAppDefaultKeysMngrSave ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoAppDefaultKeysMngrSave (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Saves keys from <code class="PARAMETER">mngr</code>
+ to XML keys file.</p>
+<div class="REFSECT3">
+<a name="AEN2558"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN2560"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>filename</p></td>
+<td><p>the destination filename.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>type</p></td>
+<td><p>the type of keys to save (public/private/symmetric).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1668"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> GOST2001-GOSTR3411_94 signature transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN2581"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMHMACMD5ID"></a><h3>xmlSecTransformHmacMd5Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformHmacMd5Id xmlSecTransformHmacMd5GetKlass()</pre>
-<p>The HMAC with MD5 signature transform klass.</p>
+<a name="XMLSECCRYPTOAPPKEYSMNGRCERTLOAD"></a><h3>xmlSecCryptoAppKeysMngrCertLoad ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoAppKeysMngrCertLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Reads cert from <code class="PARAMETER">filename</code>
+ and adds to the list of trusted or known
+untrusted certs in <code class="PARAMETER">store</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN2606"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN2608"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>filename</p></td>
+<td><p>the certificate file.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>type</p></td>
+<td><p>the flag that indicates is the certificate in <code class="PARAMETER">filename</code>
+trusted or not.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN2636"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMHMACMD5GETKLASS"></a><h3>xmlSecTransformHmacMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformHmacMd5GetKlass (void);</pre>
-<p>The HMAC-MD5 transform klass.</p>
-<p></p>
+<a name="XMLSECCRYPTOAPPKEYSMNGRCERTLOADMEMORY"></a><h3>xmlSecCryptoAppKeysMngrCertLoadMemory ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoAppKeysMngrCertLoadMemory (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Reads cert from binary buffer <code class="PARAMETER">data</code>
+ and adds to the list of trusted or known
+untrusted certs in <code class="PARAMETER">store</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN2664"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN2666"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>data</p></td>
+<td><p>the certificate binary data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataSize</p></td>
+<td><p>the certificate binary data size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>type</p></td>
+<td><p>the flag that indicates is the certificate trusted or not.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1689"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-MD5 transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN2699"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMHMACRIPEMD160ID"></a><h3>xmlSecTransformHmacRipemd160Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformHmacRipemd160Id xmlSecTransformHmacRipemd160GetKlass()</pre>
-<p>The HMAC with RipeMD160 signature transform klass.</p>
+<a name="XMLSECCRYPTOAPPKEYLOAD"></a><h3>xmlSecCryptoAppKeyLoad ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecCryptoAppKeyLoad (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
+<p>Reads key from the a file.</p>
+<div class="REFSECT3">
+<a name="AEN2725"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN2727"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>filename</p></td>
+<td><p>the key filename.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>format</p></td>
+<td><p>the key file format.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pwd</p></td>
+<td><p>the key file password.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pwdCallback</p></td>
+<td><p>the key password callback.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN2760"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMHMACRIPEMD160GETKLASS"></a><h3>xmlSecTransformHmacRipemd160GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformHmacRipemd160GetKlass
- (void);</pre>
-<p>The HMAC-RIPEMD160 transform klass.</p>
-<p></p>
+<a name="XMLSECCRYPTOAPPKEYLOADMEMORY"></a><h3>xmlSecCryptoAppKeyLoadMemory ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecCryptoAppKeyLoadMemory (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
+<p>Reads key from the memory buffer.</p>
+<div class="REFSECT3">
+<a name="AEN2789"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN2791"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the binary key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataSize</p></td>
+<td><p>the size of binary key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>format</p></td>
+<td><p>the key file format.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pwd</p></td>
+<td><p>the key file password.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pwdCallback</p></td>
+<td><p>the key password callback.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1710"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-RIPEMD160 transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN2830"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMHMACSHA1ID"></a><h3>xmlSecTransformHmacSha1Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformHmacSha1Id xmlSecTransformHmacSha1GetKlass()</pre>
-<p>The HMAC with SHA1 signature transform klass.</p>
+<a name="XMLSECCRYPTOAPPPKCS12LOAD"></a><h3>xmlSecCryptoAppPkcs12Load ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecCryptoAppPkcs12Load (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
+<p>Reads key and all associated certificates from the PKCS12 file.
+For uniformity, call xmlSecCryptoAppKeyLoad instead of this function. Pass
+in format=xmlSecKeyDataFormatPkcs12.</p>
+<div class="REFSECT3">
+<a name="AEN2853"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN2855"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>filename</p></td>
+<td><p>the PKCS12 key filename.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pwd</p></td>
+<td><p>the PKCS12 file password.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pwdCallback</p></td>
+<td><p>the password callback.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN2882"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMHMACSHA1GETKLASS"></a><h3>xmlSecTransformHmacSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformHmacSha1GetKlass (void);</pre>
-<p>The HMAC-SHA1 transform klass.</p>
-<p></p>
+<a name="XMLSECCRYPTOAPPPKCS12LOADMEMORY"></a><h3>xmlSecCryptoAppPkcs12LoadMemory ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecCryptoAppPkcs12LoadMemory (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
+<p>Reads key and all associated certificates from the PKCS12 data in memory buffer.
+For uniformity, call xmlSecCryptoAppKeyLoadMemory instead of this function. Pass
+in format=xmlSecKeyDataFormatPkcs12.</p>
+<div class="REFSECT3">
+<a name="AEN2908"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN2910"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the PKCS12 binary data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataSize</p></td>
+<td><p>the PKCS12 binary data size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pwd</p></td>
+<td><p>the PKCS12 file password.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pwdCallback</p></td>
+<td><p>the password callback.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1731"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA1 transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN2943"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMHMACSHA224ID"></a><h3>xmlSecTransformHmacSha224Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformHmacSha224Id xmlSecTransformHmacSha224GetKlass()</pre>
-<p>The HMAC with SHA224 signature transform klass.</p>
+<a name="XMLSECCRYPTOAPPKEYCERTLOAD"></a><h3>xmlSecCryptoAppKeyCertLoad ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoAppKeyCertLoad (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
+<p>Reads the certificate from $<code class="PARAMETER">filename</code>
+ and adds it to key.</p>
+<div class="REFSECT3">
+<a name="AEN2964"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN2966"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>filename</p></td>
+<td><p>the certificate filename.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN2987"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMHMACSHA224GETKLASS"></a><h3>xmlSecTransformHmacSha224GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformHmacSha224GetKlass (void);</pre>
-<p>The HMAC-SHA224 transform klass.</p>
-<p></p>
+<a name="XMLSECCRYPTOAPPKEYCERTLOADMEMORY"></a><h3>xmlSecCryptoAppKeyCertLoadMemory ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoAppKeyCertLoadMemory (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
+<p>Reads the certificate from memory buffer and adds it to key.</p>
+<div class="REFSECT3">
+<a name="AEN3010"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN3012"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>data</p></td>
+<td><p>the certificate binary data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataSize</p></td>
+<td><p>the certificate binary data size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1752"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA224 transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN3039"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECCRYPTOAPPGETDEFAULTPWDCALLBACK"></a><h3>xmlSecCryptoAppGetDefaultPwdCallback ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font> *
+xmlSecCryptoAppGetDefaultPwdCallback (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Gets default password callback.</p>
+<div class="REFSECT3">
+<a name="AEN3052"></a><h4>Returns</h4>
+<p> default password callback.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-APP.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAAESID"></a><h3>xmlSecKeyDataAesId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataAesId xmlSecKeyDataAesGetKlass()</pre>
+<p>The AES key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMHMACSHA256ID"></a><h3>xmlSecTransformHmacSha256Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformHmacSha256Id xmlSecTransformHmacSha256GetKlass()</pre>
-<p>The HMAC with SHA256 signature transform klass.</p>
-<p></p>
+<a name="XMLSECKEYDATADESID"></a><h3>xmlSecKeyDataDesId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataDesId xmlSecKeyDataDesGetKlass()</pre>
+<p>The DES key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMHMACSHA256GETKLASS"></a><h3>xmlSecTransformHmacSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformHmacSha256GetKlass (void);</pre>
-<p>The HMAC-SHA256 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1773"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA256 transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECKEYDATADSAID"></a><h3>xmlSecKeyDataDsaId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataDsaId xmlSecKeyDataDsaGetKlass()</pre>
+<p>The DSA key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMHMACSHA384ID"></a><h3>xmlSecTransformHmacSha384Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformHmacSha384Id xmlSecTransformHmacSha384GetKlass()</pre>
-<p>The HMAC with SHA384 signature transform klass.</p>
-<p></p>
+<a name="XMLSECKEYDATAECDSAID"></a><h3>xmlSecKeyDataEcdsaId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataEcdsaId xmlSecKeyDataEcdsaGetKlass()</pre>
+<p>The ECDSA key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMHMACSHA384GETKLASS"></a><h3>xmlSecTransformHmacSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformHmacSha384GetKlass (void);</pre>
-<p>The HMAC-SHA384 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1794"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA384 transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECKEYDATAGOST2001ID"></a><h3>xmlSecKeyDataGost2001Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataGost2001Id xmlSecKeyDataGost2001GetKlass()</pre>
+<p>The GOST2001 key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMHMACSHA512ID"></a><h3>xmlSecTransformHmacSha512Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformHmacSha512Id xmlSecTransformHmacSha512GetKlass()</pre>
-<p>The HMAC with SHA512 signature transform klass.</p>
-<p></p>
+<a name="XMLSECKEYDATAGOSTR3410-2012-256ID"></a><h3>xmlSecKeyDataGostR3410_2012_256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataGostR3410_2012_256Id xmlSecKeyDataGostR3410_2012_256GetKlass()</pre>
+<p>The GOST R 34.10-2012 256 bit key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMHMACSHA512GETKLASS"></a><h3>xmlSecTransformHmacSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformHmacSha512GetKlass (void);</pre>
-<p>The HMAC-SHA512 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1815"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA512 transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECKEYDATAGOSTR3410-2012-512ID"></a><h3>xmlSecKeyDataGostR3410_2012_512Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataGostR3410_2012_512Id xmlSecKeyDataGostR3410_2012_512GetKlass()</pre>
+<p>The GOST R 34.10-2012 512 bit key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMMD5ID"></a><h3>xmlSecTransformMd5Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformMd5Id xmlSecTransformMd5GetKlass()</pre>
-<p>The MD5 digest transform klass.</p>
-<p></p>
+<a name="XMLSECKEYDATAHMACID"></a><h3>xmlSecKeyDataHmacId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataHmacId xmlSecKeyDataHmacGetKlass()</pre>
+<p>The DHMAC key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMMD5GETKLASS"></a><h3>xmlSecTransformMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformMd5GetKlass (void);</pre>
-<p>MD5 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1836"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to MD5 digest transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECKEYDATARSAID"></a><h3>xmlSecKeyDataRsaId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataRsaId xmlSecKeyDataRsaGetKlass()</pre>
+<p>The RSA key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRIPEMD160ID"></a><h3>xmlSecTransformRipemd160Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformRipemd160Id xmlSecTransformRipemd160GetKlass()</pre>
-<p>The RIPEMD160 digest transform klass.</p>
-<p></p>
+<a name="XMLSECKEYDATAX509ID"></a><h3>xmlSecKeyDataX509Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataX509Id xmlSecKeyDataX509GetKlass()</pre>
+<p>The X509 data klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRIPEMD160GETKLASS"></a><h3>xmlSecTransformRipemd160GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformRipemd160GetKlass (void);</pre>
-<p>RIPEMD-160 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1857"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to RIPEMD-160 digest transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECKEYDATARAWX509CERTID"></a><h3>xmlSecKeyDataRawX509CertId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataRawX509CertId xmlSecKeyDataRawX509CertGetKlass()</pre>
+<p>The raw X509 certificate klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSAMD5ID"></a><h3>xmlSecTransformRsaMd5Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformRsaMd5Id xmlSecTransformRsaMd5GetKlass()</pre>
-<p>The RSA-MD5 signature transform klass.</p>
-<p></p>
+<a name="XMLSECX509STOREID"></a><h3>xmlSecX509StoreId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecX509StoreId xmlSecX509StoreGetKlass()</pre>
+<p>The X509 store klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSAMD5GETKLASS"></a><h3>xmlSecTransformRsaMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformRsaMd5GetKlass (void);</pre>
-<p>The RSA-MD5 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1878"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-MD5 signature transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMAES128CBCID"></a><h3>xmlSecTransformAes128CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformAes128CbcId xmlSecTransformAes128CbcGetKlass()</pre>
+<p>The AES128 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSARIPEMD160ID"></a><h3>xmlSecTransformRsaRipemd160Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformRsaRipemd160Id xmlSecTransformRsaRipemd160GetKlass()</pre>
-<p>The RSA-RIPEMD160 signature transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMAES192CBCID"></a><h3>xmlSecTransformAes192CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformAes192CbcId xmlSecTransformAes192CbcGetKlass()</pre>
+<p>The AES192 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSARIPEMD160GETKLASS"></a><h3>xmlSecTransformRsaRipemd160GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformRsaRipemd160GetKlass (void);</pre>
-<p>The RSA-RIPEMD160 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1899"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-RIPEMD160 signature transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMAES256CBCID"></a><h3>xmlSecTransformAes256CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformAes256CbcId xmlSecTransformAes256CbcGetKlass()</pre>
+<p>The AES256 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSASHA1ID"></a><h3>xmlSecTransformRsaSha1Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformRsaSha1Id xmlSecTransformRsaSha1GetKlass()</pre>
-<p>The RSA-SHA1 signature transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMKWAES128ID"></a><h3>xmlSecTransformKWAes128Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformKWAes128Id xmlSecTransformKWAes128GetKlass()</pre>
+<p>The AES 128 key wrap transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSASHA1GETKLASS"></a><h3>xmlSecTransformRsaSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformRsaSha1GetKlass (void);</pre>
-<p>The RSA-SHA1 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1920"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA1 signature transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMKWAES192ID"></a><h3>xmlSecTransformKWAes192Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformKWAes192Id xmlSecTransformKWAes192GetKlass()</pre>
+<p>The AES 192 key wrap transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSASHA224ID"></a><h3>xmlSecTransformRsaSha224Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformRsaSha224Id xmlSecTransformRsaSha224GetKlass()</pre>
-<p>The RSA-SHA224 signature transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMKWAES256ID"></a><h3>xmlSecTransformKWAes256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformKWAes256Id xmlSecTransformKWAes256GetKlass()</pre>
+<p>The AES 256 key wrap transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSASHA224GETKLASS"></a><h3>xmlSecTransformRsaSha224GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformRsaSha224GetKlass (void);</pre>
-<p>The RSA-SHA224 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1941"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA224 signature transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMDES3CBCID"></a><h3>xmlSecTransformDes3CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformDes3CbcId xmlSecTransformDes3CbcGetKlass()</pre>
+<p>The Triple DES encryption transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSASHA256ID"></a><h3>xmlSecTransformRsaSha256Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformRsaSha256Id xmlSecTransformRsaSha256GetKlass()</pre>
-<p>The RSA-SHA256 signature transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMKWDES3ID"></a><h3>xmlSecTransformKWDes3Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformKWDes3Id xmlSecTransformKWDes3GetKlass()</pre>
+<p>The DES3 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSASHA256GETKLASS"></a><h3>xmlSecTransformRsaSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformRsaSha256GetKlass (void);</pre>
-<p>The RSA-SHA256 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1962"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA256 signature transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMDSASHA1ID"></a><h3>xmlSecTransformDsaSha1Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformDsaSha1Id xmlSecTransformDsaSha1GetKlass()</pre>
+<p>The DSA-SHA1 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSASHA384ID"></a><h3>xmlSecTransformRsaSha384Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformRsaSha384Id xmlSecTransformRsaSha384GetKlass()</pre>
-<p>The RSA-SHA384 signature transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMDSASHA256ID"></a><h3>xmlSecTransformDsaSha256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformDsaSha256Id xmlSecTransformDsaSha256GetKlass()</pre>
+<p>The DSA-SHA256 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSASHA384GETKLASS"></a><h3>xmlSecTransformRsaSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformRsaSha384GetKlass (void);</pre>
-<p>The RSA-SHA384 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN1983"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA384 signature transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMECDSASHA1ID"></a><h3>xmlSecTransformEcdsaSha1Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformEcdsaSha1Id xmlSecTransformEcdsaSha1GetKlass()</pre>
+<p>The ECDSA-SHA1 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSASHA512ID"></a><h3>xmlSecTransformRsaSha512Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformRsaSha512Id xmlSecTransformRsaSha512GetKlass()</pre>
-<p>The RSA-SHA512 signature transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMECDSASHA224ID"></a><h3>xmlSecTransformEcdsaSha224Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformEcdsaSha224Id xmlSecTransformEcdsaSha224GetKlass()</pre>
+<p>The ECDSA-SHA224 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSASHA512GETKLASS"></a><h3>xmlSecTransformRsaSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformRsaSha512GetKlass (void);</pre>
-<p>The RSA-SHA512 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2004"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA512 signature transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMECDSASHA256ID"></a><h3>xmlSecTransformEcdsaSha256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformEcdsaSha256Id xmlSecTransformEcdsaSha256GetKlass()</pre>
+<p>The ECDSA-SHA256 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSAPKCS1ID"></a><h3>xmlSecTransformRsaPkcs1Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformRsaPkcs1Id xmlSecTransformRsaPkcs1GetKlass()</pre>
-<p>The RSA PKCS1 key transport transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMECDSASHA384ID"></a><h3>xmlSecTransformEcdsaSha384Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformEcdsaSha384Id xmlSecTransformEcdsaSha384GetKlass()</pre>
+<p>The ECDS-SHA384 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSAPKCS1GETKLASS"></a><h3>xmlSecTransformRsaPkcs1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformRsaPkcs1GetKlass (void);</pre>
-<p>The RSA-PKCS1 key transport transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2025"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-PKCS1 key transport transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMECDSASHA512ID"></a><h3>xmlSecTransformEcdsaSha512Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformEcdsaSha512Id xmlSecTransformEcdsaSha512GetKlass()</pre>
+<p>The ECDSA-SHA512 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSAOAEPID"></a><h3>xmlSecTransformRsaOaepId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformRsaOaepId xmlSecTransformRsaOaepGetKlass()</pre>
-<p>The RSA PKCS1 key transport transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMGOST2001GOSTR3411-94ID"></a><h3>xmlSecTransformGost2001GostR3411_94Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformGost2001GostR3411_94Id xmlSecTransformGost2001GostR3411_94GetKlass()</pre>
+<p>The GOST2001-GOSTR3411_94 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMRSAOAEPGETKLASS"></a><h3>xmlSecTransformRsaOaepGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformRsaOaepGetKlass (void);</pre>
-<p>The RSA-OAEP key transport transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2046"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-OAEP key transport transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMGOSTR3410-2012GOSTR3411-2012-256ID"></a><h3>xmlSecTransformGostR3410_2012GostR3411_2012_256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformGostR3410_2012GostR3411_2012_256Id xmlSecTransformGostR3410_2012GostR3411_2012_256GetKlass()</pre>
+<p>The GOST R 34.10-2012 - GOST R 34.11-2012 256 bit signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMGOSTR3411-94ID"></a><h3>xmlSecTransformGostR3411_94Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformGostR3411_94Id xmlSecTransformGostR3411_94GetKlass()</pre>
-<p>The GOSTR3411_94 digest transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMGOSTR3410-2012GOSTR3411-2012-512ID"></a><h3>xmlSecTransformGostR3410_2012GostR3411_2012_512Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformGostR3410_2012GostR3411_2012_512Id xmlSecTransformGostR3410_2012GostR3411_2012_512GetKlass()</pre>
+<p>The GOST R 34.10-2012 - GOST R 34.11-2012 512 bit signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMGOSTR3411-94GETKLASS"></a><h3>xmlSecTransformGostR3411_94GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformGostR3411_94GetKlass (void);</pre>
-<p>GOSTR3411_94 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2067"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to GOSTR3411_94 digest transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMHMACMD5ID"></a><h3>xmlSecTransformHmacMd5Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformHmacMd5Id xmlSecTransformHmacMd5GetKlass()</pre>
+<p>The HMAC with MD5 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSHA1ID"></a><h3>xmlSecTransformSha1Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformSha1Id xmlSecTransformSha1GetKlass()</pre>
-<p>The SHA1 digest transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMHMACRIPEMD160ID"></a><h3>xmlSecTransformHmacRipemd160Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformHmacRipemd160Id xmlSecTransformHmacRipemd160GetKlass()</pre>
+<p>The HMAC with RipeMD160 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSHA1GETKLASS"></a><h3>xmlSecTransformSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformSha1GetKlass (void);</pre>
-<p>SHA-1 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2088"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA-1 digest transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMHMACSHA1ID"></a><h3>xmlSecTransformHmacSha1Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformHmacSha1Id xmlSecTransformHmacSha1GetKlass()</pre>
+<p>The HMAC with SHA1 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSHA224ID"></a><h3>xmlSecTransformSha224Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformSha224Id xmlSecTransformSha224GetKlass()</pre>
-<p>The SHA224 digest transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMHMACSHA224ID"></a><h3>xmlSecTransformHmacSha224Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformHmacSha224Id xmlSecTransformHmacSha224GetKlass()</pre>
+<p>The HMAC with SHA224 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSHA224GETKLASS"></a><h3>xmlSecTransformSha224GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformSha224GetKlass (void);</pre>
-<p>SHA224 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2109"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA224 digest transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMHMACSHA256ID"></a><h3>xmlSecTransformHmacSha256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformHmacSha256Id xmlSecTransformHmacSha256GetKlass()</pre>
+<p>The HMAC with SHA256 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSHA256ID"></a><h3>xmlSecTransformSha256Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformSha256Id xmlSecTransformSha256GetKlass()</pre>
-<p>The SHA256 digest transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMHMACSHA384ID"></a><h3>xmlSecTransformHmacSha384Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformHmacSha384Id xmlSecTransformHmacSha384GetKlass()</pre>
+<p>The HMAC with SHA384 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSHA256GETKLASS"></a><h3>xmlSecTransformSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformSha256GetKlass (void);</pre>
-<p>SHA256 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2130"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA256 digest transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMHMACSHA512ID"></a><h3>xmlSecTransformHmacSha512Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformHmacSha512Id xmlSecTransformHmacSha512GetKlass()</pre>
+<p>The HMAC with SHA512 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSHA384ID"></a><h3>xmlSecTransformSha384Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformSha384Id xmlSecTransformSha384GetKlass()</pre>
-<p>The SHA384 digest transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMMD5ID"></a><h3>xmlSecTransformMd5Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformMd5Id xmlSecTransformMd5GetKlass()</pre>
+<p>The MD5 digest transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSHA384GETKLASS"></a><h3>xmlSecTransformSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformSha384GetKlass (void);</pre>
-<p>SHA384 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2151"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA384 digest transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMRIPEMD160ID"></a><h3>xmlSecTransformRipemd160Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformRipemd160Id xmlSecTransformRipemd160GetKlass()</pre>
+<p>The RIPEMD160 digest transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSHA512ID"></a><h3>xmlSecTransformSha512Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformSha512Id xmlSecTransformSha512GetKlass()</pre>
-<p>The SHA512 digest transform klass.</p>
-<p></p>
+<a name="XMLSECTRANSFORMRSAMD5ID"></a><h3>xmlSecTransformRsaMd5Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformRsaMd5Id xmlSecTransformRsaMd5GetKlass()</pre>
+<p>The RSA-MD5 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSHA512GETKLASS"></a><h3>xmlSecTransformSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformSha512GetKlass (void);</pre>
-<p>SHA512 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2172"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA512 digest transform klass or NULL if an error
-occurs (the xmlsec-crypto library is not loaded or this transform is not
-implemented).</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMRSARIPEMD160ID"></a><h3>xmlSecTransformRsaRipemd160Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformRsaRipemd160Id xmlSecTransformRsaRipemd160GetKlass()</pre>
+<p>The RSA-RIPEMD160 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPINIT"></a><h3>xmlSecCryptoAppInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoAppInit (const <font>char</font> *config);</pre>
-<p>General crypto engine initialization. This function is used
-by XMLSec command line utility and called before
-<code class="PARAMETER">xmlSecInit</code> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2188"><span style="white-space: nowrap"><code class="PARAMETER">config</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the path to crypto library configuration.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2193"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMRSASHA1ID"></a><h3>xmlSecTransformRsaSha1Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformRsaSha1Id xmlSecTransformRsaSha1GetKlass()</pre>
+<p>The RSA-SHA1 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPSHUTDOWN"></a><h3>xmlSecCryptoAppShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoAppShutdown (void);</pre>
-<p>General crypto engine shutdown. This function is used
-by XMLSec command line utility and called after
-<code class="PARAMETER">xmlSecShutdown</code> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2208"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMRSASHA224ID"></a><h3>xmlSecTransformRsaSha224Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformRsaSha224Id xmlSecTransformRsaSha224GetKlass()</pre>
+<p>The RSA-SHA224 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPDEFAULTKEYSMNGRINIT"></a><h3>xmlSecCryptoAppDefaultKeysMngrInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoAppDefaultKeysMngrInit (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);</pre>
-<p>Initializes <code class="PARAMETER">mngr</code> with simple keys store <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREID"><span class="TYPE">xmlSecSimpleKeysStoreId</span></a>
-and a default crypto key data stores.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2226"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2231"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMRSASHA256ID"></a><h3>xmlSecTransformRsaSha256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformRsaSha256Id xmlSecTransformRsaSha256GetKlass()</pre>
+<p>The RSA-SHA256 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPDEFAULTKEYSMNGRADOPTKEY"></a><h3>xmlSecCryptoAppDefaultKeysMngrAdoptKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoAppDefaultKeysMngrAdoptKey
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Adds <code class="PARAMETER">key</code> to the keys manager <code class="PARAMETER">mngr</code> created with <a href="xmlsec-app.html#XMLSECCRYPTOAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecCryptoAppDefaultKeysMngrInit</span></a>
-function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2251"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2256"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2261"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMRSASHA384ID"></a><h3>xmlSecTransformRsaSha384Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformRsaSha384Id xmlSecTransformRsaSha384GetKlass()</pre>
+<p>The RSA-SHA384 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPDEFAULTKEYSMNGRLOAD"></a><h3>xmlSecCryptoAppDefaultKeysMngrLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoAppDefaultKeysMngrLoad (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *uri);</pre>
-<p>Loads XML keys file from <code class="PARAMETER">uri</code> to the keys manager <code class="PARAMETER">mngr</code> created
-with <a href="xmlsec-app.html#XMLSECCRYPTOAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecCryptoAppDefaultKeysMngrInit</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2281"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2286"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the uri.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2291"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMRSASHA512ID"></a><h3>xmlSecTransformRsaSha512Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformRsaSha512Id xmlSecTransformRsaSha512GetKlass()</pre>
+<p>The RSA-SHA512 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPDEFAULTKEYSMNGRSAVE"></a><h3>xmlSecCryptoAppDefaultKeysMngrSave ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoAppDefaultKeysMngrSave (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Saves keys from <code class="PARAMETER">mngr</code> to XML keys file.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2309"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2314"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination filename.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2319"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the type of keys to save (public/private/symmetric).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2324"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMRSAPKCS1ID"></a><h3>xmlSecTransformRsaPkcs1Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformRsaPkcs1Id xmlSecTransformRsaPkcs1GetKlass()</pre>
+<p>The RSA PKCS1 key transport transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPKEYSMNGRCERTLOAD"></a><h3>xmlSecCryptoAppKeysMngrCertLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoAppKeysMngrCertLoad (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Reads cert from <code class="PARAMETER">filename</code> and adds to the list of trusted or known
-untrusted certs in <code class="PARAMETER">store</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2344"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2349"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2354"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2359"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag that indicates is the certificate in <code class="PARAMETER">filename</code>
- trusted or not.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2365"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMRSAOAEPID"></a><h3>xmlSecTransformRsaOaepId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformRsaOaepId xmlSecTransformRsaOaepGetKlass()</pre>
+<p>The RSA PKCS1 key transport transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPKEYSMNGRCERTLOADMEMORY"></a><h3>xmlSecCryptoAppKeysMngrCertLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoAppKeysMngrCertLoadMemory
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Reads cert from binary buffer <code class="PARAMETER">data</code> and adds to the list of trusted or known
-untrusted certs in <code class="PARAMETER">store</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2386"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2391"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2396"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data size.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2401"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2406"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag that indicates is the certificate trusted or not.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2411"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMGOSTR3411-94ID"></a><h3>xmlSecTransformGostR3411_94Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformGostR3411_94Id xmlSecTransformGostR3411_94GetKlass()</pre>
+<p>The GOSTR3411_94 digest transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPKEYLOAD"></a><h3>xmlSecCryptoAppKeyLoad ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecCryptoAppKeyLoad (const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
-<p>Reads key from the a file.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2430"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key filename.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2435"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file format.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2440"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file password.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2445"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password callback.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2450"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2455"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMGOSTR3411-2012-256ID"></a><h3>xmlSecTransformGostR3411_2012_256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformGostR3411_2012_256Id xmlSecTransformGostR3411_2012_256GetKlass()</pre>
+<p>The GOST R 34.11-2012 256 bit digest transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPKEYLOADMEMORY"></a><h3>xmlSecCryptoAppKeyLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecCryptoAppKeyLoadMemory (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
-<p>Reads key from the memory buffer.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2475"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the binary key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2480"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of binary key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2485"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file format.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2490"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file password.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2495"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password callback.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2500"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2505"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMGOSTR3411-2012-512ID"></a><h3>xmlSecTransformGostR3411_2012_512Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformGostR3411_2012_512Id xmlSecTransformGostR3411_2012_512GetKlass()</pre>
+<p>The GOST R 34.11-2012 512 bit digest transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPPKCS12LOAD"></a><h3>xmlSecCryptoAppPkcs12Load ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecCryptoAppPkcs12Load (const <font>char</font> *filename,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
-<p>Reads key and all associated certificates from the PKCS12 file.
-For uniformity, call xmlSecCryptoAppKeyLoad instead of this function. Pass
-in format=xmlSecKeyDataFormatPkcs12.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2523"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 key filename.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2528"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 file password.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2533"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the password callback.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2538"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2543"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMSHA1ID"></a><h3>xmlSecTransformSha1Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformSha1Id xmlSecTransformSha1GetKlass()</pre>
+<p>The SHA1 digest transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPPKCS12LOADMEMORY"></a><h3>xmlSecCryptoAppPkcs12LoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecCryptoAppPkcs12LoadMemory (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
-<p>Reads key and all associated certificates from the PKCS12 data in memory buffer.
-For uniformity, call xmlSecCryptoAppKeyLoadMemory instead of this function. Pass
-in format=xmlSecKeyDataFormatPkcs12.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2562"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 binary data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2567"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 binary data size.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2572"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 file password.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2577"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the password callback.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2582"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2587"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMSHA224ID"></a><h3>xmlSecTransformSha224Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformSha224Id xmlSecTransformSha224GetKlass()</pre>
+<p>The SHA224 digest transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPKEYCERTLOAD"></a><h3>xmlSecCryptoAppKeyCertLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoAppKeyCertLoad (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
-<p>Reads the certificate from $<code class="PARAMETER">filename</code> and adds it to key.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2605"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2610"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate filename.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2615"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2620"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMSHA256ID"></a><h3>xmlSecTransformSha256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformSha256Id xmlSecTransformSha256GetKlass()</pre>
+<p>The SHA256 digest transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPKEYCERTLOADMEMORY"></a><h3>xmlSecCryptoAppKeyCertLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoAppKeyCertLoadMemory (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
-<p>Reads the certificate from memory buffer and adds it to key.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2638"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2643"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2648"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data size.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2653"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2658"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMSHA384ID"></a><h3>xmlSecTransformSha384Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformSha384Id xmlSecTransformSha384GetKlass()</pre>
+<p>The SHA384 digest transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCRYPTOAPPGETDEFAULTPWDCALLBACK"></a><h3>xmlSecCryptoAppGetDefaultPwdCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font>* xmlSecCryptoAppGetDefaultPwdCallback
- (void);</pre>
-<p>Gets default password callback.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2672"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> default password callback.</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMSHA512ID"></a><h3>xmlSecTransformSha512Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformSha512Id xmlSecTransformSha512GetKlass()</pre>
+<p>The SHA512 digest transform klass.</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-base64.html b/docs/api/xmlsec-base64.html
index 3fb5de0..485f2e4 100644
--- a/docs/api/xmlsec-base64.html
+++ b/docs/api/xmlsec-base64.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="app" href="xmlsec-app.html">
<link rel="NEXT" title="bn" href="xmlsec-bn.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,285 +101,469 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-app.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-app.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-bn.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-bn.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-BASE64"></a>base64</h1>
<div class="REFNAMEDIV">
-<a name="AEN2682"></a><h2>Name</h2>base64 -- Base64 encoding/decoding functions.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-BASE64.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">#define <a href="xmlsec-base64.html#XMLSEC-BASE64-LINESIZE--CAPS">XMLSEC_BASE64_LINESIZE</a>
-<font>int</font> <a href="xmlsec-base64.html#XMLSECBASE64GETDEFAULTLINESIZE">xmlSecBase64GetDefaultLineSize</a> (void);
-<font>void</font> <a href="xmlsec-base64.html#XMLSECBASE64SETDEFAULTLINESIZE">xmlSecBase64SetDefaultLineSize</a> (<font>int</font> columns);
-<font>xmlSecBase64CtxPtr</font> <a href="xmlsec-base64.html#XMLSECBASE64CTXCREATE">xmlSecBase64CtxCreate</a> (<font>int</font> encode,
- <font>int</font> columns);
-<font>void</font> <a href="xmlsec-base64.html#XMLSECBASE64CTXDESTROY">xmlSecBase64CtxDestroy</a> (<font>xmlSecBase64CtxPtr</font> ctx);
-<font>int</font> <a href="xmlsec-base64.html#XMLSECBASE64CTXINITIALIZE">xmlSecBase64CtxInitialize</a> (<font>xmlSecBase64CtxPtr</font> ctx,
- <font>int</font> encode,
- <font>int</font> columns);
-<font>void</font> <a href="xmlsec-base64.html#XMLSECBASE64CTXFINALIZE">xmlSecBase64CtxFinalize</a> (<font>xmlSecBase64CtxPtr</font> ctx);
-<font>int</font> <a href="xmlsec-base64.html#XMLSECBASE64CTXUPDATE">xmlSecBase64CtxUpdate</a> (<font>xmlSecBase64CtxPtr</font> ctx,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *in,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> inSize,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *out,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> outSize);
-<font>int</font> <a href="xmlsec-base64.html#XMLSECBASE64CTXFINAL">xmlSecBase64CtxFinal</a> (<font>xmlSecBase64CtxPtr</font> ctx,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *out,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> outSize);
-<font>xmlChar</font>* <a href="xmlsec-base64.html#XMLSECBASE64ENCODE">xmlSecBase64Encode</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> len,
- <font>int</font> columns);
-<font>int</font> <a href="xmlsec-base64.html#XMLSECBASE64DECODE">xmlSecBase64Decode</a> (const <font>xmlChar</font> *str,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> len);</pre>
+<a name="AEN3398"></a><h2>Name</h2>base64 -- Base64 encoding/decoding functions.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-BASE64.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN3403"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-base64.html#XMLSECBASE64GETDEFAULTLINESIZE">xmlSecBase64GetDefaultLineSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-base64.html#XMLSECBASE64SETDEFAULTLINESIZE">xmlSecBase64SetDefaultLineSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecBase64CtxPtr</span></font></td>
+<td>
+<a href="xmlsec-base64.html#XMLSECBASE64CTXCREATE">xmlSecBase64CtxCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-base64.html#XMLSECBASE64CTXDESTROY">xmlSecBase64CtxDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-base64.html#XMLSECBASE64CTXINITIALIZE">xmlSecBase64CtxInitialize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-base64.html#XMLSECBASE64CTXFINALIZE">xmlSecBase64CtxFinalize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-base64.html#XMLSECBASE64CTXUPDATE">xmlSecBase64CtxUpdate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-base64.html#XMLSECBASE64CTXFINAL">xmlSecBase64CtxFinal</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-base64.html#XMLSECBASE64ENCODE">xmlSecBase64Encode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-base64.html#XMLSECBASE64DECODE">xmlSecBase64Decode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-BASE64.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN3478"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody><tr>
+<td>#define</td>
+<td><a href="xmlsec-base64.html#XMLSEC-BASE64-LINESIZE:CAPS">XMLSEC_BASE64_LINESIZE</a></td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-BASE64.DESCRIPTION"></a><h2>Description</h2>
<p>Base64 encoding/decoding functions.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-BASE64.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSEC-BASE64-LINESIZE--CAPS"></a><h3>XMLSEC_BASE64_LINESIZE</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_BASE64_LINESIZE 64</pre>
-<p>The default maximum base64 encoded line size.</p>
-<p></p>
-</div>
-<hr>
+<a name="XMLSEC-BASE64.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECBASE64GETDEFAULTLINESIZE"></a><h3>xmlSecBase64GetDefaultLineSize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBase64GetDefaultLineSize (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBase64GetDefaultLineSize (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Gets the current default line size.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2752"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the current default line size.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN3500"></a><h4>Returns</h4>
+<p> the current default line size.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBASE64SETDEFAULTLINESIZE"></a><h3>xmlSecBase64SetDefaultLineSize ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecBase64SetDefaultLineSize (<font>int</font> columns);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecBase64SetDefaultLineSize (<code class="PARAMETER"><font><span class="TYPE">int</span></font> columns</code>);</pre>
<p>Sets the current default line size.</p>
+<div class="REFSECT3">
+<a name="AEN3514"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN3516"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>columns</p></td>
+<td><p>number of columns</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2767"><span style="white-space: nowrap"><code class="PARAMETER">columns</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> number of columns</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBASE64CTXCREATE"></a><h3>xmlSecBase64CtxCreate ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecBase64CtxPtr</font> xmlSecBase64CtxCreate (<font>int</font> encode,
- <font>int</font> columns);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecBase64CtxPtr</span></font>
+xmlSecBase64CtxCreate (<code class="PARAMETER"><font><span class="TYPE">int</span></font> encode</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> columns</code>);</pre>
<p>Allocates and initializes new base64 context.</p>
+<div class="REFSECT3">
+<a name="AEN3539"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN3541"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2783"><span style="white-space: nowrap"><code class="PARAMETER">encode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the encode/decode flag (1 - encode, 0 - decode)</p></td>
+<td><p>encode</p></td>
+<td><p>the encode/decode flag (1 - encode, 0 - decode)</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2788"><span style="white-space: nowrap"><code class="PARAMETER">columns</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the max line length.</p></td>
+<td><p>columns</p></td>
+<td><p>the max line length.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2793"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> a pointer to newly created <font><span class="TYPE">xmlSecBase64Ctx</span></font> structure
-or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN3556"></a><h4>Returns</h4>
+<p> a pointer to newly created <font><span class="TYPE">xmlSecBase64Ctx</span></font> structure
+or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBASE64CTXDESTROY"></a><h3>xmlSecBase64CtxDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecBase64CtxDestroy (<font>xmlSecBase64CtxPtr</font> ctx);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecBase64CtxDestroy (<code class="PARAMETER"><font><span class="TYPE">xmlSecBase64CtxPtr</span></font> ctx</code>);</pre>
<p>Destroys base64 context.</p>
+<div class="REFSECT3">
+<a name="AEN3572"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN3574"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>ctx</p></td>
+<td><p>the pointer to <font><span class="TYPE">xmlSecBase64Ctx</span></font> structure.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2810"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <font><span class="TYPE">xmlSecBase64Ctx</span></font> structure.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBASE64CTXINITIALIZE"></a><h3>xmlSecBase64CtxInitialize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBase64CtxInitialize (<font>xmlSecBase64CtxPtr</font> ctx,
- <font>int</font> encode,
- <font>int</font> columns);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBase64CtxInitialize (<code class="PARAMETER"><font><span class="TYPE">xmlSecBase64CtxPtr</span></font> ctx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> encode</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> columns</code>);</pre>
<p>Initializes new base64 context.</p>
+<div class="REFSECT3">
+<a name="AEN3602"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2829"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <font><span class="TYPE">xmlSecBase64Ctx</span></font> structure,</p></td>
-</tr>
+<a name="AEN3604"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2836"><span style="white-space: nowrap"><code class="PARAMETER">encode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the encode/decode flag (1 - encode, 0 - decode)</p></td>
+<td><p>ctx</p></td>
+<td><p>the pointer to <font><span class="TYPE">xmlSecBase64Ctx</span></font> structure,</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2841"><span style="white-space: nowrap"><code class="PARAMETER">columns</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the max line length.</p></td>
+<td><p>encode</p></td>
+<td><p>the encode/decode flag (1 - encode, 0 - decode)</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2846"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success and a negative value otherwise.</p></td>
+<td><p>columns</p></td>
+<td><p>the max line length.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN3627"></a><h4>Returns</h4>
+<p> 0 on success and a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBASE64CTXFINALIZE"></a><h3>xmlSecBase64CtxFinalize ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecBase64CtxFinalize (<font>xmlSecBase64CtxPtr</font> ctx);</pre>
-<p>Frees all the resources allocated by <code class="PARAMETER">ctx</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecBase64CtxFinalize (<code class="PARAMETER"><font><span class="TYPE">xmlSecBase64CtxPtr</span></font> ctx</code>);</pre>
+<p>Frees all the resources allocated by <code class="PARAMETER">ctx</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN3642"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN3644"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>ctx</p></td>
+<td><p>the pointer to <font><span class="TYPE">xmlSecBase64Ctx</span></font> structure,</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN2862"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <font><span class="TYPE">xmlSecBase64Ctx</span></font> structure,</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBASE64CTXUPDATE"></a><h3>xmlSecBase64CtxUpdate ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBase64CtxUpdate (<font>xmlSecBase64CtxPtr</font> ctx,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *in,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> inSize,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *out,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> outSize);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBase64CtxUpdate (<code class="PARAMETER"><font><span class="TYPE">xmlSecBase64CtxPtr</span></font> ctx</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *in</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> inSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *out</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> outSize</code>);</pre>
<p>Encodes or decodes the next piece of data from input buffer.</p>
+<div class="REFSECT3">
+<a name="AEN3678"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2883"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <font><span class="TYPE">xmlSecBase64Ctx</span></font> structure</p></td>
-</tr>
+<a name="AEN3680"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2890"><span style="white-space: nowrap"><code class="PARAMETER">in</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input buffer</p></td>
+<td><p>ctx</p></td>
+<td><p>the pointer to <font><span class="TYPE">xmlSecBase64Ctx</span></font> structure</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2895"><span style="white-space: nowrap"><code class="PARAMETER">inSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input buffer size</p></td>
+<td><p>in</p></td>
+<td><p>the input buffer</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2900"><span style="white-space: nowrap"><code class="PARAMETER">out</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output buffer</p></td>
+<td><p>inSize</p></td>
+<td><p>the input buffer size</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2905"><span style="white-space: nowrap"><code class="PARAMETER">outSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output buffer size</p></td>
+<td><p>out</p></td>
+<td><p>the output buffer</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2910"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the number of bytes written to output buffer or
--1 if an error occurs.</p></td>
+<td><p>outSize</p></td>
+<td><p>the output buffer size</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN3715"></a><h4>Returns</h4>
+<p> the number of bytes written to output buffer or
+-1 if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBASE64CTXFINAL"></a><h3>xmlSecBase64CtxFinal ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBase64CtxFinal (<font>xmlSecBase64CtxPtr</font> ctx,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *out,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> outSize);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBase64CtxFinal (<code class="PARAMETER"><font><span class="TYPE">xmlSecBase64CtxPtr</span></font> ctx</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *out</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> outSize</code>);</pre>
<p>Encodes or decodes the last piece of data stored in the context
and finalizes the result.</p>
+<div class="REFSECT3">
+<a name="AEN3735"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2927"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <font><span class="TYPE">xmlSecBase64Ctx</span></font> structure</p></td>
-</tr>
+<a name="AEN3737"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2934"><span style="white-space: nowrap"><code class="PARAMETER">out</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output buffer</p></td>
+<td><p>ctx</p></td>
+<td><p>the pointer to <font><span class="TYPE">xmlSecBase64Ctx</span></font> structure</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2939"><span style="white-space: nowrap"><code class="PARAMETER">outSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output buffer size</p></td>
+<td><p>out</p></td>
+<td><p>the output buffer</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2944"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the number of bytes written to output buffer or
--1 if an error occurs.</p></td>
+<td><p>outSize</p></td>
+<td><p>the output buffer size</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN3760"></a><h4>Returns</h4>
+<p> the number of bytes written to output buffer or
+-1 if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBASE64ENCODE"></a><h3>xmlSecBase64Encode ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlChar</font>* xmlSecBase64Encode (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> len,
- <font>int</font> columns);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecBase64Encode (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> len</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> columns</code>);</pre>
<p>Encodes the data from input buffer and allocates the string for the result.
The caller is responsible for freeing returned buffer using
<font><code class="FUNCTION">xmlFree()</code></font> function.</p>
+<div class="REFSECT3">
+<a name="AEN3782"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2963"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input buffer.</p></td>
-</tr>
+<a name="AEN3784"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2968"><span style="white-space: nowrap"><code class="PARAMETER">len</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input buffer size.</p></td>
+<td><p>buf</p></td>
+<td><p>the input buffer.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2973"><span style="white-space: nowrap"><code class="PARAMETER">columns</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output max line length (if 0 then no line breaks
- would be inserted)</p></td>
+<td><p>len</p></td>
+<td><p>the input buffer size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2978"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> newly allocated string with base64 encoded data
-or NULL if an error occurs.</p></td>
+<td><p>columns</p></td>
+<td><p>the output max line length (if 0 then no line breaks
+would be inserted)</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN3805"></a><h4>Returns</h4>
+<p> newly allocated string with base64 encoded data
+or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBASE64DECODE"></a><h3>xmlSecBase64Decode ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBase64Decode (const <font>xmlChar</font> *str,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> len);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBase64Decode (<code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *str</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> len</code>);</pre>
<p>Decodes input base64 encoded string and puts result into
the output buffer.</p>
+<div class="REFSECT3">
+<a name="AEN3825"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN2995"><span style="white-space: nowrap"><code class="PARAMETER">str</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input buffer with base64 encoded string</p></td>
-</tr>
+<a name="AEN3827"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3000"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output buffer</p></td>
+<td><p>str</p></td>
+<td><p>the input buffer with base64 encoded string</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3005"><span style="white-space: nowrap"><code class="PARAMETER">len</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output buffer size</p></td>
+<td><p>buf</p></td>
+<td><p>the output buffer</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3010"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the number of bytes written to the output buffer or
-a negative value if an error occurs</p></td>
+<td><p>len</p></td>
+<td><p>the output buffer size</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN3848"></a><h4>Returns</h4>
+<p> the number of bytes written to the output buffer or
+a negative value if an error occurs</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-BASE64.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSEC-BASE64-LINESIZE:CAPS"></a><h3>XMLSEC_BASE64_LINESIZE</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_BASE64_LINESIZE 64</pre>
+<p>The default maximum base64 encoded line size.</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-bn.html b/docs/api/xmlsec-bn.html
index aa2249a..ddc5c9c 100644
--- a/docs/api/xmlsec-bn.html
+++ b/docs/api/xmlsec-bn.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="base64" href="xmlsec-base64.html">
<link rel="NEXT" title="buffer" href="xmlsec-buffer.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,646 +101,1111 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-base64.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-base64.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-buffer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-buffer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-BN"></a>bn</h1>
<div class="REFNAMEDIV">
-<a name="AEN3020"></a><h2>Name</h2>bn -- Big numbers support functions.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-BN.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">enum <a href="xmlsec-bn.html#XMLSECBNFORMAT">xmlSecBnFormat</a>;
-<font>xmlSecBnPtr</font> <a href="xmlsec-bn.html#XMLSECBNCREATE">xmlSecBnCreate</a> (<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<font>void</font> <a href="xmlsec-bn.html#XMLSECBNDESTROY">xmlSecBnDestroy</a> (<font>xmlSecBnPtr</font> bn);
-<font>int</font> <a href="xmlsec-bn.html#XMLSECBNINITIALIZE">xmlSecBnInitialize</a> (<font>xmlSecBnPtr</font> bn,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<font>void</font> <a href="xmlsec-bn.html#XMLSECBNFINALIZE">xmlSecBnFinalize</a> (<font>xmlSecBnPtr</font> bn);
-<a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a>* <a href="xmlsec-bn.html#XMLSECBNGETDATA">xmlSecBnGetData</a> (<font>xmlSecBnPtr</font> bn);
-<font>int</font> <a href="xmlsec-bn.html#XMLSECBNSETDATA">xmlSecBnSetData</a> (<font>xmlSecBnPtr</font> bn,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-bn.html#XMLSECBNGETSIZE">xmlSecBnGetSize</a> (<font>xmlSecBnPtr</font> bn);
-<font>void</font> <a href="xmlsec-bn.html#XMLSECBNZERO">xmlSecBnZero</a> (<font>xmlSecBnPtr</font> bn);
-<font>int</font> <a href="xmlsec-bn.html#XMLSECBNFROMSTRING">xmlSecBnFromString</a> (<font>xmlSecBnPtr</font> bn,
- const <font>xmlChar</font> *str,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> base);
-<font>xmlChar</font>* <a href="xmlsec-bn.html#XMLSECBNTOSTRING">xmlSecBnToString</a> (<font>xmlSecBnPtr</font> bn,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> base);
-<font>int</font> <a href="xmlsec-bn.html#XMLSECBNFROMHEXSTRING">xmlSecBnFromHexString</a> (<font>xmlSecBnPtr</font> bn,
- const <font>xmlChar</font> *str);
-<font>xmlChar</font>* <a href="xmlsec-bn.html#XMLSECBNTOHEXSTRING">xmlSecBnToHexString</a> (<font>xmlSecBnPtr</font> bn);
-<font>int</font> <a href="xmlsec-bn.html#XMLSECBNFROMDECSTRING">xmlSecBnFromDecString</a> (<font>xmlSecBnPtr</font> bn,
- const <font>xmlChar</font> *str);
-<font>xmlChar</font>* <a href="xmlsec-bn.html#XMLSECBNTODECSTRING">xmlSecBnToDecString</a> (<font>xmlSecBnPtr</font> bn);
-<font>int</font> <a href="xmlsec-bn.html#XMLSECBNMUL">xmlSecBnMul</a> (<font>xmlSecBnPtr</font> bn,
- <font>int</font> multiplier);
-<font>int</font> <a href="xmlsec-bn.html#XMLSECBNDIV">xmlSecBnDiv</a> (<font>xmlSecBnPtr</font> bn,
- <font>int</font> divider,
- <font>int</font> *mod);
-<font>int</font> <a href="xmlsec-bn.html#XMLSECBNADD">xmlSecBnAdd</a> (<font>xmlSecBnPtr</font> bn,
- <font>int</font> delta);
-<font>int</font> <a href="xmlsec-bn.html#XMLSECBNREVERSE">xmlSecBnReverse</a> (<font>xmlSecBnPtr</font> bn);
-<font>int</font> <a href="xmlsec-bn.html#XMLSECBNCOMPARE">xmlSecBnCompare</a> (<font>xmlSecBnPtr</font> bn,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize);
-<font>int</font> <a href="xmlsec-bn.html#XMLSECBNCOMPAREREVERSE">xmlSecBnCompareReverse</a> (<font>xmlSecBnPtr</font> bn,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize);
-<font>int</font> <a href="xmlsec-bn.html#XMLSECBNGETNODEVALUE">xmlSecBnGetNodeValue</a> (<font>xmlSecBnPtr</font> bn,
- <font>xmlNodePtr</font> cur,
- <a href="xmlsec-bn.html#XMLSECBNFORMAT">xmlSecBnFormat</a> format,
- <font>int</font> reverse);
-<font>int</font> <a href="xmlsec-bn.html#XMLSECBNSETNODEVALUE">xmlSecBnSetNodeValue</a> (<font>xmlSecBnPtr</font> bn,
- <font>xmlNodePtr</font> cur,
- <a href="xmlsec-bn.html#XMLSECBNFORMAT">xmlSecBnFormat</a> format,
- <font>int</font> reverse,
- <font>int</font> addLineBreaks);
-<font>int</font> <a href="xmlsec-bn.html#XMLSECBNBLOBSETNODEVALUE">xmlSecBnBlobSetNodeValue</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <font>xmlNodePtr</font> cur,
- <a href="xmlsec-bn.html#XMLSECBNFORMAT">xmlSecBnFormat</a> format,
- <font>int</font> reverse,
- <font>int</font> addLineBreaks);</pre>
-</div>
-<div class="REFSECT1">
-<a name="XMLSEC-BN.DESCRIPTION"></a><h2>Description</h2>
-<p>Big numbers support functions.</p>
-</div>
+<a name="AEN3864"></a><h2>Name</h2>bn -- Big numbers support functions.</div>
<div class="REFSECT1">
-<a name="XMLSEC-BN.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECBNFORMAT"></a><h3>enum xmlSecBnFormat</h3>
-<pre class="PROGRAMLISTING">typedef enum {
- xmlSecBnBase64,
- xmlSecBnHex,
- xmlSecBnDec
-} xmlSecBnFormat;</pre>
-<p>The big numbers formats.</p>
-<p></p>
+<a name="XMLSEC-BN.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN3869"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecBnPtr</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNCREATE">xmlSecBnCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNDESTROY">xmlSecBnDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECBNBASE64"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecBnBase64</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the base64 decoded binary blob.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNINITIALIZE">xmlSecBnInitialize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECBNHEX"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecBnHex</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the hex number.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNFINALIZE">xmlSecBnFinalize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECBNDEC"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecBnDec</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the decimal number.</p></td>
+<td>
+<a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="RETURNVALUE">xmlSecByte</span></a> *</td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNGETDATA">xmlSecBnGetData</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNSETDATA">xmlSecBnSetData</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNGETSIZE">xmlSecBnGetSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNZERO">xmlSecBnZero</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNFROMSTRING">xmlSecBnFromString</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNTOSTRING">xmlSecBnToString</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNFROMHEXSTRING">xmlSecBnFromHexString</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNTOHEXSTRING">xmlSecBnToHexString</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNFROMDECSTRING">xmlSecBnFromDecString</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNTODECSTRING">xmlSecBnToDecString</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNMUL">xmlSecBnMul</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNDIV">xmlSecBnDiv</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNADD">xmlSecBnAdd</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNREVERSE">xmlSecBnReverse</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNCOMPARE">xmlSecBnCompare</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNCOMPAREREVERSE">xmlSecBnCompareReverse</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNGETNODEVALUE">xmlSecBnGetNodeValue</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNSETNODEVALUE">xmlSecBnSetNodeValue</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-bn.html#XMLSECBNBLOBSETNODEVALUE">xmlSecBnBlobSetNodeValue</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
</div>
-<hr>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-BN.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN4035"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody><tr>
+<td>enum</td>
+<td><a href="xmlsec-bn.html#XMLSECBNFORMAT">xmlSecBnFormat</a></td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-BN.DESCRIPTION"></a><h2>Description</h2>
+<p>Big numbers support functions.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-BN.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECBNCREATE"></a><h3>xmlSecBnCreate ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecBnPtr</font> xmlSecBnCreate (<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecBnPtr</span></font>
+xmlSecBnCreate (<code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
<p>Creates a new BN object. Caller is responsible for destroying it
-by calling <code class="PARAMETER">xmlSecBnDestroy</code> function.</p>
+by calling <code class="PARAMETER">xmlSecBnDestroy</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN4059"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN4061"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>size</p></td>
+<td><p>the initial allocated BN size.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3163"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the initial allocated BN size.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3168"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the newly BN or a NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4070"></a><h4>Returns</h4>
+<p> the newly BN or a NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNDESTROY"></a><h3>xmlSecBnDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecBnDestroy (<font>xmlSecBnPtr</font> bn);</pre>
-<p>Destroys <code class="PARAMETER">bn</code> object created with <code class="PARAMETER">xmlSecBnCreate</code> function.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecBnDestroy (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>);</pre>
+<p>Destroys <code class="PARAMETER">bn</code>
+ object created with <code class="PARAMETER">xmlSecBnCreate</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN4086"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN4088"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN3185"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNINITIALIZE"></a><h3>xmlSecBnInitialize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBnInitialize (<font>xmlSecBnPtr</font> bn,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBnInitialize (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
<p>Initializes a BN object. Caller is responsible for destroying it
-by calling <code class="PARAMETER">xmlSecBnFinalize</code> function.</p>
+by calling <code class="PARAMETER">xmlSecBnFinalize</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN4112"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3202"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr>
+<a name="AEN4114"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3207"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the initial allocated BN size.</p></td>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3212"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>size</p></td>
+<td><p>the initial allocated BN size.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4129"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNFINALIZE"></a><h3>xmlSecBnFinalize ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecBnFinalize (<font>xmlSecBnPtr</font> bn);</pre>
-<p>Destroys <code class="PARAMETER">bn</code> object created with <code class="PARAMETER">xmlSecBnInitialize</code> function.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecBnFinalize (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>);</pre>
+<p>Destroys <code class="PARAMETER">bn</code>
+ object created with <code class="PARAMETER">xmlSecBnInitialize</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN4145"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN4147"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN3229"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNGETDATA"></a><h3>xmlSecBnGetData ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a>* xmlSecBnGetData (<font>xmlSecBnPtr</font> bn);</pre>
-<p>Gets pointer to the binary <code class="PARAMETER">bn</code> representation.</p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="RETURNVALUE">xmlSecByte</span></a> *
+xmlSecBnGetData (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>);</pre>
+<p>Gets pointer to the binary <code class="PARAMETER">bn</code>
+ representation.</p>
+<div class="REFSECT3">
+<a name="AEN4168"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN4170"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3245"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3250"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to binary BN data or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4179"></a><h4>Returns</h4>
+<p> pointer to binary BN data or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNSETDATA"></a><h3>xmlSecBnSetData ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBnSetData (<font>xmlSecBnPtr</font> bn,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
-<p>Sets the value of <code class="PARAMETER">bn</code> to <code class="PARAMETER">data</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBnSetData (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
+<p>Sets the value of <code class="PARAMETER">bn</code>
+ to <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4201"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3269"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr>
+<a name="AEN4203"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3274"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to new BN binary data.</p></td>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3279"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of new BN data.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to new BN binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3284"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>size</p></td>
+<td><p>the size of new BN data.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4224"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNGETSIZE"></a><h3>xmlSecBnGetSize ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecBnGetSize (<font>xmlSecBnPtr</font> bn);</pre>
-<p>Gets the size of binary data in <code class="PARAMETER">bn</code>.</p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a>
+xmlSecBnGetSize (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>);</pre>
+<p>Gets the size of binary data in <code class="PARAMETER">bn</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4239"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN4241"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3300"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3305"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of binary data.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4250"></a><h4>Returns</h4>
+<p> the size of binary data.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNZERO"></a><h3>xmlSecBnZero ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecBnZero (<font>xmlSecBnPtr</font> bn);</pre>
-<p>Sets the value of <code class="PARAMETER">bn</code> to zero.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecBnZero (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>);</pre>
+<p>Sets the value of <code class="PARAMETER">bn</code>
+ to zero.</p>
+<div class="REFSECT3">
+<a name="AEN4265"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN4267"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN3321"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNFROMSTRING"></a><h3>xmlSecBnFromString ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBnFromString (<font>xmlSecBnPtr</font> bn,
- const <font>xmlChar</font> *str,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> base);</pre>
-<p>Reads <code class="PARAMETER">bn</code> from string <code class="PARAMETER">str</code> assuming it has base <code class="PARAMETER">base</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBnFromString (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *str</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> base</code>);</pre>
+<p>Reads <code class="PARAMETER">bn</code>
+ from string <code class="PARAMETER">str</code>
+ assuming it has base <code class="PARAMETER">base</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4296"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN4298"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3341"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3346"><span style="white-space: nowrap"><code class="PARAMETER">str</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string with BN.</p></td>
+<td><p>str</p></td>
+<td><p>the string with BN.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3351"><span style="white-space: nowrap"><code class="PARAMETER">base</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the base for <code class="PARAMETER">str</code>.</p></td>
+<td><p>base</p></td>
+<td><p>the base for <code class="PARAMETER">str</code>
+.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3357"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4320"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNTOSTRING"></a><h3>xmlSecBnToString ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlChar</font>* xmlSecBnToString (<font>xmlSecBnPtr</font> bn,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> base);</pre>
-<p>Writes <code class="PARAMETER">bn</code> to string with base <code class="PARAMETER">base</code>. Caller is responsible for
-freeing returned string with <code class="PARAMETER">xmlFree</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecBnToString (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> base</code>);</pre>
+<p>Writes <code class="PARAMETER">bn</code>
+ to string with base <code class="PARAMETER">base</code>
+. Caller is responsible for
+freeing returned string with <code class="PARAMETER">xmlFree</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4340"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3376"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr>
+<a name="AEN4342"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3381"><span style="white-space: nowrap"><code class="PARAMETER">base</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the base for returned string.</p></td>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3386"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string represenataion if BN or a NULL if an error occurs.</p></td>
+<td><p>base</p></td>
+<td><p>the base for returned string.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4357"></a><h4>Returns</h4>
+<p> the string represenataion if BN or a NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNFROMHEXSTRING"></a><h3>xmlSecBnFromHexString ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBnFromHexString (<font>xmlSecBnPtr</font> bn,
- const <font>xmlChar</font> *str);</pre>
-<p>Reads <code class="PARAMETER">bn</code> from hex string <code class="PARAMETER">str</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBnFromHexString (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *str</code>);</pre>
+<p>Reads <code class="PARAMETER">bn</code>
+ from hex string <code class="PARAMETER">str</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4376"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3404"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr>
+<a name="AEN4378"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3409"><span style="white-space: nowrap"><code class="PARAMETER">str</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string with BN.</p></td>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3414"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>str</p></td>
+<td><p>the string with BN.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4393"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNTOHEXSTRING"></a><h3>xmlSecBnToHexString ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlChar</font>* xmlSecBnToHexString (<font>xmlSecBnPtr</font> bn);</pre>
-<p>Writes <code class="PARAMETER">bn</code> to hex string. Caller is responsible for
-freeing returned string with <code class="PARAMETER">xmlFree</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecBnToHexString (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>);</pre>
+<p>Writes <code class="PARAMETER">bn</code>
+ to hex string. Caller is responsible for
+freeing returned string with <code class="PARAMETER">xmlFree</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4409"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN4411"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3431"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3436"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string represenataion if BN or a NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4420"></a><h4>Returns</h4>
+<p> the string represenataion if BN or a NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNFROMDECSTRING"></a><h3>xmlSecBnFromDecString ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBnFromDecString (<font>xmlSecBnPtr</font> bn,
- const <font>xmlChar</font> *str);</pre>
-<p>Reads <code class="PARAMETER">bn</code> from decimal string <code class="PARAMETER">str</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBnFromDecString (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *str</code>);</pre>
+<p>Reads <code class="PARAMETER">bn</code>
+ from decimal string <code class="PARAMETER">str</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4439"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN4441"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3454"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3459"><span style="white-space: nowrap"><code class="PARAMETER">str</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string with BN.</p></td>
+<td><p>str</p></td>
+<td><p>the string with BN.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3464"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4456"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNTODECSTRING"></a><h3>xmlSecBnToDecString ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlChar</font>* xmlSecBnToDecString (<font>xmlSecBnPtr</font> bn);</pre>
-<p>Writes <code class="PARAMETER">bn</code> to decimal string. Caller is responsible for
-freeing returned string with <code class="PARAMETER">xmlFree</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecBnToDecString (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>);</pre>
+<p>Writes <code class="PARAMETER">bn</code>
+ to decimal string. Caller is responsible for
+freeing returned string with <code class="PARAMETER">xmlFree</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4472"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN4474"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3481"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3486"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string represenataion if BN or a NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4483"></a><h4>Returns</h4>
+<p> the string represenataion if BN or a NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNMUL"></a><h3>xmlSecBnMul ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBnMul (<font>xmlSecBnPtr</font> bn,
- <font>int</font> multiplier);</pre>
-<p>Multiplies <code class="PARAMETER">bn</code> with <code class="PARAMETER">multiplier</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBnMul (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> multiplier</code>);</pre>
+<p>Multiplies <code class="PARAMETER">bn</code>
+ with <code class="PARAMETER">multiplier</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4502"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3504"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr>
+<a name="AEN4504"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3509"><span style="white-space: nowrap"><code class="PARAMETER">multiplier</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the multiplier.</p></td>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3514"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>multiplier</p></td>
+<td><p>the multiplier.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4519"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNDIV"></a><h3>xmlSecBnDiv ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBnDiv (<font>xmlSecBnPtr</font> bn,
- <font>int</font> divider,
- <font>int</font> *mod);</pre>
-<p>Divides <code class="PARAMETER">bn</code> by <code class="PARAMETER">divider</code> and places modulus into <code class="PARAMETER">mod</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBnDiv (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> divider</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> *mod</code>);</pre>
+<p>Divides <code class="PARAMETER">bn</code>
+ by <code class="PARAMETER">divider</code>
+ and places modulus into <code class="PARAMETER">mod</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4542"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3534"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr>
+<a name="AEN4544"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3539"><span style="white-space: nowrap"><code class="PARAMETER">divider</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the divider</p></td>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3544"><span style="white-space: nowrap"><code class="PARAMETER">mod</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer for modulus result.</p></td>
+<td><p>divider</p></td>
+<td><p>the divider</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3549"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>mod</p></td>
+<td><p>the pointer for modulus result.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4565"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNADD"></a><h3>xmlSecBnAdd ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBnAdd (<font>xmlSecBnPtr</font> bn,
- <font>int</font> delta);</pre>
-<p>Adds <code class="PARAMETER">delta</code> to <code class="PARAMETER">bn</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBnAdd (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> delta</code>);</pre>
+<p>Adds <code class="PARAMETER">delta</code>
+ to <code class="PARAMETER">bn</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4584"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN4586"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3567"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3572"><span style="white-space: nowrap"><code class="PARAMETER">delta</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the delta.</p></td>
+<td><p>delta</p></td>
+<td><p>the delta.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3577"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4601"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNREVERSE"></a><h3>xmlSecBnReverse ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBnReverse (<font>xmlSecBnPtr</font> bn);</pre>
-<p>Reverses bytes order in <code class="PARAMETER">bn</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBnReverse (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>);</pre>
+<p>Reverses bytes order in <code class="PARAMETER">bn</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4616"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN4618"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3593"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3598"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4627"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNCOMPARE"></a><h3>xmlSecBnCompare ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBnCompare (<font>xmlSecBnPtr</font> bn,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize);</pre>
-<p>Compares the <code class="PARAMETER">bn</code> with <code class="PARAMETER">data</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBnCompare (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>);</pre>
+<p>Compares the <code class="PARAMETER">bn</code>
+ with <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4649"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN4651"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3617"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3622"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data to compare BN to.</p></td>
+<td><p>data</p></td>
+<td><p>the data to compare BN to.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3627"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <code class="PARAMETER">data</code> size.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the <code class="PARAMETER">data</code>
+size.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3633"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 if data is equal, negative value if <code class="PARAMETER">bn</code> is less or positive value if <code class="PARAMETER">bn</code>
-is greater than <code class="PARAMETER">data</code>.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4673"></a><h4>Returns</h4>
+<p> 0 if data is equal, negative value if <code class="PARAMETER">bn</code>
+is less or positive value if <code class="PARAMETER">bn</code>
+is greater than <code class="PARAMETER">data</code>
+.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNCOMPAREREVERSE"></a><h3>xmlSecBnCompareReverse ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBnCompareReverse (<font>xmlSecBnPtr</font> bn,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize);</pre>
-<p>Compares the <code class="PARAMETER">bn</code> with reverse <code class="PARAMETER">data</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBnCompareReverse (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>);</pre>
+<p>Compares the <code class="PARAMETER">bn</code>
+ with reverse <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4698"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN4700"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3655"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3660"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data to compare BN to.</p></td>
+<td><p>data</p></td>
+<td><p>the data to compare BN to.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3665"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <code class="PARAMETER">data</code> size.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the <code class="PARAMETER">data</code>
+size.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3671"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 if data is equal, negative value if <code class="PARAMETER">bn</code> is less or positive value if <code class="PARAMETER">bn</code>
-is greater than <code class="PARAMETER">data</code>.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4722"></a><h4>Returns</h4>
+<p> 0 if data is equal, negative value if <code class="PARAMETER">bn</code>
+is less or positive value if <code class="PARAMETER">bn</code>
+is greater than <code class="PARAMETER">data</code>
+.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNGETNODEVALUE"></a><h3>xmlSecBnGetNodeValue ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBnGetNodeValue (<font>xmlSecBnPtr</font> bn,
- <font>xmlNodePtr</font> cur,
- <a href="xmlsec-bn.html#XMLSECBNFORMAT">xmlSecBnFormat</a> format,
- <font>int</font> reverse);</pre>
-<p>Converts the node content from <code class="PARAMETER">format</code> to <code class="PARAMETER">bn</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBnGetNodeValue (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> cur</code>,
+ <code class="PARAMETER"><a href="xmlsec-bn.html#XMLSECBNFORMAT"><span class="TYPE">xmlSecBnFormat</span></a> format</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> reverse</code>);</pre>
+<p>Converts the node content from <code class="PARAMETER">format</code>
+ to <code class="PARAMETER">bn</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN4750"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3694"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr>
+<a name="AEN4752"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3699"><span style="white-space: nowrap"><code class="PARAMETER">cur</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the poitner to an XML node.</p></td>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3704"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the BN format.</p></td>
+<td><p>cur</p></td>
+<td><p>the poitner to an XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3709"><span style="white-space: nowrap"><code class="PARAMETER">reverse</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> if set then reverse read buffer after reading.</p></td>
+<td><p>format</p></td>
+<td><p>the BN format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3714"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success and a negative values if an error occurs.</p></td>
+<td><p>reverse</p></td>
+<td><p>if set then reverse read buffer after reading.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4779"></a><h4>Returns</h4>
+<p> 0 on success and a negative values if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNSETNODEVALUE"></a><h3>xmlSecBnSetNodeValue ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBnSetNodeValue (<font>xmlSecBnPtr</font> bn,
- <font>xmlNodePtr</font> cur,
- <a href="xmlsec-bn.html#XMLSECBNFORMAT">xmlSecBnFormat</a> format,
- <font>int</font> reverse,
- <font>int</font> addLineBreaks);</pre>
-<p>Converts the <code class="PARAMETER">bn</code> and sets it to node content.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBnSetNodeValue (<code class="PARAMETER"><font><span class="TYPE">xmlSecBnPtr</span></font> bn</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> cur</code>,
+ <code class="PARAMETER"><a href="xmlsec-bn.html#XMLSECBNFORMAT"><span class="TYPE">xmlSecBnFormat</span></a> format</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> reverse</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> addLineBreaks</code>);</pre>
+<p>Converts the <code class="PARAMETER">bn</code>
+ and sets it to node content.</p>
+<div class="REFSECT3">
+<a name="AEN4806"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3734"><span style="white-space: nowrap"><code class="PARAMETER">bn</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN.</p></td>
-</tr>
+<a name="AEN4808"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3739"><span style="white-space: nowrap"><code class="PARAMETER">cur</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the poitner to an XML node.</p></td>
+<td><p>bn</p></td>
+<td><p>the pointer to BN.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3744"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the BN format.</p></td>
+<td><p>cur</p></td>
+<td><p>the poitner to an XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3749"><span style="white-space: nowrap"><code class="PARAMETER">reverse</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag that indicates whether to reverse the buffer before writing.</p></td>
+<td><p>format</p></td>
+<td><p>the BN format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3754"><span style="white-space: nowrap"><code class="PARAMETER">addLineBreaks</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag; it is equal to 1 then linebreaks will be added before and after new buffer content.</p></td>
+<td><p>reverse</p></td>
+<td><p>the flag that indicates whether to reverse the buffer before writing.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3759"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success and a negative values if an error occurs.</p></td>
+<td><p>addLineBreaks</p></td>
+<td><p>the flag; it is equal to 1 then linebreaks will be added before and after new buffer content.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4841"></a><h4>Returns</h4>
+<p> 0 on success and a negative values if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBNBLOBSETNODEVALUE"></a><h3>xmlSecBnBlobSetNodeValue ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBnBlobSetNodeValue (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <font>xmlNodePtr</font> cur,
- <a href="xmlsec-bn.html#XMLSECBNFORMAT">xmlSecBnFormat</a> format,
- <font>int</font> reverse,
- <font>int</font> addLineBreaks);</pre>
-<p>Converts the <code class="PARAMETER">blob</code> and sets it to node content.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBnBlobSetNodeValue (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> cur</code>,
+ <code class="PARAMETER"><a href="xmlsec-bn.html#XMLSECBNFORMAT"><span class="TYPE">xmlSecBnFormat</span></a> format</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> reverse</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> addLineBreaks</code>);</pre>
+<p>Converts the <code class="PARAMETER">blob</code>
+ and sets it to node content.</p>
+<div class="REFSECT3">
+<a name="AEN4871"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN4873"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3780"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BN blob.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to BN blob.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3785"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of BN blob.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the size of BN blob.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3790"><span style="white-space: nowrap"><code class="PARAMETER">cur</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the poitner to an XML node.</p></td>
+<td><p>cur</p></td>
+<td><p>the poitner to an XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3795"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the BN format.</p></td>
+<td><p>format</p></td>
+<td><p>the BN format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3800"><span style="white-space: nowrap"><code class="PARAMETER">reverse</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag that indicates whether to reverse the buffer before writing.</p></td>
+<td><p>reverse</p></td>
+<td><p>the flag that indicates whether to reverse the buffer before writing.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3805"><span style="white-space: nowrap"><code class="PARAMETER">addLineBreaks</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> if the flag is equal to 1 then
- linebreaks will be added before and after
- new buffer content.</p></td>
+<td><p>addLineBreaks</p></td>
+<td><p>if the flag is equal to 1 then
+linebreaks will be added before and after
+new buffer content.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN4912"></a><h4>Returns</h4>
+<p> 0 on success and a negative values if an error occurs.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-BN.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECBNFORMAT"></a><h3>enum xmlSecBnFormat</h3>
+<p>The big numbers formats.</p>
+<div class="REFSECT3">
+<a name="AEN4922"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN4924"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3810"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success and a negative values if an error occurs.</p></td>
+<td><p>xmlSecBnBase64</p></td>
+<td><p>the base64 decoded binary blob.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+<tr>
+<td><p>xmlSecBnHex</p></td>
+<td><p>the hex number.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecBnDec</p></td>
+<td><p>the decimal number.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-buffer.html b/docs/api/xmlsec-buffer.html
index c53ab3e..c2425a3 100644
--- a/docs/api/xmlsec-buffer.html
+++ b/docs/api/xmlsec-buffer.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="bn" href="xmlsec-bn.html">
<link rel="NEXT" title="dl" href="xmlsec-dl.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,542 +101,941 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-bn.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-bn.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-dl.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-dl.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-BUFFER"></a>buffer</h1>
<div class="REFNAMEDIV">
-<a name="AEN3820"></a><h2>Name</h2>buffer -- Binary buffer implementation.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-BUFFER.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">enum <a href="xmlsec-buffer.html#XMLSECALLOCMODE">xmlSecAllocMode</a>;
-struct <a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBuffer</a>;
-<font>void</font> <a href="xmlsec-buffer.html#XMLSECBUFFERSETDEFAULTALLOCMODE">xmlSecBufferSetDefaultAllocMode</a> (<a href="xmlsec-buffer.html#XMLSECALLOCMODE">xmlSecAllocMode</a> defAllocMode,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> defInitialSize);
-<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> <a href="xmlsec-buffer.html#XMLSECBUFFERCREATE">xmlSecBufferCreate</a> (<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<font>void</font> <a href="xmlsec-buffer.html#XMLSECBUFFERDESTROY">xmlSecBufferDestroy</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);
-<font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERINITIALIZE">xmlSecBufferInitialize</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<font>void</font> <a href="xmlsec-buffer.html#XMLSECBUFFERFINALIZE">xmlSecBufferFinalize</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);
-<a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a>* <a href="xmlsec-buffer.html#XMLSECBUFFERGETDATA">xmlSecBufferGetData</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);
-<font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERSETDATA">xmlSecBufferSetData</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-buffer.html#XMLSECBUFFERGETSIZE">xmlSecBufferGetSize</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);
-<font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERSETSIZE">xmlSecBufferSetSize</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-buffer.html#XMLSECBUFFERGETMAXSIZE">xmlSecBufferGetMaxSize</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);
-<font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERSETMAXSIZE">xmlSecBufferSetMaxSize</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<font>void</font> <a href="xmlsec-buffer.html#XMLSECBUFFEREMPTY">xmlSecBufferEmpty</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);
-<font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERAPPEND">xmlSecBufferAppend</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERPREPEND">xmlSecBufferPrepend</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERREMOVEHEAD">xmlSecBufferRemoveHead</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERREMOVETAIL">xmlSecBufferRemoveTail</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERREADFILE">xmlSecBufferReadFile</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- const <font>char</font> *filename);
-<font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERBASE64NODECONTENTREAD">xmlSecBufferBase64NodeContentRead</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- <font>xmlNodePtr</font> node);
-<font>int</font> <a href="xmlsec-buffer.html#XMLSECBUFFERBASE64NODECONTENTWRITE">xmlSecBufferBase64NodeContentWrite</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- <font>xmlNodePtr</font> node,
- <font>int</font> columns);
-<font>xmlOutputBufferPtr</font> <a href="xmlsec-buffer.html#XMLSECBUFFERCREATEOUTPUTBUFFER">xmlSecBufferCreateOutputBuffer</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre>
-</div>
+<a name="AEN4950"></a><h2>Name</h2>buffer -- Binary buffer implementation.</div>
<div class="REFSECT1">
-<a name="XMLSEC-BUFFER.DESCRIPTION"></a><h2>Description</h2>
-<p>Binary buffer implementation.</p>
-</div>
-<div class="REFSECT1">
-<a name="XMLSEC-BUFFER.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECALLOCMODE"></a><h3>enum xmlSecAllocMode</h3>
-<pre class="PROGRAMLISTING">typedef enum {
- xmlSecAllocModeExact = 0,
- xmlSecAllocModeDouble
-} xmlSecAllocMode;</pre>
-<p>The memory allocation mode (used by <code class="PARAMETER">xmlSecBuffer</code> and <code class="PARAMETER">xmlSecList</code>).</p>
+<a name="XMLSEC-BUFFER.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN4955"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECALLOCMODEEXACT"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecAllocModeExact</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the memory allocation mode that minimizes total
- allocated memory size.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERSETDEFAULTALLOCMODE">xmlSecBufferSetDefaultAllocMode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECALLOCMODEDOUBLE"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecAllocModeDouble</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the memory allocation mode that tries to minimize
- the number of malloc calls.</p></td>
+<td><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="RETURNVALUE">xmlSecBufferPtr</span></a></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERCREATE">xmlSecBufferCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERDESTROY">xmlSecBufferDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERINITIALIZE">xmlSecBufferInitialize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECBUFFER"></a><h3>struct xmlSecBuffer</h3>
-<pre class="PROGRAMLISTING">struct xmlSecBuffer {
- xmlSecByte* data;
- xmlSecSize size;
- xmlSecSize maxSize;
- xmlSecAllocMode allocMode;
-};</pre>
-<p>Binary data buffer.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3937"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *<code class="STRUCTFIELD">data</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer data.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERFINALIZE">xmlSecBufferFinalize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3943"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">size</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the current data size.</p></td>
+<td>
+<a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="RETURNVALUE">xmlSecByte</span></a> *</td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERGETDATA">xmlSecBufferGetData</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3949"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">maxSize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the max data size (allocated buffer size).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERSETDATA">xmlSecBufferSetData</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3955"><span style="white-space: nowrap"><a href="xmlsec-buffer.html#XMLSECALLOCMODE">xmlSecAllocMode</a> <code class="STRUCTFIELD">allocMode</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the buffer memory allocation mode.</p></td>
+<td><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERGETSIZE">xmlSecBufferGetSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERSETSIZE">xmlSecBufferSetSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERGETMAXSIZE">xmlSecBufferGetMaxSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERSETMAXSIZE">xmlSecBufferSetMaxSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFEREMPTY">xmlSecBufferEmpty</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERAPPEND">xmlSecBufferAppend</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERPREPEND">xmlSecBufferPrepend</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERREMOVEHEAD">xmlSecBufferRemoveHead</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERREMOVETAIL">xmlSecBufferRemoveTail</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERREADFILE">xmlSecBufferReadFile</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERBASE64NODECONTENTREAD">xmlSecBufferBase64NodeContentRead</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERBASE64NODECONTENTWRITE">xmlSecBufferBase64NodeContentWrite</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlOutputBufferPtr</span></font></td>
+<td>
+<a href="xmlsec-buffer.html#XMLSECBUFFERCREATEOUTPUTBUFFER">xmlSecBufferCreateOutputBuffer</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
</div>
-<hr>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-BUFFER.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN5100"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>enum</td>
+<td><a href="xmlsec-buffer.html#XMLSECALLOCMODE">xmlSecAllocMode</a></td>
+</tr>
+<tr>
+<td>struct</td>
+<td><a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBuffer</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-BUFFER.DESCRIPTION"></a><h2>Description</h2>
+<p>Binary buffer implementation.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-BUFFER.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECBUFFERSETDEFAULTALLOCMODE"></a><h3>xmlSecBufferSetDefaultAllocMode ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecBufferSetDefaultAllocMode (<a href="xmlsec-buffer.html#XMLSECALLOCMODE">xmlSecAllocMode</a> defAllocMode,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> defInitialSize);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecBufferSetDefaultAllocMode (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECALLOCMODE"><span class="TYPE">xmlSecAllocMode</span></a> defAllocMode</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> defInitialSize</code>);</pre>
<p>Sets new global default allocation mode and minimal intial size.</p>
+<div class="REFSECT3">
+<a name="AEN5130"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN5132"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3972"><span style="white-space: nowrap"><code class="PARAMETER">defAllocMode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new default buffer allocation mode.</p></td>
+<td><p>defAllocMode</p></td>
+<td><p>the new default buffer allocation mode.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3977"><span style="white-space: nowrap"><code class="PARAMETER">defInitialSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new default buffer minimal intial size.</p></td>
+<td><p>defInitialSize</p></td>
+<td><p>the new default buffer minimal intial size.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERCREATE"></a><h3>xmlSecBufferCreate ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> xmlSecBufferCreate (<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="RETURNVALUE">xmlSecBufferPtr</span></a>
+xmlSecBufferCreate (<code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
<p>Allocates and initalizes new memory buffer with given size.
Caller is responsible for calling <a href="xmlsec-buffer.html#XMLSECBUFFERDESTROY"><span class="TYPE">xmlSecBufferDestroy</span></a> function
to free the buffer.</p>
+<div class="REFSECT3">
+<a name="AEN5160"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN5162"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>size</p></td>
+<td><p>the intial size.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3994"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the intial size.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN3999"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly allocated buffer or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5171"></a><h4>Returns</h4>
+<p> pointer to newly allocated buffer or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERDESTROY"></a><h3>xmlSecBufferDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecBufferDestroy (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecBufferDestroy (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>);</pre>
<p>Desrtoys buffer object created with <a href="xmlsec-buffer.html#XMLSECBUFFERCREATE"><span class="TYPE">xmlSecBufferCreate</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN5187"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN5189"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN4016"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERINITIALIZE"></a><h3>xmlSecBufferInitialize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferInitialize (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
-<p>Initializes buffer object <code class="PARAMETER">buf</code>. Caller is responsible for calling
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBufferInitialize (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
+<p>Initializes buffer object <code class="PARAMETER">buf</code>
+. Caller is responsible for calling
<a href="xmlsec-buffer.html#XMLSECBUFFERFINALIZE"><span class="TYPE">xmlSecBufferFinalize</span></a> function to free allocated resources.</p>
+<div class="REFSECT3">
+<a name="AEN5215"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4035"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
-</tr>
+<a name="AEN5217"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4040"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the initial buffer size.</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4045"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>size</p></td>
+<td><p>the initial buffer size.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5232"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERFINALIZE"></a><h3>xmlSecBufferFinalize ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecBufferFinalize (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecBufferFinalize (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>);</pre>
<p>Frees allocated resource for a buffer intialized with <a href="xmlsec-buffer.html#XMLSECBUFFERINITIALIZE"><span class="TYPE">xmlSecBufferInitialize</span></a>
function.</p>
+<div class="REFSECT3">
+<a name="AEN5248"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN5250"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN4062"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERGETDATA"></a><h3>xmlSecBufferGetData ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a>* xmlSecBufferGetData (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="RETURNVALUE">xmlSecByte</span></a> *
+xmlSecBufferGetData (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>);</pre>
<p>Gets pointer to buffer's data.</p>
+<div class="REFSECT3">
+<a name="AEN5270"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN5272"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4077"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4082"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to buffer's data.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5281"></a><h4>Returns</h4>
+<p> pointer to buffer's data.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERSETDATA"></a><h3>xmlSecBufferSetData ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferSetData (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
-<p>Sets the value of the buffer to <code class="PARAMETER">data</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBufferSetData (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
+<p>Sets the value of the buffer to <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN5302"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4100"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
-</tr>
+<a name="AEN5304"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4105"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data.</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4110"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data size.</p></td>
+<td><p>data</p></td>
+<td><p>the data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4115"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>size</p></td>
+<td><p>the data size.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5325"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERGETSIZE"></a><h3>xmlSecBufferGetSize ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecBufferGetSize (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a>
+xmlSecBufferGetSize (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>);</pre>
<p>Gets the current buffer data size.</p>
+<div class="REFSECT3">
+<a name="AEN5339"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN5341"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4130"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4135"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the current data size.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5350"></a><h4>Returns</h4>
+<p> the current data size.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERSETSIZE"></a><h3>xmlSecBufferSetSize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferSetSize (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBufferSetSize (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
<p>Sets new buffer data size. If necessary, buffer grows to
-have at least <code class="PARAMETER">size</code> bytes.</p>
+have at least <code class="PARAMETER">size</code>
+ bytes.</p>
+<div class="REFSECT3">
+<a name="AEN5368"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN5370"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4152"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4157"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new data size.</p></td>
+<td><p>size</p></td>
+<td><p>the new data size.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4162"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5385"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERGETMAXSIZE"></a><h3>xmlSecBufferGetMaxSize ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecBufferGetMaxSize (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a>
+xmlSecBufferGetMaxSize (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>);</pre>
<p>Gets the maximum (allocated) buffer size.</p>
+<div class="REFSECT3">
+<a name="AEN5399"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN5401"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4177"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4182"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the maximum (allocated) buffer size.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5410"></a><h4>Returns</h4>
+<p> the maximum (allocated) buffer size.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERSETMAXSIZE"></a><h3>xmlSecBufferSetMaxSize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferSetMaxSize (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBufferSetMaxSize (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
<p>Sets new buffer maximum size. If necessary, buffer grows to
-have at least <code class="PARAMETER">size</code> bytes.</p>
-<p></p>
+have at least <code class="PARAMETER">size</code>
+ bytes.</p>
+<div class="REFSECT3">
+<a name="AEN5428"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4199"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
-</tr>
+<a name="AEN5430"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4204"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new maximum size.</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4209"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>size</p></td>
+<td><p>the new maximum size.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5445"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFEREMPTY"></a><h3>xmlSecBufferEmpty ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecBufferEmpty (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecBufferEmpty (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>);</pre>
<p>Empties the buffer.</p>
+<div class="REFSECT3">
+<a name="AEN5459"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN5461"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN4224"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERAPPEND"></a><h3>xmlSecBufferAppend ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferAppend (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
-<p>Appends the <code class="PARAMETER">data</code> after the current data stored in the buffer.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBufferAppend (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
+<p>Appends the <code class="PARAMETER">data</code>
+ after the current data stored in the buffer.</p>
+<div class="REFSECT3">
+<a name="AEN5488"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN5490"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4242"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4247"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data.</p></td>
+<td><p>data</p></td>
+<td><p>the data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4252"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data size.</p></td>
+<td><p>size</p></td>
+<td><p>the data size.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4257"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5511"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERPREPEND"></a><h3>xmlSecBufferPrepend ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferPrepend (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
-<p>Prepends the <code class="PARAMETER">data</code> before the current data stored in the buffer.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBufferPrepend (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
+<p>Prepends the <code class="PARAMETER">data</code>
+ before the current data stored in the buffer.</p>
+<div class="REFSECT3">
+<a name="AEN5532"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN5534"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4275"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4280"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data.</p></td>
+<td><p>data</p></td>
+<td><p>the data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4285"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data size.</p></td>
+<td><p>size</p></td>
+<td><p>the data size.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4290"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5555"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERREMOVEHEAD"></a><h3>xmlSecBufferRemoveHead ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferRemoveHead (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
-<p>Removes <code class="PARAMETER">size</code> bytes from the beginning of the current buffer.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBufferRemoveHead (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
+<p>Removes <code class="PARAMETER">size</code>
+ bytes from the beginning of the current buffer.</p>
+<div class="REFSECT3">
+<a name="AEN5573"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4307"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
-</tr>
+<a name="AEN5575"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4312"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the number of bytes to be removed.</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4317"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>size</p></td>
+<td><p>the number of bytes to be removed.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5590"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERREMOVETAIL"></a><h3>xmlSecBufferRemoveTail ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferRemoveTail (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
-<p>Removes <code class="PARAMETER">size</code> bytes from the end of current buffer.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBufferRemoveTail (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
+<p>Removes <code class="PARAMETER">size</code>
+ bytes from the end of current buffer.</p>
+<div class="REFSECT3">
+<a name="AEN5608"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4334"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
-</tr>
+<a name="AEN5610"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4339"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the number of bytes to be removed.</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4344"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>size</p></td>
+<td><p>the number of bytes to be removed.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5625"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERREADFILE"></a><h3>xmlSecBufferReadFile ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferReadFile (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- const <font>char</font> *filename);</pre>
-<p>Reads the content of the file <code class="PARAMETER">filename</code> in the buffer.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBufferReadFile (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>);</pre>
+<p>Reads the content of the file <code class="PARAMETER">filename</code>
+ in the buffer.</p>
+<div class="REFSECT3">
+<a name="AEN5643"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4361"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
-</tr>
+<a name="AEN5645"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4366"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the filename.</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4371"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>filename</p></td>
+<td><p>the filename.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5660"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERBASE64NODECONTENTREAD"></a><h3>xmlSecBufferBase64NodeContentRead ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferBase64NodeContentRead (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- <font>xmlNodePtr</font> node);</pre>
-<p>Reads the content of the <code class="PARAMETER">node</code>, base64 decodes it and stores the
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBufferBase64NodeContentRead (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>);</pre>
+<p>Reads the content of the <code class="PARAMETER">node</code>
+, base64 decodes it and stores the
result in the buffer.</p>
+<div class="REFSECT3">
+<a name="AEN5678"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN5680"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4388"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4393"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node.</p></td>
+<td><p>node</p></td>
+<td><p>the pointer to node.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4398"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5695"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERBASE64NODECONTENTWRITE"></a><h3>xmlSecBufferBase64NodeContentWrite ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecBufferBase64NodeContentWrite (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf,
- <font>xmlNodePtr</font> node,
- <font>int</font> columns);</pre>
-<p>Sets the content of the <code class="PARAMETER">node</code> to the base64 encoded buffer data.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecBufferBase64NodeContentWrite (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> columns</code>);</pre>
+<p>Sets the content of the <code class="PARAMETER">node</code>
+ to the base64 encoded buffer data.</p>
+<div class="REFSECT3">
+<a name="AEN5716"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN5718"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4416"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer object.</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4421"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to a node.</p></td>
+<td><p>node</p></td>
+<td><p>the pointer to a node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4426"><span style="white-space: nowrap"><code class="PARAMETER">columns</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the max line size fro base64 encoded data.</p></td>
+<td><p>columns</p></td>
+<td><p>the max line size fro base64 encoded data.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4431"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5739"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECBUFFERCREATEOUTPUTBUFFER"></a><h3>xmlSecBufferCreateOutputBuffer ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlOutputBufferPtr</font> xmlSecBufferCreateOutputBuffer (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buf);</pre>
-<p>Creates new LibXML output buffer to store data in the <code class="PARAMETER">buf</code>. Caller is
-responsible for destroying <code class="PARAMETER">buf</code> when processing is done.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlOutputBufferPtr</span></font>
+xmlSecBufferCreateOutputBuffer (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buf</code>);</pre>
+<p>Creates new LibXML output buffer to store data in the <code class="PARAMETER">buf</code>
+. Caller is
+responsible for destroying <code class="PARAMETER">buf</code>
+ when processing is done.</p>
+<div class="REFSECT3">
+<a name="AEN5755"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN5757"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>buf</p></td>
+<td><p>the pointer to buffer.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5766"></a><h4>Returns</h4>
+<p> pointer to newly allocated output buffer or NULL if an error
+occurs.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-BUFFER.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECALLOCMODE"></a><h3>enum xmlSecAllocMode</h3>
+<p>The memory allocation mode (used by <code class="PARAMETER">xmlSecBuffer</code>
+ and <code class="PARAMETER">xmlSecList</code>
+).</p>
+<div class="REFSECT3">
+<a name="AEN5778"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN5780"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>xmlSecAllocModeExact</p></td>
+<td><p>the memory allocation mode that minimizes total
+ allocated memory size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecAllocModeDouble</p></td>
+<td><p>the memory allocation mode that tries to minimize
+ the number of malloc calls.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECBUFFER"></a><h3>struct xmlSecBuffer</h3>
+<pre class="PROGRAMLISTING">struct xmlSecBuffer {
+ xmlSecByte* data;
+ xmlSecSize size;
+ xmlSecSize maxSize;
+ xmlSecAllocMode allocMode;
+};</pre>
+<p>Binary data buffer.</p>
+<div class="REFSECT3">
+<a name="AEN5801"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN5803"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4448"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to buffer.</p></td>
+<td><p><a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *<code class="STRUCTFIELD">data</code>;</p></td>
+<td><p>the pointer to buffer data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4453"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly allocated output buffer or NULL if an error
-occurs.</p></td>
+<td><p><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> <code class="STRUCTFIELD">size</code>;</p></td>
+<td><p>the current data size.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+<tr>
+<td><p><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> <code class="STRUCTFIELD">maxSize</code>;</p></td>
+<td><p>the max data size (allocated buffer size).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-buffer.html#XMLSECALLOCMODE"><span class="TYPE">xmlSecAllocMode</span></a> <code class="STRUCTFIELD">allocMode</code>;</p></td>
+<td><p>the buffer memory allocation mode.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-custom-keys-manager.html b/docs/api/xmlsec-custom-keys-manager.html
index 6cd2eb0..ce7c373 100644
--- a/docs/api/xmlsec-custom-keys-manager.html
+++ b/docs/api/xmlsec-custom-keys-manager.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Examples." href="xmlsec-examples.html">
<link rel="PREVIOUS" title="Decrypting data with keys manager." href="xmlsec-decrypt-with-keys-mngr.html">
<link rel="NEXT" title="APPENDIX A. XML Security Library Signature Klasses." href="xmlsec-signature-klasses.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-decrypt-with-keys-mngr.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-decrypt-with-keys-mngr.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-signature-klasses.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-signature-klasses.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-CUSTOM-KEYS-MANAGER">Writing a custom keys manager.</a></h1>
@@ -92,11 +114,11 @@
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN814"></a><pre class="PROGRAMLISTING">/**
+<a name="AEN832"></a><pre class="PROGRAMLISTING">/**
* XML Security Library example: Decrypting an encrypted file using a custom keys manager.
*
* Decrypts encrypted XML file using a custom files based keys manager.
- * We assume that key's name in <dsig:KeyName/> element is just
+ * We assume that key's name in <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName" target="_top"><dsig:KeyName/></a> element is just
* key's file name in the current folder.
*
* Usage:
@@ -109,7 +131,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -188,7 +210,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
@@ -369,7 +391,7 @@ create_files_keys_mngr(void) {
/****************************************************************************
*
* Files Keys Store: we assume that key's name (content of the
- * <dsig:KeyName/> element is a name of the file with a key (in the
+ * <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName" target="_top"><dsig:KeyName/></a> element is a name of the file with a key (in the
* current folder).
* Attention: this probably not a good solution for high traffic systems.
*
@@ -407,7 +429,7 @@ files_keys_store_get_klass(void) {
* files_keys_store_find_key:
* @store: the pointer to simple keys store.
* @name: the desired key name.
- * @keyInfoCtx: the pointer to <dsig:KeyInfo/> node processing context.
+ * @keyInfoCtx: the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.
*
* Lookups key in the @store. The caller is responsible for destroying
* returned key with #xmlSecKeyDestroy function.
diff --git a/docs/api/xmlsec-decrypt-with-keys-mngr.html b/docs/api/xmlsec-decrypt-with-keys-mngr.html
index 5dc1106..b7b16ff 100644
--- a/docs/api/xmlsec-decrypt-with-keys-mngr.html
+++ b/docs/api/xmlsec-decrypt-with-keys-mngr.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Examples." href="xmlsec-examples.html">
<link rel="PREVIOUS" title="Decrypting data with a single key." href="xmlsec-decrypt-with-signle-key.html">
<link rel="NEXT" title="Writing a custom keys manager." href="xmlsec-custom-keys-manager.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-decrypt-with-signle-key.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-decrypt-with-signle-key.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-custom-keys-manager.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-custom-keys-manager.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-DECRYPT-WITH-KEYS-MNGR">Decrypting data with keys manager.</a></h1>
@@ -92,7 +114,7 @@
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN807"></a><pre class="PROGRAMLISTING">/**
+<a name="AEN825"></a><pre class="PROGRAMLISTING">/**
* XML Security Library example: Decrypting an encrypted file using keys manager.
*
* Decrypts encrypted XML file using keys manager and a list of
@@ -108,7 +130,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -186,7 +208,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/docs/api/xmlsec-decrypt-with-signle-key.html b/docs/api/xmlsec-decrypt-with-signle-key.html
index 710006a..d98f905 100644
--- a/docs/api/xmlsec-decrypt-with-signle-key.html
+++ b/docs/api/xmlsec-decrypt-with-signle-key.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Examples." href="xmlsec-examples.html">
<link rel="PREVIOUS" title="Encrypting data with a session key." href="xmlsec-encrypt-with-session-key.html">
<link rel="NEXT" title="Decrypting data with keys manager." href="xmlsec-decrypt-with-keys-mngr.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-encrypt-with-session-key.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-encrypt-with-session-key.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-decrypt-with-keys-mngr.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-decrypt-with-keys-mngr.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-DECRYPT-WITH-SIGNLE-KEY">Decrypting data with a single key.</a></h1>
@@ -92,7 +114,7 @@
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN800"></a><pre class="PROGRAMLISTING">/**
+<a name="AEN818"></a><pre class="PROGRAMLISTING">/**
* XML Security Library example: Decrypting an encrypted file using a single key.
*
* Decrypts encrypted XML file using a single DES key from a binary file
@@ -107,7 +129,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -183,7 +205,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/docs/api/xmlsec-dl.html b/docs/api/xmlsec-dl.html
index 0e6ac4e..43af7b1 100644
--- a/docs/api/xmlsec-dl.html
+++ b/docs/api/xmlsec-dl.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="buffer" href="xmlsec-buffer.html">
<link rel="NEXT" title="errors" href="xmlsec-errors.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,171 +101,271 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-buffer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-buffer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-errors.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-errors.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-DL"></a>dl</h1>
<div class="REFNAMEDIV">
-<a name="AEN4463"></a><h2>Name</h2>dl -- Dynamic crypto-engine library loading support.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-DL.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>int</font> <a href="xmlsec-dl.html#XMLSECCRYPTODLFUNCTIONSREGISTERKEYDATAANDTRANSFORMS">xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms</a>
- (<font>xmlSecCryptoDLFunctionsPtr</font> functions);
-<font>int</font> <a href="xmlsec-dl.html#XMLSECCRYPTODLINIT">xmlSecCryptoDLInit</a> (void);
-<font>int</font> <a href="xmlsec-dl.html#XMLSECCRYPTODLSHUTDOWN">xmlSecCryptoDLShutdown</a> (void);
-<font>int</font> <a href="xmlsec-dl.html#XMLSECCRYPTODLLOADLIBRARY">xmlSecCryptoDLLoadLibrary</a> (const <font>xmlChar</font> *crypto);
-<font>xmlSecCryptoDLFunctionsPtr</font> <a href="xmlsec-dl.html#XMLSECCRYPTODLGETLIBRARYFUNCTIONS">xmlSecCryptoDLGetLibraryFunctions</a>
- (const <font>xmlChar</font> *crypto);
-<font>int</font> <a href="xmlsec-dl.html#XMLSECCRYPTODLUNLOADLIBRARY">xmlSecCryptoDLUnloadLibrary</a> (const <font>xmlChar</font> *crypto);
-<font>int</font> <a href="xmlsec-dl.html#XMLSECCRYPTODLSETFUNCTIONS">xmlSecCryptoDLSetFunctions</a> (<font>xmlSecCryptoDLFunctionsPtr</font> functions);
-<font>xmlSecCryptoDLFunctionsPtr</font> <a href="xmlsec-dl.html#XMLSECCRYPTODLGETFUNCTIONS">xmlSecCryptoDLGetFunctions</a> (void);</pre>
+<a name="AEN5847"></a><h2>Name</h2>dl -- Dynamic crypto-engine library loading support.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-DL.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN5852"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-dl.html#XMLSECCRYPTODLFUNCTIONSREGISTERKEYDATAANDTRANSFORMS">xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-dl.html#XMLSECCRYPTODLINIT">xmlSecCryptoDLInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-dl.html#XMLSECCRYPTODLSHUTDOWN">xmlSecCryptoDLShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-dl.html#XMLSECCRYPTODLLOADLIBRARY">xmlSecCryptoDLLoadLibrary</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecCryptoDLFunctionsPtr</span></font></td>
+<td>
+<a href="xmlsec-dl.html#XMLSECCRYPTODLGETLIBRARYFUNCTIONS">xmlSecCryptoDLGetLibraryFunctions</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-dl.html#XMLSECCRYPTODLUNLOADLIBRARY">xmlSecCryptoDLUnloadLibrary</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-dl.html#XMLSECCRYPTODLSETFUNCTIONS">xmlSecCryptoDLSetFunctions</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecCryptoDLFunctionsPtr</span></font></td>
+<td>
+<a href="xmlsec-dl.html#XMLSECCRYPTODLGETFUNCTIONS">xmlSecCryptoDLGetFunctions</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-DL.DESCRIPTION"></a><h2>Description</h2>
<p>Dynamic crypto-engine library loading support.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-DL.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-DL.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECCRYPTODLFUNCTIONSREGISTERKEYDATAANDTRANSFORMS"></a><h3>xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms
- (<font>xmlSecCryptoDLFunctionsPtr</font> functions);</pre>
-<p>Registers the key data and transforms klasses from <code class="PARAMETER">functions</code> table in xmlsec.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms
+ (<code class="PARAMETER"><font><span class="TYPE">xmlSecCryptoDLFunctionsPtr</span></font> functions</code>);</pre>
+<p>Registers the key data and transforms klasses from <code class="PARAMETER">functions</code>
+ table in xmlsec.</p>
+<div class="REFSECT3">
+<a name="AEN5928"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN5930"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>functions</p></td>
+<td><p>the functions table.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4506"><span style="white-space: nowrap"><code class="PARAMETER">functions</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the functions table.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4511"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5939"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECCRYPTODLINIT"></a><h3>xmlSecCryptoDLInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoDLInit (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoDLInit (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Initializes dynamic loading engine. This is an internal function
and should not be called by application directly.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN4525"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN5952"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECCRYPTODLSHUTDOWN"></a><h3>xmlSecCryptoDLShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoDLShutdown (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoDLShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Shutdowns dynamic loading engine. This is an internal function
and should not be called by application directly.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN4539"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN5965"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECCRYPTODLLOADLIBRARY"></a><h3>xmlSecCryptoDLLoadLibrary ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoDLLoadLibrary (const <font>xmlChar</font> *crypto);</pre>
-<p>Loads the xmlsec-<crypto> library. This function is NOT thread safe,
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoDLLoadLibrary (<code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *crypto</code>);</pre>
+<p>Loads the xmlsec-$crypto library. This function is NOT thread safe,
application MUST NOT call <a href="xmlsec-dl.html#XMLSECCRYPTODLLOADLIBRARY"><span class="TYPE">xmlSecCryptoDLLoadLibrary</span></a>, <a href="xmlsec-dl.html#XMLSECCRYPTODLGETLIBRARYFUNCTIONS"><span class="TYPE">xmlSecCryptoDLGetLibraryFunctions</span></a>,
and <a href="xmlsec-dl.html#XMLSECCRYPTODLUNLOADLIBRARY"><span class="TYPE">xmlSecCryptoDLUnloadLibrary</span></a> functions from multiple threads.</p>
+<div class="REFSECT3">
+<a name="AEN5985"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN5987"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>crypto</p></td>
+<td><p>the desired crypto library name ("openssl", "nss", ...). If NULL
+then the default crypto engine will be used.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4560"><span style="white-space: nowrap"><code class="PARAMETER">crypto</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired crypto library name ("openssl", "nss", ...).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4565"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN5996"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECCRYPTODLGETLIBRARYFUNCTIONS"></a><h3>xmlSecCryptoDLGetLibraryFunctions ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecCryptoDLFunctionsPtr</font> xmlSecCryptoDLGetLibraryFunctions
- (const <font>xmlChar</font> *crypto);</pre>
-<p>Loads the xmlsec-<crypto> library and gets global crypto functions/transforms/keys data/keys store
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecCryptoDLFunctionsPtr</span></font>
+xmlSecCryptoDLGetLibraryFunctions (<code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *crypto</code>);</pre>
+<p>Loads the xmlsec-$crypto library and gets global crypto functions/transforms/keys data/keys store
table. This function is NOT thread safe, application MUST NOT call <a href="xmlsec-dl.html#XMLSECCRYPTODLLOADLIBRARY"><span class="TYPE">xmlSecCryptoDLLoadLibrary</span></a>,
<a href="xmlsec-dl.html#XMLSECCRYPTODLGETLIBRARYFUNCTIONS"><span class="TYPE">xmlSecCryptoDLGetLibraryFunctions</span></a>, and <a href="xmlsec-dl.html#XMLSECCRYPTODLUNLOADLIBRARY"><span class="TYPE">xmlSecCryptoDLUnloadLibrary</span></a> functions from multiple threads.</p>
+<div class="REFSECT3">
+<a name="AEN6016"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN6018"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>crypto</p></td>
+<td><p>the desired crypto library name ("openssl", "nss", ...).</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4586"><span style="white-space: nowrap"><code class="PARAMETER">crypto</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired crypto library name ("openssl", "nss", ...).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4591"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the table or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN6027"></a><h4>Returns</h4>
+<p> the table or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECCRYPTODLUNLOADLIBRARY"></a><h3>xmlSecCryptoDLUnloadLibrary ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoDLUnloadLibrary (const <font>xmlChar</font> *crypto);</pre>
-<p>Unloads the xmlsec-<crypto> library. All pointers to this library
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoDLUnloadLibrary (<code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *crypto</code>);</pre>
+<p>Unloads the xmlsec-$crypto library. All pointers to this library
functions tables became invalid. This function is NOT thread safe,
application MUST NOT call <a href="xmlsec-dl.html#XMLSECCRYPTODLLOADLIBRARY"><span class="TYPE">xmlSecCryptoDLLoadLibrary</span></a>, <a href="xmlsec-dl.html#XMLSECCRYPTODLGETLIBRARYFUNCTIONS"><span class="TYPE">xmlSecCryptoDLGetLibraryFunctions</span></a>,
and <a href="xmlsec-dl.html#XMLSECCRYPTODLUNLOADLIBRARY"><span class="TYPE">xmlSecCryptoDLUnloadLibrary</span></a> functions from multiple threads.</p>
+<div class="REFSECT3">
+<a name="AEN6047"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN6049"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>crypto</p></td>
+<td><p>the desired crypto library name ("openssl", "nss", ...).</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4612"><span style="white-space: nowrap"><code class="PARAMETER">crypto</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired crypto library name ("openssl", "nss", ...).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4617"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN6058"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECCRYPTODLSETFUNCTIONS"></a><h3>xmlSecCryptoDLSetFunctions ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCryptoDLSetFunctions (<font>xmlSecCryptoDLFunctionsPtr</font> functions);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCryptoDLSetFunctions (<code class="PARAMETER"><font><span class="TYPE">xmlSecCryptoDLFunctionsPtr</span></font> functions</code>);</pre>
<p>Sets global crypto functions/transforms/keys data/keys store table.</p>
+<div class="REFSECT3">
+<a name="AEN6072"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN6074"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>functions</p></td>
+<td><p>the new table</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4632"><span style="white-space: nowrap"><code class="PARAMETER">functions</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new table</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN4637"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN6083"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECCRYPTODLGETFUNCTIONS"></a><h3>xmlSecCryptoDLGetFunctions ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecCryptoDLFunctionsPtr</font> xmlSecCryptoDLGetFunctions (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecCryptoDLFunctionsPtr</span></font>
+xmlSecCryptoDLGetFunctions (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Gets global crypto functions/transforms/keys data/keys store table.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN4651"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the table.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN6096"></a><h4>Returns</h4>
+<p> the table.</p>
+</div>
+</div>
</div>
+<div class="REFSECT1">
+<a name="XMLSEC-DL.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<p></p>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-buffer.html"><b><<< buffer</b></a></td>
diff --git a/docs/api/xmlsec-encrypt-dynamic-template.html b/docs/api/xmlsec-encrypt-dynamic-template.html
index 9195df9..68ad9fb 100644
--- a/docs/api/xmlsec-encrypt-dynamic-template.html
+++ b/docs/api/xmlsec-encrypt-dynamic-template.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Examples." href="xmlsec-examples.html">
<link rel="PREVIOUS" title="Encrypting data with a template file." href="xmlsec-encrypt-template-file.html">
<link rel="NEXT" title="Encrypting data with a session key." href="xmlsec-encrypt-with-session-key.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-encrypt-template-file.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-encrypt-template-file.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-encrypt-with-session-key.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-encrypt-with-session-key.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-ENCRYPT-DYNAMIC-TEMPLATE">Encrypting data with a dynamicaly created template.</a></h1>
@@ -92,7 +114,7 @@
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN766"></a><pre class="PROGRAMLISTING">/**
+<a name="AEN774"></a><pre class="PROGRAMLISTING">/**
* XML Security Library example: Encrypting XML file with a dynamicaly created template.
*
* Encrypts XML file using a dynamicaly created template file and a DES key
@@ -110,7 +132,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -186,7 +208,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
@@ -266,13 +288,13 @@ encrypt_file(const char* xml_file, const char* key_file) {
goto done;
}
- /* we want to put encrypted data in the <enc:CipherValue/> node */
+ /* we want to put encrypted data in the <a href="http://www.w3.org/TR/xmlenc-core/#sec-CipherValue" target="_top"><enc:CipherValue/></a> node */
if(xmlSecTmplEncDataEnsureCipherValue(encDataNode) == NULL) {
fprintf(stderr, "Error: failed to add CipherValue node\n");
goto done;
}
- /* add <dsig:KeyInfo/> and <dsig:KeyName/> nodes to put key name in the signed document */
+ /* add <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> and <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName" target="_top"><dsig:KeyName/></a> nodes to put key name in the signed document */
keyInfoNode = xmlSecTmplEncDataEnsureKeyInfo(encDataNode, NULL);
if(keyInfoNode == NULL) {
fprintf(stderr, "Error: failed to add key info\n");
@@ -343,7 +365,7 @@ done:
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN771"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
+<a name="AEN782"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
<!--
XML Security Library example: Original XML doc file before encryption (encrypt2 example).
-->
@@ -360,7 +382,7 @@ XML Security Library example: Original XML doc file before encryption (encrypt2
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN776"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
+<a name="AEN787"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
<!--
XML Security Library example: Encrypted XML file (encrypt2 example).
-->
diff --git a/docs/api/xmlsec-encrypt-template-file.html b/docs/api/xmlsec-encrypt-template-file.html
index 580a56b..4e1e46a 100644
--- a/docs/api/xmlsec-encrypt-template-file.html
+++ b/docs/api/xmlsec-encrypt-template-file.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Examples." href="xmlsec-examples.html">
<link rel="PREVIOUS" title="Verifying a signature with additional restrictions." href="xmlsec-verify-with-restrictions.html">
<link rel="NEXT" title="Encrypting data with a dynamicaly created template." href="xmlsec-encrypt-dynamic-template.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-verify-with-restrictions.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-verify-with-restrictions.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-encrypt-dynamic-template.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-encrypt-dynamic-template.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-ENCRYPT-TEMPLATE-FILE">Encrypting data with a template file.</a></h1>
@@ -92,7 +114,7 @@
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN749"></a><pre class="PROGRAMLISTING">/**
+<a name="AEN757"></a><pre class="PROGRAMLISTING">/**
* XML Security Library example: Encrypting data using a template file.
*
* Encrypts binary data using a template file and a DES key from a binary file
@@ -109,7 +131,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -185,7 +207,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
@@ -318,7 +340,7 @@ done:
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN754"></a><pre class="PROGRAMLISTING"><?xml version="1.0"?>
+<a name="AEN762"></a><pre class="PROGRAMLISTING"><?xml version="1.0"?>
<!--
XML Security Library example: Simple encryption template file for encrypt1 example.
-->
@@ -339,7 +361,7 @@ XML Security Library example: Simple encryption template file for encrypt1 examp
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN759"></a><pre class="PROGRAMLISTING"><?xml version="1.0"?>
+<a name="AEN767"></a><pre class="PROGRAMLISTING"><?xml version="1.0"?>
<!--
XML Security Library example: Encrypted binary data (encrypt1 example).
-->
diff --git a/docs/api/xmlsec-encrypt-with-session-key.html b/docs/api/xmlsec-encrypt-with-session-key.html
index 1a9c003..9f44192 100644
--- a/docs/api/xmlsec-encrypt-with-session-key.html
+++ b/docs/api/xmlsec-encrypt-with-session-key.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Examples." href="xmlsec-examples.html">
<link rel="PREVIOUS" title="Encrypting data with a dynamicaly created template." href="xmlsec-encrypt-dynamic-template.html">
<link rel="NEXT" title="Decrypting data with a single key." href="xmlsec-decrypt-with-signle-key.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-encrypt-dynamic-template.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-encrypt-dynamic-template.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-decrypt-with-signle-key.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-decrypt-with-signle-key.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-ENCRYPT-WITH-SESSION-KEY">Encrypting data with a session key.</a></h1>
@@ -92,7 +114,7 @@
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN783"></a><pre class="PROGRAMLISTING">/**
+<a name="AEN794"></a><pre class="PROGRAMLISTING">/**
* XML Security Library example: Encrypting XML file with a session key and dynamicaly created template.
*
* Encrypts XML file using a dynamicaly created template file and a session
@@ -110,7 +132,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -188,7 +210,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
@@ -345,20 +367,20 @@ encrypt_file(xmlSecKeysMngrPtr mngr, const char* xml_file, const char* key_name)
goto done;
}
- /* we want to put encrypted data in the <enc:CipherValue/> node */
+ /* we want to put encrypted data in the <a href="http://www.w3.org/TR/xmlenc-core/#sec-CipherValue" target="_top"><enc:CipherValue/></a> node */
if(xmlSecTmplEncDataEnsureCipherValue(encDataNode) == NULL) {
fprintf(stderr, "Error: failed to add CipherValue node\n");
goto done;
}
- /* add <dsig:KeyInfo/> */
+ /* add <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> */
keyInfoNode = xmlSecTmplEncDataEnsureKeyInfo(encDataNode, NULL);
if(keyInfoNode == NULL) {
fprintf(stderr, "Error: failed to add key info\n");
goto done;
}
- /* add <enc:EncryptedKey/> to store the encrypted session key */
+ /* add <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> to store the encrypted session key */
encKeyNode = xmlSecTmplKeyInfoAddEncryptedKey(keyInfoNode,
xmlSecTransformRsaPkcs1Id,
NULL, NULL, NULL);
@@ -367,13 +389,13 @@ encrypt_file(xmlSecKeysMngrPtr mngr, const char* xml_file, const char* key_name)
goto done;
}
- /* we want to put encrypted key in the <enc:CipherValue/> node */
+ /* we want to put encrypted key in the <a href="http://www.w3.org/TR/xmlenc-core/#sec-CipherValue" target="_top"><enc:CipherValue/></a> node */
if(xmlSecTmplEncDataEnsureCipherValue(encKeyNode) == NULL) {
fprintf(stderr, "Error: failed to add CipherValue node\n");
goto done;
}
- /* add <dsig:KeyInfo/> and <dsig:KeyName/> nodes to <enc:EncryptedKey/> */
+ /* add <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> and <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName" target="_top"><dsig:KeyName/></a> nodes to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> */
keyInfoNode2 = xmlSecTmplEncDataEnsureKeyInfo(encKeyNode, NULL);
if(keyInfoNode2 == NULL) {
fprintf(stderr, "Error: failed to add key info\n");
@@ -439,7 +461,7 @@ done:
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN788"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
+<a name="AEN806"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
<!--
XML Security Library example: Original XML doc file before encryption (encrypt3 example).
-->
@@ -456,31 +478,27 @@ XML Security Library example: Original XML doc file before encryption (encrypt3
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN793"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
+<a name="AEN811"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
<!--
-XML Security Library example: XML doc file encrypted with a session DES key (encrypt3 example).
+XML Security Library example: Original XML doc file before encryption (encrypt3 example).
-->
<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
-<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
+<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>rsakey.pem</KeyName>
</KeyInfo>
<CipherData>
-<CipherValue>IPiEu9Nv+EsGyvVeXO9nl5iZhhi+uzQH1I3/DTs3+eamBvioyaawRIlvTql7LYL5
-Mi91Qs8ozfW/fWZ8zB8AE2PosaX37SqiuEta68+65/Ed4v1rkGN0Awux8+gJqJmp
-c2kJhzAoQIAIGAW4nTGP9tl9QUHfwKh2KPA104vezk70ijvF7TrbTmhdfmULAuWK
-Tbsg8sXAPhGmPh5KckM2Xe387iPh4ue2+2TGdWqwXygVdvIUIbcIMq6F+/mWlcmf
-Gs5FVI7CTjaLmeyO4ho+FGmicmqH2hEkZW0a2ktDh4BU/MxYF6L7oayrVWDGp2IH
-dzQAwUT2qJcFjElO8xUz3g==</CipherValue>
+<CipherValue>QYYKljhcX20QyP20hYmq8CSES875oIdbrsjMOxnb0VnYDn01Jk00OIPpb9gdIdZg
+MLOtSy26mWrQ+XqfPGuyaA==</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
-<CipherValue>xrfPSA+BEI+8ca23RN34gtee5lOMx8Cn+ZGWyxitiktdZ1+XREH+57li63VutCwp
-s6ifbZgXIBsFdxPpMBUFlyTWAAO+NLooIwGoczXi14z62lHr7Ck6FA==</CipherValue>
+<CipherValue>+UiDv73SE8K8KwXuOmHLHK7N2hNWDakTAEu6NprbCdULC1w/LXT9FLtNRJetmwwO
+XpBqTY56AAMeMgpxPWN3SPO0ETeQw7pR+bp0IjUvcGlFSXz6yE1qgQ==</CipherValue>
</CipherData>
</EncryptedData></pre>
<p></p>
diff --git a/docs/api/xmlsec-encryption-klasses.html b/docs/api/xmlsec-encryption-klasses.html
index 86833dc..897ee5d 100644
--- a/docs/api/xmlsec-encryption-klasses.html
+++ b/docs/api/xmlsec-encryption-klasses.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="APPENDIX A. XML Security Library Signature Klasses." href="xmlsec-signature-klasses.html">
<link rel="NEXT" title="XML Security Library API Reference." href="xmlsec-reference.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,17 +101,17 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-signature-klasses.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-signature-klasses.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-reference.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-reference.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
<a name="XMLSEC-ENCRYPTION-KLASSES"></a>APPENDIX B. XML Security Library Encryption Klasses.</h1>
<div class="FIGURE">
-<a name="AEN823"></a><p><b>Figure 1. XML Security Library Encryption Klasses.</b></p>
+<a name="AEN844"></a><p><b>Figure 1. XML Security Library Encryption Klasses.</b></p>
<p><img src="images/encryption-structure.png" align="CENTER"></p>
</div>
</div>
diff --git a/docs/api/xmlsec-errors.html b/docs/api/xmlsec-errors.html
index da59cde..dfca890 100644
--- a/docs/api/xmlsec-errors.html
+++ b/docs/api/xmlsec-errors.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="dl" href="xmlsec-dl.html">
<link rel="NEXT" title="io" href="xmlsec-io.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,722 +101,1030 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-dl.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-dl.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-io.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-io.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-ERRORS"></a>errors</h1>
<div class="REFNAMEDIV">
-<a name="AEN4661"></a><h2>Name</h2>errors -- Error/log messages support.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-ERRORS.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-XMLSEC-FAILED--CAPS">XMLSEC_ERRORS_R_XMLSEC_FAILED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-MALLOC-FAILED--CAPS">XMLSEC_ERRORS_R_MALLOC_FAILED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-STRDUP-FAILED--CAPS">XMLSEC_ERRORS_R_STRDUP_FAILED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-CRYPTO-FAILED--CAPS">XMLSEC_ERRORS_R_CRYPTO_FAILED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-XML-FAILED--CAPS">XMLSEC_ERRORS_R_XML_FAILED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-XSLT-FAILED--CAPS">XMLSEC_ERRORS_R_XSLT_FAILED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-IO-FAILED--CAPS">XMLSEC_ERRORS_R_IO_FAILED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-DISABLED--CAPS">XMLSEC_ERRORS_R_DISABLED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-NOT-IMPLEMENTED--CAPS">XMLSEC_ERRORS_R_NOT_IMPLEMENTED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-SIZE--CAPS">XMLSEC_ERRORS_R_INVALID_SIZE</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-DATA--CAPS">XMLSEC_ERRORS_R_INVALID_DATA</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-RESULT--CAPS">XMLSEC_ERRORS_R_INVALID_RESULT</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-TYPE--CAPS">XMLSEC_ERRORS_R_INVALID_TYPE</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-OPERATION--CAPS">XMLSEC_ERRORS_R_INVALID_OPERATION</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-STATUS--CAPS">XMLSEC_ERRORS_R_INVALID_STATUS</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-FORMAT--CAPS">XMLSEC_ERRORS_R_INVALID_FORMAT</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-DATA-NOT-MATCH--CAPS">XMLSEC_ERRORS_R_DATA_NOT_MATCH</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-NODE--CAPS">XMLSEC_ERRORS_R_INVALID_NODE</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-NODE-CONTENT--CAPS">XMLSEC_ERRORS_R_INVALID_NODE_CONTENT</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-NODE-ATTRIBUTE--CAPS">XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-MISSING-NODE-ATTRIBUTE--CAPS">XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-NODE-ALREADY-PRESENT--CAPS">XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-UNEXPECTED-NODE--CAPS">XMLSEC_ERRORS_R_UNEXPECTED_NODE</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-NODE-NOT-FOUND--CAPS">XMLSEC_ERRORS_R_NODE_NOT_FOUND</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-TRANSFORM--CAPS">XMLSEC_ERRORS_R_INVALID_TRANSFORM</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-TRANSFORM-KEY--CAPS">XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-URI-TYPE--CAPS">XMLSEC_ERRORS_R_INVALID_URI_TYPE</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-TRANSFORM-SAME-DOCUMENT-REQUIRED--CAPS">XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-TRANSFORM-DISABLED--CAPS">XMLSEC_ERRORS_R_TRANSFORM_DISABLED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-KEY-DATA--CAPS">XMLSEC_ERRORS_R_INVALID_KEY_DATA</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-KEY-DATA-NOT-FOUND--CAPS">XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-KEY-DATA-ALREADY-EXIST--CAPS">XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-KEY-DATA-SIZE--CAPS">XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-KEY-NOT-FOUND--CAPS">XMLSEC_ERRORS_R_KEY_NOT_FOUND</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-KEYDATA-DISABLED--CAPS">XMLSEC_ERRORS_R_KEYDATA_DISABLED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-MAX-RETRIEVALS-LEVEL--CAPS">XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-MAX-RETRIEVAL-TYPE-MISMATCH--CAPS">XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-MAX-ENCKEY-LEVEL--CAPS">XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-VERIFY-FAILED--CAPS">XMLSEC_ERRORS_R_CERT_VERIFY_FAILED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-NOT-FOUND--CAPS">XMLSEC_ERRORS_R_CERT_NOT_FOUND</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-REVOKED--CAPS">XMLSEC_ERRORS_R_CERT_REVOKED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-ISSUER-FAILED--CAPS">XMLSEC_ERRORS_R_CERT_ISSUER_FAILED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-NOT-YET-VALID--CAPS">XMLSEC_ERRORS_R_CERT_NOT_YET_VALID</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-HAS-EXPIRED--CAPS">XMLSEC_ERRORS_R_CERT_HAS_EXPIRED</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-DSIG-NO-REFERENCES--CAPS">XMLSEC_ERRORS_R_DSIG_NO_REFERENCES</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-DSIG-INVALID-REFERENCE--CAPS">XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-R-ASSERTION--CAPS">XMLSEC_ERRORS_R_ASSERTION</a>
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-MAX-NUMBER--CAPS">XMLSEC_ERRORS_MAX_NUMBER</a>
-<font>void</font> (<a href="xmlsec-errors.html#XMLSECERRORSCALLBACK">*xmlSecErrorsCallback</a>) (const <font>char</font> *file,
- <font>int</font> line,
- const <font>char</font> *func,
- const <font>char</font> *errorObject,
- const <font>char</font> *errorSubject,
- <font>int</font> reason,
- const <font>char</font> *msg);
-<font>void</font> <a href="xmlsec-errors.html#XMLSECERRORSINIT">xmlSecErrorsInit</a> (void);
-<font>void</font> <a href="xmlsec-errors.html#XMLSECERRORSSHUTDOWN">xmlSecErrorsShutdown</a> (void);
-<font>void</font> <a href="xmlsec-errors.html#XMLSECERRORSSETCALLBACK">xmlSecErrorsSetCallback</a> (<a href="xmlsec-errors.html#XMLSECERRORSCALLBACK">xmlSecErrorsCallback</a> callback);
-<font>void</font> <a href="xmlsec-errors.html#XMLSECERRORSDEFAULTCALLBACK">xmlSecErrorsDefaultCallback</a> (const <font>char</font> *file,
- <font>int</font> line,
- const <font>char</font> *func,
- const <font>char</font> *errorObject,
- const <font>char</font> *errorSubject,
- <font>int</font> reason,
- const <font>char</font> *msg);
-<font>void</font> <a href="xmlsec-errors.html#XMLSECERRORSDEFAULTCALLBACKENABLEOUTPUT">xmlSecErrorsDefaultCallbackEnableOutput</a>
- (<font>int</font> enabled);
-<font>int</font> <a href="xmlsec-errors.html#XMLSECERRORSGETCODE">xmlSecErrorsGetCode</a> (<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);
-const <font>char</font>* <a href="xmlsec-errors.html#XMLSECERRORSGETMSG">xmlSecErrorsGetMsg</a> (<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-HERE--CAPS">XMLSEC_ERRORS_HERE</a>
-#define <a href="xmlsec-errors.html#XMLSECERRORSSAFESTRING">xmlSecErrorsSafeString</a> (str)
-#define <a href="xmlsec-errors.html#XMLSEC-ERRORS-NO-MESSAGE--CAPS">XMLSEC_ERRORS_NO_MESSAGE</a>
-<font>void</font> <a href="xmlsec-errors.html#XMLSECERROR">xmlSecError</a> (const <font>char</font> *file,
- <font>int</font> line,
- const <font>char</font> *func,
- const <font>char</font> *errorObject,
- const <font>char</font> *errorSubject,
- <font>int</font> reason,
- const <font>char</font> *msg,
- ...);
-#define <a href="xmlsec-errors.html#XMLSECASSERT">xmlSecAssert</a> ( p )
-#define <a href="xmlsec-errors.html#XMLSECASSERT2">xmlSecAssert2</a> ( p, ret )</pre>
+<a name="AEN6107"></a><h2>Name</h2>errors -- Error/log messages support.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-ERRORS.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN6112"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-errors.html#XMLSECERRORSCALLBACK">*xmlSecErrorsCallback</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-errors.html#XMLSECERRORSINIT">xmlSecErrorsInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-errors.html#XMLSECERRORSSHUTDOWN">xmlSecErrorsShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-errors.html#XMLSECERRORSSETCALLBACK">xmlSecErrorsSetCallback</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-errors.html#XMLSECERRORSDEFAULTCALLBACK">xmlSecErrorsDefaultCallback</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-errors.html#XMLSECERRORSDEFAULTCALLBACKENABLEOUTPUT">xmlSecErrorsDefaultCallbackEnableOutput</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-errors.html#XMLSECERRORSGETCODE">xmlSecErrorsGetCode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>const <font><span class="RETURNVALUE">char</span></font> *</td>
+<td>
+<a href="xmlsec-errors.html#XMLSECERRORSGETMSG">xmlSecErrorsGetMsg</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td>
+<a href="xmlsec-errors.html#XMLSECERRORSSAFESTRING">xmlSecErrorsSafeString</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-errors.html#XMLSECERROR">xmlSecError</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td>
+<a href="xmlsec-errors.html#XMLSECASSERT">xmlSecAssert</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td>
+<a href="xmlsec-errors.html#XMLSECASSERT2">xmlSecAssert2</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-ERRORS.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN6197"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-XMLSEC-FAILED:CAPS">XMLSEC_ERRORS_R_XMLSEC_FAILED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-MALLOC-FAILED:CAPS">XMLSEC_ERRORS_R_MALLOC_FAILED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-STRDUP-FAILED:CAPS">XMLSEC_ERRORS_R_STRDUP_FAILED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-CRYPTO-FAILED:CAPS">XMLSEC_ERRORS_R_CRYPTO_FAILED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-XML-FAILED:CAPS">XMLSEC_ERRORS_R_XML_FAILED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-XSLT-FAILED:CAPS">XMLSEC_ERRORS_R_XSLT_FAILED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-IO-FAILED:CAPS">XMLSEC_ERRORS_R_IO_FAILED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-DISABLED:CAPS">XMLSEC_ERRORS_R_DISABLED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-NOT-IMPLEMENTED:CAPS">XMLSEC_ERRORS_R_NOT_IMPLEMENTED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-SIZE:CAPS">XMLSEC_ERRORS_R_INVALID_SIZE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-DATA:CAPS">XMLSEC_ERRORS_R_INVALID_DATA</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-RESULT:CAPS">XMLSEC_ERRORS_R_INVALID_RESULT</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-TYPE:CAPS">XMLSEC_ERRORS_R_INVALID_TYPE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-OPERATION:CAPS">XMLSEC_ERRORS_R_INVALID_OPERATION</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-STATUS:CAPS">XMLSEC_ERRORS_R_INVALID_STATUS</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-FORMAT:CAPS">XMLSEC_ERRORS_R_INVALID_FORMAT</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-DATA-NOT-MATCH:CAPS">XMLSEC_ERRORS_R_DATA_NOT_MATCH</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-NODE:CAPS">XMLSEC_ERRORS_R_INVALID_NODE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-NODE-CONTENT:CAPS">XMLSEC_ERRORS_R_INVALID_NODE_CONTENT</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-NODE-ATTRIBUTE:CAPS">XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-MISSING-NODE-ATTRIBUTE:CAPS">XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-NODE-ALREADY-PRESENT:CAPS">XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-UNEXPECTED-NODE:CAPS">XMLSEC_ERRORS_R_UNEXPECTED_NODE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-NODE-NOT-FOUND:CAPS">XMLSEC_ERRORS_R_NODE_NOT_FOUND</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-TRANSFORM:CAPS">XMLSEC_ERRORS_R_INVALID_TRANSFORM</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-TRANSFORM-KEY:CAPS">XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-URI-TYPE:CAPS">XMLSEC_ERRORS_R_INVALID_URI_TYPE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-TRANSFORM-SAME-DOCUMENT-REQUIRED:CAPS">XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-TRANSFORM-DISABLED:CAPS">XMLSEC_ERRORS_R_TRANSFORM_DISABLED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-KEY-DATA:CAPS">XMLSEC_ERRORS_R_INVALID_KEY_DATA</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-KEY-DATA-NOT-FOUND:CAPS">XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-KEY-DATA-ALREADY-EXIST:CAPS">XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-KEY-DATA-SIZE:CAPS">XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-KEY-NOT-FOUND:CAPS">XMLSEC_ERRORS_R_KEY_NOT_FOUND</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-KEYDATA-DISABLED:CAPS">XMLSEC_ERRORS_R_KEYDATA_DISABLED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-MAX-RETRIEVALS-LEVEL:CAPS">XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-MAX-RETRIEVAL-TYPE-MISMATCH:CAPS">XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-MAX-ENCKEY-LEVEL:CAPS">XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-VERIFY-FAILED:CAPS">XMLSEC_ERRORS_R_CERT_VERIFY_FAILED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-NOT-FOUND:CAPS">XMLSEC_ERRORS_R_CERT_NOT_FOUND</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-REVOKED:CAPS">XMLSEC_ERRORS_R_CERT_REVOKED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-ISSUER-FAILED:CAPS">XMLSEC_ERRORS_R_CERT_ISSUER_FAILED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-NOT-YET-VALID:CAPS">XMLSEC_ERRORS_R_CERT_NOT_YET_VALID</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-HAS-EXPIRED:CAPS">XMLSEC_ERRORS_R_CERT_HAS_EXPIRED</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-DSIG-NO-REFERENCES:CAPS">XMLSEC_ERRORS_R_DSIG_NO_REFERENCES</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-DSIG-INVALID-REFERENCE:CAPS">XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-R-ASSERTION:CAPS">XMLSEC_ERRORS_R_ASSERTION</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-MAX-NUMBER:CAPS">XMLSEC_ERRORS_MAX_NUMBER</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-HERE:CAPS">XMLSEC_ERRORS_HERE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-errors.html#XMLSEC-ERRORS-NO-MESSAGE:CAPS">XMLSEC_ERRORS_NO_MESSAGE</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-ERRORS.DESCRIPTION"></a><h2>Description</h2>
<p>Error/log messages support.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-ERRORS.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-ERRORS.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
+<div class="REFSECT2">
+<a name="XMLSECERRORSCALLBACK"></a><h3>xmlSecErrorsCallback ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecErrorsCallback<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *file</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> line</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *func</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *errorObject</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *errorSubject</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> reason</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *msg</code>);</pre>
+<p>The errors reporting callback function.</p>
+<div class="REFSECT3">
+<a name="AEN6436"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN6438"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>file</p></td>
+<td><p>the error location file name (__FILE__ macro).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>line</p></td>
+<td><p>the error location line number (__LINE__ macro).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>func</p></td>
+<td><p>the error location function name (__func__ macro).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>errorObject</p></td>
+<td><p>the error specific error object</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>errorSubject</p></td>
+<td><p>the error specific error subject.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>reason</p></td>
+<td><p>the error code.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>msg</p></td>
+<td><p>the additional error message.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECERRORSINIT"></a><h3>xmlSecErrorsInit ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecErrorsInit (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Initializes the errors reporting. It is called from <a href="xmlsec-xmlsec.html#XMLSECINIT"><span class="TYPE">xmlSecInit</span></a> function.
+and applications must not call this function directly.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECERRORSSHUTDOWN"></a><h3>xmlSecErrorsShutdown ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecErrorsShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Cleanups the errors reporting. It is called from <a href="xmlsec-xmlsec.html#XMLSECSHUTDOWN"><span class="TYPE">xmlSecShutdown</span></a> function.
+and applications must not call this function directly.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECERRORSSETCALLBACK"></a><h3>xmlSecErrorsSetCallback ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecErrorsSetCallback (<code class="PARAMETER"><a href="xmlsec-errors.html#XMLSECERRORSCALLBACK"><span class="TYPE">xmlSecErrorsCallback</span></a> callback</code>);</pre>
+<p>Sets the errors callback function to <code class="PARAMETER">callback</code>
+ that will be called
+every time an error occurs.</p>
+<div class="REFSECT3">
+<a name="AEN6519"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN6521"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>callback</p></td>
+<td><p>the new errors callback function.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECERRORSDEFAULTCALLBACK"></a><h3>xmlSecErrorsDefaultCallback ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecErrorsDefaultCallback (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *file</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> line</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *func</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *errorObject</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *errorSubject</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> reason</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *msg</code>);</pre>
+<p>The default error reporting callback that utilizes LibXML
+error reporting <font><span class="TYPE">xmlGenericError</span></font> function.</p>
+<div class="REFSECT3">
+<a name="AEN6561"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN6563"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>file</p></td>
+<td><p>the error location file name (__FILE__ macro).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>line</p></td>
+<td><p>the error location line number (__LINE__ macro).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>func</p></td>
+<td><p>the error location function name (__FUNCTION__ macro).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>errorObject</p></td>
+<td><p>the error specific error object</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>errorSubject</p></td>
+<td><p>the error specific error subject.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>reason</p></td>
+<td><p>the error code.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>msg</p></td>
+<td><p>the additional error message.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECERRORSDEFAULTCALLBACKENABLEOUTPUT"></a><h3>xmlSecErrorsDefaultCallbackEnableOutput ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecErrorsDefaultCallbackEnableOutput
+ (<code class="PARAMETER"><font><span class="TYPE">int</span></font> enabled</code>);</pre>
+<p>Enables or disables calling LibXML2 callback from the default
+errors callback.</p>
+<div class="REFSECT3">
+<a name="AEN6619"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN6621"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>enabled</p></td>
+<td><p>the flag.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECERRORSGETCODE"></a><h3>xmlSecErrorsGetCode ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecErrorsGetCode (<code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> pos</code>);</pre>
+<p>Gets the known error code at position <code class="PARAMETER">pos</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN6642"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN6644"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>pos</p></td>
+<td><p>the error position.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN6653"></a><h4>Returns</h4>
+<p> the known error code or 0 if <code class="PARAMETER">pos</code>
+is greater than
+total number of known error codes.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECERRORSGETMSG"></a><h3>xmlSecErrorsGetMsg ()</h3>
+<pre class="PROGRAMLISTING">const <font><span class="RETURNVALUE">char</span></font> *
+xmlSecErrorsGetMsg (<code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> pos</code>);</pre>
+<p>Gets the known error message at position <code class="PARAMETER">pos</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN6669"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN6671"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>pos</p></td>
+<td><p>the error position.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN6680"></a><h4>Returns</h4>
+<p> the known error message or NULL if <code class="PARAMETER">pos</code>
+is greater than
+total number of known error codes.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECERRORSSAFESTRING"></a><h3>xmlSecErrorsSafeString()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecErrorsSafeString(str)</pre>
+<p>Macro. Returns <code class="PARAMETER">str</code>
+ if it is not NULL or pointer to "NULL" otherwise.</p>
+<div class="REFSECT3">
+<a name="AEN6691"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN6693"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>str</p></td>
+<td><p>the string.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECERROR"></a><h3>xmlSecError ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecError (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *file</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> line</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *func</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *errorObject</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *errorSubject</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> reason</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *msg</code>,
+ <code class="PARAMETER">...</code>);</pre>
+<p>Reports an error to the default (<a href="xmlsec-errors.html#XMLSECERRORSDEFAULTCALLBACK"><span class="TYPE">xmlSecErrorsDefaultCallback</span></a>) or
+application specific callback installed using <a href="xmlsec-errors.html#XMLSECERRORSSETCALLBACK"><span class="TYPE">xmlSecErrorsSetCallback</span></a>
+function.</p>
+<div class="REFSECT3">
+<a name="AEN6736"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN6738"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>file</p></td>
+<td><p>the error location filename (__FILE__).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>line</p></td>
+<td><p>the error location line number (__LINE__).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>func</p></td>
+<td><p>the error location function (__FUNCTIION__).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>errorObject</p></td>
+<td><p>the error specific error object</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>errorSubject</p></td>
+<td><p>the error specific error subject.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>reason</p></td>
+<td><p>the error code.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>msg</p></td>
+<td><p>the error message in printf format.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>...</p></td>
+<td><p>the parameters for the <code class="PARAMETER">msg</code>
+.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECASSERT"></a><h3>xmlSecAssert()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecAssert( p )</pre>
+<p>Macro. Verifies that <code class="PARAMETER">p</code>
+ is true and calls <font><code class="FUNCTION">return()</code></font> otherwise.</p>
+<div class="REFSECT3">
+<a name="AEN6799"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN6801"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>p</p></td>
+<td><p>the expression.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECASSERT2"></a><h3>xmlSecAssert2()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecAssert2( p, ret )</pre>
+<p>Macro. Verifies that <code class="PARAMETER">p</code>
+ is true and calls return(<code class="PARAMETER">ret</code>
+) otherwise.</p>
+<div class="REFSECT3">
+<a name="AEN6818"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN6820"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>p</p></td>
+<td><p>the expression.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>ret</p></td>
+<td><p>the return value.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-ERRORS.OTHER_DETAILS"></a><h2>Types and Values</h2>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-XMLSEC-FAILED--CAPS"></a><h3>XMLSEC_ERRORS_R_XMLSEC_FAILED</h3>
+<a name="XMLSEC-ERRORS-R-XMLSEC-FAILED:CAPS"></a><h3>XMLSEC_ERRORS_R_XMLSEC_FAILED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_XMLSEC_FAILED 1</pre>
<p>An XMLSec function failed (error subject is the failed function).</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-MALLOC-FAILED--CAPS"></a><h3>XMLSEC_ERRORS_R_MALLOC_FAILED</h3>
+<a name="XMLSEC-ERRORS-R-MALLOC-FAILED:CAPS"></a><h3>XMLSEC_ERRORS_R_MALLOC_FAILED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_MALLOC_FAILED 2</pre>
<p>Failed to allocate memory error.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-STRDUP-FAILED--CAPS"></a><h3>XMLSEC_ERRORS_R_STRDUP_FAILED</h3>
+<a name="XMLSEC-ERRORS-R-STRDUP-FAILED:CAPS"></a><h3>XMLSEC_ERRORS_R_STRDUP_FAILED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_STRDUP_FAILED 3</pre>
<p>Failed to duplicate string error.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-CRYPTO-FAILED--CAPS"></a><h3>XMLSEC_ERRORS_R_CRYPTO_FAILED</h3>
+<a name="XMLSEC-ERRORS-R-CRYPTO-FAILED:CAPS"></a><h3>XMLSEC_ERRORS_R_CRYPTO_FAILED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_CRYPTO_FAILED 4</pre>
<p>Crypto (OpenSSL) function failed (error subject is the failed function).</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-XML-FAILED--CAPS"></a><h3>XMLSEC_ERRORS_R_XML_FAILED</h3>
+<a name="XMLSEC-ERRORS-R-XML-FAILED:CAPS"></a><h3>XMLSEC_ERRORS_R_XML_FAILED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_XML_FAILED 5</pre>
<p>LibXML function failed (error subject is the failed function).</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-XSLT-FAILED--CAPS"></a><h3>XMLSEC_ERRORS_R_XSLT_FAILED</h3>
+<a name="XMLSEC-ERRORS-R-XSLT-FAILED:CAPS"></a><h3>XMLSEC_ERRORS_R_XSLT_FAILED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_XSLT_FAILED 6</pre>
<p>LibXSLT function failed (error subject is the failed function).</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-IO-FAILED--CAPS"></a><h3>XMLSEC_ERRORS_R_IO_FAILED</h3>
+<a name="XMLSEC-ERRORS-R-IO-FAILED:CAPS"></a><h3>XMLSEC_ERRORS_R_IO_FAILED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_IO_FAILED 7</pre>
<p>IO operation failed.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-DISABLED--CAPS"></a><h3>XMLSEC_ERRORS_R_DISABLED</h3>
+<a name="XMLSEC-ERRORS-R-DISABLED:CAPS"></a><h3>XMLSEC_ERRORS_R_DISABLED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_DISABLED 8</pre>
<p>The feature is disabled during compilation.
Check './configure --help' for details on how to
enable it.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-NOT-IMPLEMENTED--CAPS"></a><h3>XMLSEC_ERRORS_R_NOT_IMPLEMENTED</h3>
+<a name="XMLSEC-ERRORS-R-NOT-IMPLEMENTED:CAPS"></a><h3>XMLSEC_ERRORS_R_NOT_IMPLEMENTED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_NOT_IMPLEMENTED 9</pre>
<p>Feature is not implemented.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-SIZE--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_SIZE</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-SIZE:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_SIZE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_SIZE 11</pre>
<p>Invalid size.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-DATA--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_DATA</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-DATA:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_DATA</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_DATA 12</pre>
<p>Invalid data.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-RESULT--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_RESULT</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-RESULT:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_RESULT</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_RESULT 13</pre>
<p>Invalid result.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-TYPE--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_TYPE</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-TYPE:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_TYPE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_TYPE 14</pre>
<p>Invalid type.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-OPERATION--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_OPERATION</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-OPERATION:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_OPERATION</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_OPERATION 15</pre>
<p>Invalid operation.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-STATUS--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_STATUS</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-STATUS:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_STATUS</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_STATUS 16</pre>
<p>Invalid status.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-FORMAT--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_FORMAT</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-FORMAT:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_FORMAT</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_FORMAT 17</pre>
<p>Invalid format.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-DATA-NOT-MATCH--CAPS"></a><h3>XMLSEC_ERRORS_R_DATA_NOT_MATCH</h3>
+<a name="XMLSEC-ERRORS-R-DATA-NOT-MATCH:CAPS"></a><h3>XMLSEC_ERRORS_R_DATA_NOT_MATCH</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_DATA_NOT_MATCH 18</pre>
<p>The data do not match our expectation.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-NODE--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_NODE</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-NODE:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_NODE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_NODE 21</pre>
<p>Invalid node (error subject is the node name).</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-NODE-CONTENT--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_NODE_CONTENT</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-NODE-CONTENT:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_NODE_CONTENT</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_NODE_CONTENT 22</pre>
<p>Invalid node content (error subject is the node name).</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-NODE-ATTRIBUTE--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-NODE-ATTRIBUTE:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE 23</pre>
<p>Invalid node attribute (error subject is the node name).</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-MISSING-NODE-ATTRIBUTE--CAPS"></a><h3>XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE</h3>
+<a name="XMLSEC-ERRORS-R-MISSING-NODE-ATTRIBUTE:CAPS"></a><h3>XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE 25</pre>
<p>Missing node attribute (error subject is the node name).</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-NODE-ALREADY-PRESENT--CAPS"></a><h3>XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT</h3>
+<a name="XMLSEC-ERRORS-R-NODE-ALREADY-PRESENT:CAPS"></a><h3>XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT 26</pre>
<p>Node already present,</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-UNEXPECTED-NODE--CAPS"></a><h3>XMLSEC_ERRORS_R_UNEXPECTED_NODE</h3>
+<a name="XMLSEC-ERRORS-R-UNEXPECTED-NODE:CAPS"></a><h3>XMLSEC_ERRORS_R_UNEXPECTED_NODE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_UNEXPECTED_NODE 27</pre>
<p>Unexpected node (error subject is the node name).</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-NODE-NOT-FOUND--CAPS"></a><h3>XMLSEC_ERRORS_R_NODE_NOT_FOUND</h3>
+<a name="XMLSEC-ERRORS-R-NODE-NOT-FOUND:CAPS"></a><h3>XMLSEC_ERRORS_R_NODE_NOT_FOUND</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_NODE_NOT_FOUND 28</pre>
<p>Node not found (error subject is the required node name).</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-TRANSFORM--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_TRANSFORM</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-TRANSFORM:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_TRANSFORM</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_TRANSFORM 31</pre>
<p>This transform is invlaid here.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-TRANSFORM-KEY--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-TRANSFORM-KEY:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY 32</pre>
<p>Key is invalid for this transform.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-URI-TYPE--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_URI_TYPE</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-URI-TYPE:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_URI_TYPE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_URI_TYPE 33</pre>
<p>Invalid URI type.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-TRANSFORM-SAME-DOCUMENT-REQUIRED--CAPS"></a><h3>XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED</h3>
+<a name="XMLSEC-ERRORS-R-TRANSFORM-SAME-DOCUMENT-REQUIRED:CAPS"></a><h3>XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED 34</pre>
<p>The transform requires the input document to be the same as context.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-TRANSFORM-DISABLED--CAPS"></a><h3>XMLSEC_ERRORS_R_TRANSFORM_DISABLED</h3>
+<a name="XMLSEC-ERRORS-R-TRANSFORM-DISABLED:CAPS"></a><h3>XMLSEC_ERRORS_R_TRANSFORM_DISABLED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_TRANSFORM_DISABLED 35</pre>
<p>The transform is disabled.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-KEY-DATA--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_KEY_DATA</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-KEY-DATA:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_KEY_DATA</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_KEY_DATA 41</pre>
<p>Key data is invalid.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-KEY-DATA-NOT-FOUND--CAPS"></a><h3>XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND</h3>
+<a name="XMLSEC-ERRORS-R-KEY-DATA-NOT-FOUND:CAPS"></a><h3>XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND 42</pre>
<p>Data is not found (error subject is the data name).</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-KEY-DATA-ALREADY-EXIST--CAPS"></a><h3>XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST</h3>
+<a name="XMLSEC-ERRORS-R-KEY-DATA-ALREADY-EXIST:CAPS"></a><h3>XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST 43</pre>
<p>The key data is already exist.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-INVALID-KEY-DATA-SIZE--CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE</h3>
+<a name="XMLSEC-ERRORS-R-INVALID-KEY-DATA-SIZE:CAPS"></a><h3>XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE 44</pre>
<p>Invalid key size.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-KEY-NOT-FOUND--CAPS"></a><h3>XMLSEC_ERRORS_R_KEY_NOT_FOUND</h3>
+<a name="XMLSEC-ERRORS-R-KEY-NOT-FOUND:CAPS"></a><h3>XMLSEC_ERRORS_R_KEY_NOT_FOUND</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_KEY_NOT_FOUND 45</pre>
<p>Key not found.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-KEYDATA-DISABLED--CAPS"></a><h3>XMLSEC_ERRORS_R_KEYDATA_DISABLED</h3>
+<a name="XMLSEC-ERRORS-R-KEYDATA-DISABLED:CAPS"></a><h3>XMLSEC_ERRORS_R_KEYDATA_DISABLED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_KEYDATA_DISABLED 46</pre>
<p>The key data type disabled.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-MAX-RETRIEVALS-LEVEL--CAPS"></a><h3>XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL</h3>
+<a name="XMLSEC-ERRORS-R-MAX-RETRIEVALS-LEVEL:CAPS"></a><h3>XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL 51</pre>
<p>Max allowed retrievals level reached.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-MAX-RETRIEVAL-TYPE-MISMATCH--CAPS"></a><h3>XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH</h3>
+<a name="XMLSEC-ERRORS-R-MAX-RETRIEVAL-TYPE-MISMATCH:CAPS"></a><h3>XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH 52</pre>
<p>The retrieved key data type does not match the one specified
-in the <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod" target="_top"><dsig:RetrievalMethod/></a> node.</p>
-<p></p>
+in the <dsig:RetrievalMethod/> node.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-MAX-ENCKEY-LEVEL--CAPS"></a><h3>XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL</h3>
+<a name="XMLSEC-ERRORS-R-MAX-ENCKEY-LEVEL:CAPS"></a><h3>XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL 61</pre>
<p>Max EncryptedKey level reached.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-CERT-VERIFY-FAILED--CAPS"></a><h3>XMLSEC_ERRORS_R_CERT_VERIFY_FAILED</h3>
+<a name="XMLSEC-ERRORS-R-CERT-VERIFY-FAILED:CAPS"></a><h3>XMLSEC_ERRORS_R_CERT_VERIFY_FAILED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_CERT_VERIFY_FAILED 71</pre>
<p>Certificate verification failed.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-CERT-NOT-FOUND--CAPS"></a><h3>XMLSEC_ERRORS_R_CERT_NOT_FOUND</h3>
+<a name="XMLSEC-ERRORS-R-CERT-NOT-FOUND:CAPS"></a><h3>XMLSEC_ERRORS_R_CERT_NOT_FOUND</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_CERT_NOT_FOUND 72</pre>
<p>Requested certificate is not found.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-CERT-REVOKED--CAPS"></a><h3>XMLSEC_ERRORS_R_CERT_REVOKED</h3>
+<a name="XMLSEC-ERRORS-R-CERT-REVOKED:CAPS"></a><h3>XMLSEC_ERRORS_R_CERT_REVOKED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_CERT_REVOKED 73</pre>
<p>The certificate is revoked.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-CERT-ISSUER-FAILED--CAPS"></a><h3>XMLSEC_ERRORS_R_CERT_ISSUER_FAILED</h3>
+<a name="XMLSEC-ERRORS-R-CERT-ISSUER-FAILED:CAPS"></a><h3>XMLSEC_ERRORS_R_CERT_ISSUER_FAILED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_CERT_ISSUER_FAILED 74</pre>
<p>Failed to get certificate issuer.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-CERT-NOT-YET-VALID--CAPS"></a><h3>XMLSEC_ERRORS_R_CERT_NOT_YET_VALID</h3>
+<a name="XMLSEC-ERRORS-R-CERT-NOT-YET-VALID:CAPS"></a><h3>XMLSEC_ERRORS_R_CERT_NOT_YET_VALID</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_CERT_NOT_YET_VALID 75</pre>
<p>"Not valid before" verification failed.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-CERT-HAS-EXPIRED--CAPS"></a><h3>XMLSEC_ERRORS_R_CERT_HAS_EXPIRED</h3>
+<a name="XMLSEC-ERRORS-R-CERT-HAS-EXPIRED:CAPS"></a><h3>XMLSEC_ERRORS_R_CERT_HAS_EXPIRED</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_CERT_HAS_EXPIRED 76</pre>
<p>"Not valid after" verification failed.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-DSIG-NO-REFERENCES--CAPS"></a><h3>XMLSEC_ERRORS_R_DSIG_NO_REFERENCES</h3>
+<a name="XMLSEC-ERRORS-R-DSIG-NO-REFERENCES:CAPS"></a><h3>XMLSEC_ERRORS_R_DSIG_NO_REFERENCES</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_DSIG_NO_REFERENCES 81</pre>
<p>The <dsig:Reference> nodes not found.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-DSIG-INVALID-REFERENCE--CAPS"></a><h3>XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE</h3>
+<a name="XMLSEC-ERRORS-R-DSIG-INVALID-REFERENCE:CAPS"></a><h3>XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE 82</pre>
<p>The <dsig:Reference> validation failed.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-R-ASSERTION--CAPS"></a><h3>XMLSEC_ERRORS_R_ASSERTION</h3>
+<a name="XMLSEC-ERRORS-R-ASSERTION:CAPS"></a><h3>XMLSEC_ERRORS_R_ASSERTION</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_R_ASSERTION 100</pre>
<p>Invalid assertion.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-MAX-NUMBER--CAPS"></a><h3>XMLSEC_ERRORS_MAX_NUMBER</h3>
+<a name="XMLSEC-ERRORS-MAX-NUMBER:CAPS"></a><h3>XMLSEC_ERRORS_MAX_NUMBER</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_MAX_NUMBER 256</pre>
<p>The maximum xmlsec errors number.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECERRORSCALLBACK"></a><h3>xmlSecErrorsCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> (*xmlSecErrorsCallback) (const <font>char</font> *file,
- <font>int</font> line,
- const <font>char</font> *func,
- const <font>char</font> *errorObject,
- const <font>char</font> *errorSubject,
- <font>int</font> reason,
- const <font>char</font> *msg);</pre>
-<p>The errors reporting callback function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5121"><span style="white-space: nowrap"><code class="PARAMETER">file</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location file name (__FILE__ macro).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5126"><span style="white-space: nowrap"><code class="PARAMETER">line</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location line number (__LINE__ macro).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5131"><span style="white-space: nowrap"><code class="PARAMETER">func</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location function name (__FUNCTION__ macro).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5136"><span style="white-space: nowrap"><code class="PARAMETER">errorObject</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error specific error object</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5141"><span style="white-space: nowrap"><code class="PARAMETER">errorSubject</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error specific error subject.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5146"><span style="white-space: nowrap"><code class="PARAMETER">reason</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error code.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5151"><span style="white-space: nowrap"><code class="PARAMETER">msg</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the additional error message.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECERRORSINIT"></a><h3>xmlSecErrorsInit ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecErrorsInit (void);</pre>
-<p>Initializes the errors reporting. It is called from <a href="xmlsec-xmlsec.html#XMLSECINIT"><span class="TYPE">xmlSecInit</span></a> function.
-and applications must not call this function directly.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECERRORSSHUTDOWN"></a><h3>xmlSecErrorsShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecErrorsShutdown (void);</pre>
-<p>Cleanups the errors reporting. It is called from <a href="xmlsec-xmlsec.html#XMLSECSHUTDOWN"><span class="TYPE">xmlSecShutdown</span></a> function.
-and applications must not call this function directly.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECERRORSSETCALLBACK"></a><h3>xmlSecErrorsSetCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecErrorsSetCallback (<a href="xmlsec-errors.html#XMLSECERRORSCALLBACK">xmlSecErrorsCallback</a> callback);</pre>
-<p>Sets the errors callback function to <code class="PARAMETER">callback</code> that will be called
-every time an error occurs.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN5187"><span style="white-space: nowrap"><code class="PARAMETER">callback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new errors callback function.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECERRORSDEFAULTCALLBACK"></a><h3>xmlSecErrorsDefaultCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecErrorsDefaultCallback (const <font>char</font> *file,
- <font>int</font> line,
- const <font>char</font> *func,
- const <font>char</font> *errorObject,
- const <font>char</font> *errorSubject,
- <font>int</font> reason,
- const <font>char</font> *msg);</pre>
-<p>The default error reporting callback that utilizes LibXML
-error reporting <font><span class="TYPE">xmlGenericError</span></font> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5210"><span style="white-space: nowrap"><code class="PARAMETER">file</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location file name (__FILE__ macro).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5215"><span style="white-space: nowrap"><code class="PARAMETER">line</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location line number (__LINE__ macro).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5220"><span style="white-space: nowrap"><code class="PARAMETER">func</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location function name (__FUNCTION__ macro).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5225"><span style="white-space: nowrap"><code class="PARAMETER">errorObject</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error specific error object</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5230"><span style="white-space: nowrap"><code class="PARAMETER">errorSubject</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error specific error subject.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5235"><span style="white-space: nowrap"><code class="PARAMETER">reason</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error code.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5240"><span style="white-space: nowrap"><code class="PARAMETER">msg</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the additional error message.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECERRORSDEFAULTCALLBACKENABLEOUTPUT"></a><h3>xmlSecErrorsDefaultCallbackEnableOutput ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecErrorsDefaultCallbackEnableOutput
- (<font>int</font> enabled);</pre>
-<p>Enables or disables calling LibXML2 callback from the default
-errors callback.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN5255"><span style="white-space: nowrap"><code class="PARAMETER">enabled</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECERRORSGETCODE"></a><h3>xmlSecErrorsGetCode ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecErrorsGetCode (<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);</pre>
-<p>Gets the known error code at position <code class="PARAMETER">pos</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5271"><span style="white-space: nowrap"><code class="PARAMETER">pos</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error position.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5276"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the known error code or 0 if <code class="PARAMETER">pos</code> is greater than
-total number of known error codes.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECERRORSGETMSG"></a><h3>xmlSecErrorsGetMsg ()</h3>
-<pre class="PROGRAMLISTING">const <font>char</font>* xmlSecErrorsGetMsg (<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);</pre>
-<p>Gets the known error message at position <code class="PARAMETER">pos</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5293"><span style="white-space: nowrap"><code class="PARAMETER">pos</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error position.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5298"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the known error message or NULL if <code class="PARAMETER">pos</code> is greater than
-total number of known error codes.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-HERE--CAPS"></a><h3>XMLSEC_ERRORS_HERE</h3>
+<a name="XMLSEC-ERRORS-HERE:CAPS"></a><h3>XMLSEC_ERRORS_HERE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_HERE __FILE__,__LINE__,__XMLSEC_FUNCTION__</pre>
<p>The macro that specifies the location (file, line and function)
for the <a href="xmlsec-errors.html#XMLSECERROR"><code class="FUNCTION">xmlSecError()</code></a> function.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECERRORSSAFESTRING"></a><h3>xmlSecErrorsSafeString()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecErrorsSafeString(str)</pre>
-<p>Macro. Returns <code class="PARAMETER">str</code> if it is not NULL or pointer to "NULL" otherwise.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN5322"><span style="white-space: nowrap"><code class="PARAMETER">str</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-ERRORS-NO-MESSAGE--CAPS"></a><h3>XMLSEC_ERRORS_NO_MESSAGE</h3>
+<a name="XMLSEC-ERRORS-NO-MESSAGE:CAPS"></a><h3>XMLSEC_ERRORS_NO_MESSAGE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_ERRORS_NO_MESSAGE " "</pre>
<p>Empty error message " ".</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECERROR"></a><h3>xmlSecError ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecError (const <font>char</font> *file,
- <font>int</font> line,
- const <font>char</font> *func,
- const <font>char</font> *errorObject,
- const <font>char</font> *errorSubject,
- <font>int</font> reason,
- const <font>char</font> *msg,
- ...);</pre>
-<p>Reports an error to the default (<a href="xmlsec-errors.html#XMLSECERRORSDEFAULTCALLBACK"><span class="TYPE">xmlSecErrorsDefaultCallback</span></a>) or
-application specific callback installed using <a href="xmlsec-errors.html#XMLSECERRORSSETCALLBACK"><span class="TYPE">xmlSecErrorsSetCallback</span></a>
-function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5354"><span style="white-space: nowrap"><code class="PARAMETER">file</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location filename (__FILE__).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5359"><span style="white-space: nowrap"><code class="PARAMETER">line</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location line number (__LINE__).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5364"><span style="white-space: nowrap"><code class="PARAMETER">func</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location function (__FUNCTIION__).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5369"><span style="white-space: nowrap"><code class="PARAMETER">errorObject</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error specific error object</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5374"><span style="white-space: nowrap"><code class="PARAMETER">errorSubject</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error specific error subject.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5379"><span style="white-space: nowrap"><code class="PARAMETER">reason</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error code.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5384"><span style="white-space: nowrap"><code class="PARAMETER">msg</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error message in printf format.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5389"><span style="white-space: nowrap"><code class="PARAMETER">...</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the parameters for the <code class="PARAMETER">msg</code>.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECASSERT"></a><h3>xmlSecAssert()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecAssert( p )</pre>
-<p>Macro. Verifies that <code class="PARAMETER">p</code> is true and calls <font><code class="FUNCTION">return()</code></font> otherwise.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN5406"><span style="white-space: nowrap"><code class="PARAMETER">p</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the expression.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECASSERT2"></a><h3>xmlSecAssert2()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecAssert2( p, ret )</pre>
-<p>Macro. Verifies that <code class="PARAMETER">p</code> is true and calls return(<code class="PARAMETER">ret</code>) otherwise.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5421"><span style="white-space: nowrap"><code class="PARAMETER">p</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the expression.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5426"><span style="white-space: nowrap"><code class="PARAMETER">ret</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the return value.</p></td>
-</tr>
-</tbody></table>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-examples-sign-dynamimc-template.html b/docs/api/xmlsec-examples-sign-dynamimc-template.html
index 6320bf9..774223c 100644
--- a/docs/api/xmlsec-examples-sign-dynamimc-template.html
+++ b/docs/api/xmlsec-examples-sign-dynamimc-template.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Examples." href="xmlsec-examples.html">
<link rel="PREVIOUS" title="Signing a template file." href="xmlsec-examples-sign-template-file.html">
<link rel="NEXT" title="Signing with X509 certificate." href="xmlsec-examples-sign-x509.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-examples-sign-template-file.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-examples-sign-template-file.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-examples-sign-x509.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-examples-sign-x509.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-EXAMPLES-SIGN-DYNAMIMC-TEMPLATE">Signing a dynamicaly created template.</a></h1>
@@ -92,12 +114,12 @@
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN667"></a><pre class="PROGRAMLISTING">/**
+<a name="AEN658"></a><pre class="PROGRAMLISTING">/**
* XML Security Library example: Signing a file with a dynamicaly created template.
*
* Signs a file using a dynamicaly created template and key from PEM file.
* The signature has one reference with one enveloped transform to sign
- * the whole document except the <dsig:Signature/> node itself.
+ * the whole document except the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node itself.
*
* Usage:
* sign2 <xml-doc> <pem-key>
@@ -111,7 +133,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -187,7 +209,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
@@ -267,7 +289,7 @@ sign_file(const char* xml_file, const char* key_file) {
goto done;
}
- /* add <dsig:Signature/> node to the doc */
+ /* add <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node to the doc */
xmlAddChild(xmlDocGetRootElement(doc), signNode);
/* add reference */
@@ -284,7 +306,7 @@ sign_file(const char* xml_file, const char* key_file) {
goto done;
}
- /* add <dsig:KeyInfo/> and <dsig:KeyName/> nodes to put key name in the signed document */
+ /* add <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> and <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName" target="_top"><dsig:KeyName/></a> nodes to put key name in the signed document */
keyInfoNode = xmlSecTmplSignatureEnsureKeyInfo(signNode, NULL);
if(keyInfoNode == NULL) {
fprintf(stderr, "Error: failed to add key info\n");
@@ -347,7 +369,7 @@ done:
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN672"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
+<a name="AEN667"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
<!--
XML Security Library example: Original XML doc file for sign2 example.
-->
@@ -364,7 +386,7 @@ XML Security Library example: Original XML doc file for sign2 example.
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN677"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
+<a name="AEN672"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
<!--
XML Security Library example: Original XML doc file for sign2 example.
-->
diff --git a/docs/api/xmlsec-examples-sign-template-file.html b/docs/api/xmlsec-examples-sign-template-file.html
index 46b4f36..087faab 100644
--- a/docs/api/xmlsec-examples-sign-template-file.html
+++ b/docs/api/xmlsec-examples-sign-template-file.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Examples." href="xmlsec-examples.html">
<link rel="PREVIOUS" title="Examples." href="xmlsec-examples.html">
<link rel="NEXT" title="Signing a dynamicaly created template." href="xmlsec-examples-sign-dynamimc-template.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-examples.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-examples.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-examples-sign-dynamimc-template.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-examples-sign-dynamimc-template.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-EXAMPLES-SIGN-TEMPLATE-FILE">Signing a template file.</a></h1>
@@ -92,7 +114,7 @@
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN650"></a><pre class="PROGRAMLISTING">/**
+<a name="AEN641"></a><pre class="PROGRAMLISTING">/**
* XML Security Library example: Signing a template file.
*
* Signs a template file using a key from PEM file
@@ -109,7 +131,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -184,7 +206,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
@@ -311,7 +333,7 @@ done:
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN655"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
+<a name="AEN646"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
<!--
XML Security Library example: Simple signature template file for sign1 example.
-->
@@ -345,7 +367,7 @@ XML Security Library example: Simple signature template file for sign1 example.
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN660"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
+<a name="AEN651"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
<!--
XML Security Library example: Simple signature template file for sign1 example.
-->
diff --git a/docs/api/xmlsec-examples-sign-x509.html b/docs/api/xmlsec-examples-sign-x509.html
index a924203..069b92d 100644
--- a/docs/api/xmlsec-examples-sign-x509.html
+++ b/docs/api/xmlsec-examples-sign-x509.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Examples." href="xmlsec-examples.html">
<link rel="PREVIOUS" title="Signing a dynamicaly created template." href="xmlsec-examples-sign-dynamimc-template.html">
<link rel="NEXT" title="Verifying a signature with a single key." href="xmlsec-verify-with-key.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-examples-sign-dynamimc-template.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-examples-sign-dynamimc-template.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-verify-with-key.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-verify-with-key.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-EXAMPLES-SIGN-X509">Signing with X509 certificate.</a></h1>
@@ -92,13 +114,13 @@
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN684"></a><pre class="PROGRAMLISTING">/**
+<a name="AEN679"></a><pre class="PROGRAMLISTING">/**
* XML Security Library example: Signing a file with a dynamicaly created template and an X509 certificate.
*
* Signs a file using a dynamicaly created template, key from PEM file and
* an X509 certificate. The signature has one reference with one enveloped
- * transform to sign the whole document except the <dsig:Signature/> node
- * itself. The key certificate is written in the <dsig:X509Data/> node.
+ * transform to sign the whole document except the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node
+ * itself. The key certificate is written in the <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node.
*
* This example was developed and tested with OpenSSL crypto library. The
* certificates management policies for another crypto library may break it.
@@ -110,12 +132,12 @@
* ./sign3 sign3-doc.xml rsakey.pem rsacert.pem > sign3-res.xml
*
* The result signature could be validated using verify3 example:
- * ./verify3 sign3-res.xml rootcert.pem
+ * ./verify3 sign3-res.xml ca2cert.pem cacert.pem
*
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -191,7 +213,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
@@ -242,7 +264,7 @@ main(int argc, char **argv) {
*
* Signs the @xml_file using private key from @key_file and dynamicaly
* created enveloped signature template. The certificate from @cert_file
- * is placed in the <dsig:X509Data/> node.
+ * is placed in the <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node.
*
* Returns 0 on success or a negative value if an error occurs.
*/
@@ -252,6 +274,7 @@ sign_file(const char* xml_file, const char* key_file, const char* cert_file) {
xmlNodePtr signNode = NULL;
xmlNodePtr refNode = NULL;
xmlNodePtr keyInfoNode = NULL;
+ xmlNodePtr x509DataNode = NULL;
xmlSecDSigCtxPtr dsigCtx = NULL;
int res = -1;
@@ -274,7 +297,7 @@ sign_file(const char* xml_file, const char* key_file, const char* cert_file) {
goto done;
}
- /* add <dsig:Signature/> node to the doc */
+ /* add <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node to the doc */
xmlAddChild(xmlDocGetRootElement(doc), signNode);
/* add reference */
@@ -291,18 +314,29 @@ sign_file(const char* xml_file, const char* key_file, const char* cert_file) {
goto done;
}
- /* add <dsig:KeyInfo/> and <dsig:X509Data/> */
+ /* add <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> and <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> */
keyInfoNode = xmlSecTmplSignatureEnsureKeyInfo(signNode, NULL);
if(keyInfoNode == NULL) {
fprintf(stderr, "Error: failed to add key info\n");
goto done;
}
- if(xmlSecTmplKeyInfoAddX509Data(keyInfoNode) == NULL) {
+ x509DataNode = xmlSecTmplKeyInfoAddX509Data(keyInfoNode);
+ if(x509DataNode == NULL) {
fprintf(stderr, "Error: failed to add X509Data node\n");
goto done;
}
+ if(xmlSecTmplX509DataAddSubjectName(x509DataNode) == NULL) {
+ fprintf(stderr, "Error: failed to add X509SubjectName node\n");
+ goto done;
+ }
+
+ if(xmlSecTmplX509DataAddCertificate(x509DataNode) == NULL) {
+ fprintf(stderr, "Error: failed to add X509Certificate node\n");
+ goto done;
+ }
+
/* create signature context, we don't need keys manager in this example */
dsigCtx = xmlSecDSigCtxCreate(NULL);
if(dsigCtx == NULL) {
@@ -360,7 +394,7 @@ done:
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN689"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
+<a name="AEN690"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
<!--
XML Security Library example: Original XML doc file for sign3 example.
-->
@@ -377,7 +411,7 @@ XML Security Library example: Original XML doc file for sign3 example.
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN694"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
+<a name="AEN695"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
<!--
XML Security Library example: Original XML doc file for sign3 example.
-->
diff --git a/docs/api/xmlsec-examples.html b/docs/api/xmlsec-examples.html
index 356f790..2efb56d 100644
--- a/docs/api/xmlsec-examples.html
+++ b/docs/api/xmlsec-examples.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="Sharing the results." href="xmlsec-notes-new-crypto-sharing-results.html">
<link rel="NEXT" title="Signing a template file." href="xmlsec-examples-sign-template-file.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-new-crypto-sharing-results.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-new-crypto-sharing-results.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-examples-sign-template-file.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-examples-sign-template-file.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-gcrypt-app.html b/docs/api/xmlsec-gcrypt-app.html
index 31dcafc..11fb325 100644
--- a/docs/api/xmlsec-gcrypt-app.html
+++ b/docs/api/xmlsec-gcrypt-app.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for GCrypt API Reference." href="xmlsec-gcrypt-ref.html">
<link rel="PREVIOUS" title="XML Security Library for GCrypt API Reference." href="xmlsec-gcrypt-ref.html">
<link rel="NEXT" title="crypto" href="xmlsec-gcrypt-crypto.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,511 +101,759 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-gcrypt-ref.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-gcrypt-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-gcrypt-ref.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-gcrypt-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-gcrypt-crypto.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-gcrypt-crypto.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-GCRYPT-APP"></a>app</h1>
<div class="REFNAMEDIV">
-<a name="AEN26648"></a><h2>Name</h2>app -- Application functions implementation for GnuTLS.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-GCRYPT-APP.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>int</font> <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPINIT">xmlSecGCryptAppInit</a> (const <font>char</font> *config);
-<font>int</font> <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPSHUTDOWN">xmlSecGCryptAppShutdown</a> (void);
-<font>int</font> <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPDEFAULTKEYSMNGRINIT">xmlSecGCryptAppDefaultKeysMngrInit</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);
-<font>int</font> <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPDEFAULTKEYSMNGRADOPTKEY">xmlSecGCryptAppDefaultKeysMngrAdoptKey</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPDEFAULTKEYSMNGRLOAD">xmlSecGCryptAppDefaultKeysMngrLoad</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *uri);
-<font>int</font> <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPDEFAULTKEYSMNGRSAVE">xmlSecGCryptAppDefaultKeysMngrSave</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPKEYSMNGRCERTLOAD">xmlSecGCryptAppKeysMngrCertLoad</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPKEYSMNGRCERTLOADMEMORY">xmlSecGCryptAppKeysMngrCertLoadMemory</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPKEYLOAD">xmlSecGCryptAppKeyLoad</a> (const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPKEYLOADMEMORY">xmlSecGCryptAppKeyLoadMemory</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPPKCS12LOAD">xmlSecGCryptAppPkcs12Load</a> (const <font>char</font> *filename,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPPKCS12LOADMEMORY">xmlSecGCryptAppPkcs12LoadMemory</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<font>int</font> <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPKEYCERTLOAD">xmlSecGCryptAppKeyCertLoad</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<font>int</font> <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPKEYCERTLOADMEMORY">xmlSecGCryptAppKeyCertLoadMemory</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<font>void</font>* <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPGETDEFAULTPWDCALLBACK">xmlSecGCryptAppGetDefaultPwdCallback</a>
- (void);</pre>
+<a name="AEN35994"></a><h2>Name</h2>app -- Application functions implementation for GnuTLS.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-GCRYPT-APP.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN35999"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPINIT">xmlSecGCryptAppInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPSHUTDOWN">xmlSecGCryptAppShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPDEFAULTKEYSMNGRINIT">xmlSecGCryptAppDefaultKeysMngrInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPDEFAULTKEYSMNGRADOPTKEY">xmlSecGCryptAppDefaultKeysMngrAdoptKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPDEFAULTKEYSMNGRLOAD">xmlSecGCryptAppDefaultKeysMngrLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPDEFAULTKEYSMNGRSAVE">xmlSecGCryptAppDefaultKeysMngrSave</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPKEYSMNGRCERTLOAD">xmlSecGCryptAppKeysMngrCertLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPKEYSMNGRCERTLOADMEMORY">xmlSecGCryptAppKeysMngrCertLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPKEYLOAD">xmlSecGCryptAppKeyLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPKEYLOADMEMORY">xmlSecGCryptAppKeyLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPPKCS12LOAD">xmlSecGCryptAppPkcs12Load</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPPKCS12LOADMEMORY">xmlSecGCryptAppPkcs12LoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPKEYCERTLOAD">xmlSecGCryptAppKeyCertLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPKEYCERTLOADMEMORY">xmlSecGCryptAppKeyCertLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">void</span></font> *</td>
+<td>
+<a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPGETDEFAULTPWDCALLBACK">xmlSecGCryptAppGetDefaultPwdCallback</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-GCRYPT-APP.DESCRIPTION"></a><h2>Description</h2>
<p>Application functions implementation for GCrypt.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-GCRYPT-APP.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-GCRYPT-APP.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPINIT"></a><h3>xmlSecGCryptAppInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptAppInit (const <font>char</font> *config);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptAppInit (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *config</code>);</pre>
<p>General crypto engine initialization. This function is used
by XMLSec command line utility and called before
-<code class="PARAMETER">xmlSecInit</code> function.</p>
+<code class="PARAMETER">xmlSecInit</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN36124"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN36126"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>config</p></td>
+<td><p>the path to GCrypt configuration (unused).</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26745"><span style="white-space: nowrap"><code class="PARAMETER">config</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the path to GCrypt configuration (unused).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26750"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN36135"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPSHUTDOWN"></a><h3>xmlSecGCryptAppShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptAppShutdown (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptAppShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>General crypto engine shutdown. This function is used
by XMLSec command line utility and called after
-<code class="PARAMETER">xmlSecShutdown</code> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26765"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<code class="PARAMETER">xmlSecShutdown</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN36149"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPDEFAULTKEYSMNGRINIT"></a><h3>xmlSecGCryptAppDefaultKeysMngrInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptAppDefaultKeysMngrInit (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);</pre>
-<p>Initializes <code class="PARAMETER">mngr</code> with simple keys store <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREID"><span class="TYPE">xmlSecSimpleKeysStoreId</span></a>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptAppDefaultKeysMngrInit (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>);</pre>
+<p>Initializes <code class="PARAMETER">mngr</code>
+ with simple keys store <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREID"><span class="TYPE">xmlSecSimpleKeysStoreId</span></a>
and a default GCrypt crypto key data stores.</p>
+<div class="REFSECT3">
+<a name="AEN36166"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN36168"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26783"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26788"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN36177"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPDEFAULTKEYSMNGRADOPTKEY"></a><h3>xmlSecGCryptAppDefaultKeysMngrAdoptKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptAppDefaultKeysMngrAdoptKey
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Adds <code class="PARAMETER">key</code> to the keys manager <code class="PARAMETER">mngr</code> created with <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecGCryptAppDefaultKeysMngrInit</span></a>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptAppDefaultKeysMngrAdoptKey
+ (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Adds <code class="PARAMETER">key</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+ created with <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecGCryptAppDefaultKeysMngrInit</span></a>
function.</p>
+<div class="REFSECT3">
+<a name="AEN36198"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN36200"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26808"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26813"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26818"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN36215"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPDEFAULTKEYSMNGRLOAD"></a><h3>xmlSecGCryptAppDefaultKeysMngrLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptAppDefaultKeysMngrLoad (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *uri);</pre>
-<p>Loads XML keys file from <code class="PARAMETER">uri</code> to the keys manager <code class="PARAMETER">mngr</code> created
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptAppDefaultKeysMngrLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *uri</code>);</pre>
+<p>Loads XML keys file from <code class="PARAMETER">uri</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+ created
with <a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecGCryptAppDefaultKeysMngrInit</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN36236"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN36238"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26838"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26843"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the uri.</p></td>
+<td><p>uri</p></td>
+<td><p>the uri.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26848"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN36253"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPDEFAULTKEYSMNGRSAVE"></a><h3>xmlSecGCryptAppDefaultKeysMngrSave ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptAppDefaultKeysMngrSave (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Saves keys from <code class="PARAMETER">mngr</code> to XML keys file.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptAppDefaultKeysMngrSave (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Saves keys from <code class="PARAMETER">mngr</code>
+ to XML keys file.</p>
+<div class="REFSECT3">
+<a name="AEN36274"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN36276"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26866"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26871"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination filename.</p></td>
+<td><p>filename</p></td>
+<td><p>the destination filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26876"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the type of keys to save (public/private/symmetric).</p></td>
+<td><p>type</p></td>
+<td><p>the type of keys to save (public/private/symmetric).</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26881"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN36297"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPKEYSMNGRCERTLOAD"></a><h3>xmlSecGCryptAppKeysMngrCertLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptAppKeysMngrCertLoad (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Reads cert from <code class="PARAMETER">filename</code> and adds to the list of trusted or known
-untrusted certs in <code class="PARAMETER">store</code> (not implemented yet).</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptAppKeysMngrCertLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Reads cert from <code class="PARAMETER">filename</code>
+ and adds to the list of trusted or known
+untrusted certs in <code class="PARAMETER">store</code>
+ (not implemented yet).</p>
+<div class="REFSECT3">
+<a name="AEN36322"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN36324"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26901"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26906"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file.</p></td>
+<td><p>filename</p></td>
+<td><p>the certificate file.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26911"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26916"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag that indicates is the certificate in <code class="PARAMETER">filename</code>
- trusted or not.</p></td>
+<td><p>type</p></td>
+<td><p>the flag that indicates is the certificate in <code class="PARAMETER">filename</code>
+trusted or not.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26922"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN36352"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPKEYSMNGRCERTLOADMEMORY"></a><h3>xmlSecGCryptAppKeysMngrCertLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptAppKeysMngrCertLoadMemory
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Reads cert from binary buffer <code class="PARAMETER">data</code> and adds to the list of trusted or known
-untrusted certs in <code class="PARAMETER">store</code> (not implemented yet).</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptAppKeysMngrCertLoadMemory (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Reads cert from binary buffer <code class="PARAMETER">data</code>
+ and adds to the list of trusted or known
+untrusted certs in <code class="PARAMETER">store</code>
+ (not implemented yet).</p>
+<div class="REFSECT3">
+<a name="AEN36380"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN36382"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26943"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26948"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data.</p></td>
+<td><p>data</p></td>
+<td><p>the certificate binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26953"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data size.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the certificate binary data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26958"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26963"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag that indicates is the certificate trusted or not.</p></td>
+<td><p>type</p></td>
+<td><p>the flag that indicates is the certificate trusted or not.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26968"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN36415"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPKEYLOAD"></a><h3>xmlSecGCryptAppKeyLoad ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecGCryptAppKeyLoad (const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecGCryptAppKeyLoad (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key from the a file.</p>
+<div class="REFSECT3">
+<a name="AEN36441"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26987"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key filename.</p></td>
-</tr>
+<a name="AEN36443"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26992"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file format.</p></td>
+<td><p>filename</p></td>
+<td><p>the key filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26997"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file password.</p></td>
+<td><p>format</p></td>
+<td><p>the key file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27002"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the key file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27007"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the key password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27012"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN36476"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPKEYLOADMEMORY"></a><h3>xmlSecGCryptAppKeyLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecGCryptAppKeyLoadMemory (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecGCryptAppKeyLoadMemory (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key from the memory buffer.</p>
+<div class="REFSECT3">
+<a name="AEN36505"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27032"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the binary key data.</p></td>
-</tr>
+<a name="AEN36507"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27037"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of binary key.</p></td>
+<td><p>data</p></td>
+<td><p>the binary key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27042"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file format.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the size of binary key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27047"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file password.</p></td>
+<td><p>format</p></td>
+<td><p>the key file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27052"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the key file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27057"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the key password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27062"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN36546"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPPKCS12LOAD"></a><h3>xmlSecGCryptAppPkcs12Load ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecGCryptAppPkcs12Load (const <font>char</font> *filename,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecGCryptAppPkcs12Load (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key and all associated certificates from the PKCS12 file
(not implemented yet).
For uniformity, call xmlSecGCryptAppKeyLoad instead of this function. Pass
in format=xmlSecKeyDataFormatPkcs12.</p>
+<div class="REFSECT3">
+<a name="AEN36569"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27080"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 key filename.</p></td>
-</tr>
+<a name="AEN36571"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27085"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 file password.</p></td>
+<td><p>filename</p></td>
+<td><p>the PKCS12 key filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27090"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the PKCS12 file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27095"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27100"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN36598"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPPKCS12LOADMEMORY"></a><h3>xmlSecGCryptAppPkcs12LoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecGCryptAppPkcs12LoadMemory (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecGCryptAppPkcs12LoadMemory (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key and all associated certificates from the PKCS12 data in memory buffer.
For uniformity, call xmlSecGCryptAppKeyLoadMemory instead of this function. Pass
in format=xmlSecKeyDataFormatPkcs12 (not implemented yet).</p>
+<div class="REFSECT3">
+<a name="AEN36624"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27119"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 binary data.</p></td>
-</tr>
+<a name="AEN36626"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27124"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 binary data size.</p></td>
+<td><p>data</p></td>
+<td><p>the PKCS12 binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27129"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 file password.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the PKCS12 binary data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27134"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the PKCS12 file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27139"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27144"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN36659"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPKEYCERTLOAD"></a><h3>xmlSecGCryptAppKeyCertLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptAppKeyCertLoad (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
-<p>Reads the certificate from $<code class="PARAMETER">filename</code> and adds it to key
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptAppKeyCertLoad (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
+<p>Reads the certificate from $<code class="PARAMETER">filename</code>
+ and adds it to key
(not implemented yet).</p>
+<div class="REFSECT3">
+<a name="AEN36680"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27162"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
+<a name="AEN36682"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27167"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate filename.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27172"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>filename</p></td>
+<td><p>the certificate filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27177"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN36703"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPKEYCERTLOADMEMORY"></a><h3>xmlSecGCryptAppKeyCertLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptAppKeyCertLoadMemory (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptAppKeyCertLoadMemory (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
<p>Reads the certificate from memory buffer and adds it to key (not implemented yet).</p>
+<div class="REFSECT3">
+<a name="AEN36726"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27195"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
+<a name="AEN36728"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27200"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27205"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data size.</p></td>
+<td><p>data</p></td>
+<td><p>the certificate binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27210"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the certificate binary data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27215"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN36755"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTAPPGETDEFAULTPWDCALLBACK"></a><h3>xmlSecGCryptAppGetDefaultPwdCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font>* xmlSecGCryptAppGetDefaultPwdCallback
- (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font> *
+xmlSecGCryptAppGetDefaultPwdCallback (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Gets default password callback.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27229"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> default password callback.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN36768"></a><h4>Returns</h4>
+<p> default password callback.</p>
+</div>
+</div>
</div>
+<div class="REFSECT1">
+<a name="XMLSEC-GCRYPT-APP.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<p></p>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-gcrypt-ref.html"><b><<< XML Security Library for GCrypt API Reference.</b></a></td>
diff --git a/docs/api/xmlsec-gcrypt-crypto.html b/docs/api/xmlsec-gcrypt-crypto.html
index 96a4dad..2870b2d 100644
--- a/docs/api/xmlsec-gcrypt-crypto.html
+++ b/docs/api/xmlsec-gcrypt-crypto.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for GCrypt API Reference." href="xmlsec-gcrypt-ref.html">
<link rel="PREVIOUS" title="app" href="xmlsec-gcrypt-app.html">
<link rel="NEXT" title="XML Security Library for NSS API Reference." href="xmlsec-nss-ref.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,1127 +101,1560 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-gcrypt-app.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-gcrypt-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-gcrypt-app.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-gcrypt-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-nss-ref.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-nss-ref.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-GCRYPT-CRYPTO"></a>crypto</h1>
<div class="REFNAMEDIV">
-<a name="AEN27239"></a><h2>Name</h2>crypto -- Crypto transforms implementation for GCrypt.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-GCRYPT-CRYPTO.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>xmlSecCryptoDLFunctionsPtr</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECCRYPTOGETFUNCTIONS-GCRYPT">xmlSecCryptoGetFunctions_gcrypt</a>
- (void);
-<font>int</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTINIT">xmlSecGCryptInit</a> (void);
-<font>int</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTSHUTDOWN">xmlSecGCryptShutdown</a> (void);
-<font>int</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYSMNGRINIT">xmlSecGCryptKeysMngrInit</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);
-<font>int</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTGENERATERANDOM">xmlSecGCryptGenerateRandom</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATAAESID">xmlSecGCryptKeyDataAesId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATAAESGETKLASS">xmlSecGCryptKeyDataAesGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATAAESSET">xmlSecGCryptKeyDataAesSet</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMAES128CBCID">xmlSecGCryptTransformAes128CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMAES128CBCGETKLASS">xmlSecGCryptTransformAes128CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMAES192CBCID">xmlSecGCryptTransformAes192CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMAES192CBCGETKLASS">xmlSecGCryptTransformAes192CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMAES256CBCID">xmlSecGCryptTransformAes256CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMAES256CBCGETKLASS">xmlSecGCryptTransformAes256CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWAES128ID">xmlSecGCryptTransformKWAes128Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWAES128GETKLASS">xmlSecGCryptTransformKWAes128GetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWAES192ID">xmlSecGCryptTransformKWAes192Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWAES192GETKLASS">xmlSecGCryptTransformKWAes192GetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWAES256ID">xmlSecGCryptTransformKWAes256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWAES256GETKLASS">xmlSecGCryptTransformKWAes256GetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADESID">xmlSecGCryptKeyDataDesId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADESGETKLASS">xmlSecGCryptKeyDataDesGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADESSET">xmlSecGCryptKeyDataDesSet</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMDES3CBCID">xmlSecGCryptTransformDes3CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMDES3CBCGETKLASS">xmlSecGCryptTransformDes3CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWDES3ID">xmlSecGCryptTransformKWDes3Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWDES3GETKLASS">xmlSecGCryptTransformKWDes3GetKlass</a> (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADSAID">xmlSecGCryptKeyDataDsaId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADSAGETKLASS">xmlSecGCryptKeyDataDsaGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADSAADOPTKEY">xmlSecGCryptKeyDataDsaAdoptKey</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gcry_sexp_t</font> dsa_key);
-<font>int</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADSAADOPTKEYPAIR">xmlSecGCryptKeyDataDsaAdoptKeyPair</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gcry_sexp_t</font> pub_key,
- <font>gcry_sexp_t</font> priv_key);
-<font>gcry_sexp_t</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADSAGETPUBLICKEY">xmlSecGCryptKeyDataDsaGetPublicKey</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>gcry_sexp_t</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADSAGETPRIVATEKEY">xmlSecGCryptKeyDataDsaGetPrivateKey</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMDSASHA1ID">xmlSecGCryptTransformDsaSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMDSASHA1GETKLASS">xmlSecGCryptTransformDsaSha1GetKlass</a>
- (void);
-<font>int</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTHMACGETMINOUTPUTLENGTH">xmlSecGCryptHmacGetMinOutputLength</a> (void);
-<font>void</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTHMACSETMINOUTPUTLENGTH">xmlSecGCryptHmacSetMinOutputLength</a> (<font>int</font> min_length);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATAHMACID">xmlSecGCryptKeyDataHmacId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATAHMACGETKLASS">xmlSecGCryptKeyDataHmacGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATAHMACSET">xmlSecGCryptKeyDataHmacSet</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACMD5ID">xmlSecGCryptTransformHmacMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACMD5GETKLASS">xmlSecGCryptTransformHmacMd5GetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACRIPEMD160ID">xmlSecGCryptTransformHmacRipemd160Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACRIPEMD160GETKLASS">xmlSecGCryptTransformHmacRipemd160GetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA1ID">xmlSecGCryptTransformHmacSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA1GETKLASS">xmlSecGCryptTransformHmacSha1GetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA256ID">xmlSecGCryptTransformHmacSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA256GETKLASS">xmlSecGCryptTransformHmacSha256GetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA384ID">xmlSecGCryptTransformHmacSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA384GETKLASS">xmlSecGCryptTransformHmacSha384GetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA512ID">xmlSecGCryptTransformHmacSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA512GETKLASS">xmlSecGCryptTransformHmacSha512GetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATARSAID">xmlSecGCryptKeyDataRsaId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATARSAGETKLASS">xmlSecGCryptKeyDataRsaGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATARSAADOPTKEY">xmlSecGCryptKeyDataRsaAdoptKey</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gcry_sexp_t</font> rsa_key);
-<font>int</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATARSAADOPTKEYPAIR">xmlSecGCryptKeyDataRsaAdoptKeyPair</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gcry_sexp_t</font> pub_key,
- <font>gcry_sexp_t</font> priv_key);
-<font>gcry_sexp_t</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATARSAGETPUBLICKEY">xmlSecGCryptKeyDataRsaGetPublicKey</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>gcry_sexp_t</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATARSAGETPRIVATEKEY">xmlSecGCryptKeyDataRsaGetPrivateKey</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSAMD5ID">xmlSecGCryptTransformRsaMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSAMD5GETKLASS">xmlSecGCryptTransformRsaMd5GetKlass</a> (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSARIPEMD160ID">xmlSecGCryptTransformRsaRipemd160Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSARIPEMD160GETKLASS">xmlSecGCryptTransformRsaRipemd160GetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA1ID">xmlSecGCryptTransformRsaSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA1GETKLASS">xmlSecGCryptTransformRsaSha1GetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA256ID">xmlSecGCryptTransformRsaSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA256GETKLASS">xmlSecGCryptTransformRsaSha256GetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA384ID">xmlSecGCryptTransformRsaSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA384GETKLASS">xmlSecGCryptTransformRsaSha384GetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA512ID">xmlSecGCryptTransformRsaSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA512GETKLASS">xmlSecGCryptTransformRsaSha512GetKlass</a>
- (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA1ID">xmlSecGCryptTransformSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA1GETKLASS">xmlSecGCryptTransformSha1GetKlass</a> (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA256ID">xmlSecGCryptTransformSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA256GETKLASS">xmlSecGCryptTransformSha256GetKlass</a> (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA384ID">xmlSecGCryptTransformSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA384GETKLASS">xmlSecGCryptTransformSha384GetKlass</a> (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA512ID">xmlSecGCryptTransformSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA512GETKLASS">xmlSecGCryptTransformSha512GetKlass</a> (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMMD5ID">xmlSecGCryptTransformMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMMD5GETKLASS">xmlSecGCryptTransformMd5GetKlass</a> (void);
-#define <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRIPEMD160ID">xmlSecGCryptTransformRipemd160Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRIPEMD160GETKLASS">xmlSecGCryptTransformRipemd160GetKlass</a>
- (void);</pre>
+<a name="AEN36779"></a><h2>Name</h2>crypto -- Crypto transforms implementation for GCrypt.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-GCRYPT-CRYPTO.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN36784"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecCryptoDLFunctionsPtr</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECCRYPTOGETFUNCTIONS-GCRYPT">xmlSecCryptoGetFunctions_gcrypt</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTINIT">xmlSecGCryptInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTSHUTDOWN">xmlSecGCryptShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYSMNGRINIT">xmlSecGCryptKeysMngrInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTGENERATERANDOM">xmlSecGCryptGenerateRandom</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATAAESGETKLASS">xmlSecGCryptKeyDataAesGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATAAESSET">xmlSecGCryptKeyDataAesSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMAES128CBCGETKLASS">xmlSecGCryptTransformAes128CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMAES192CBCGETKLASS">xmlSecGCryptTransformAes192CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMAES256CBCGETKLASS">xmlSecGCryptTransformAes256CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWAES128GETKLASS">xmlSecGCryptTransformKWAes128GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWAES192GETKLASS">xmlSecGCryptTransformKWAes192GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWAES256GETKLASS">xmlSecGCryptTransformKWAes256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADESGETKLASS">xmlSecGCryptKeyDataDesGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADESSET">xmlSecGCryptKeyDataDesSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMDES3CBCGETKLASS">xmlSecGCryptTransformDes3CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWDES3GETKLASS">xmlSecGCryptTransformKWDes3GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADSAGETKLASS">xmlSecGCryptKeyDataDsaGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADSAADOPTKEY">xmlSecGCryptKeyDataDsaAdoptKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADSAADOPTKEYPAIR">xmlSecGCryptKeyDataDsaAdoptKeyPair</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">gcry_sexp_t</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADSAGETPUBLICKEY">xmlSecGCryptKeyDataDsaGetPublicKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">gcry_sexp_t</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADSAGETPRIVATEKEY">xmlSecGCryptKeyDataDsaGetPrivateKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMDSASHA1GETKLASS">xmlSecGCryptTransformDsaSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTHMACGETMINOUTPUTLENGTH">xmlSecGCryptHmacGetMinOutputLength</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTHMACSETMINOUTPUTLENGTH">xmlSecGCryptHmacSetMinOutputLength</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATAHMACGETKLASS">xmlSecGCryptKeyDataHmacGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATAHMACSET">xmlSecGCryptKeyDataHmacSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACMD5GETKLASS">xmlSecGCryptTransformHmacMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACRIPEMD160GETKLASS">xmlSecGCryptTransformHmacRipemd160GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA1GETKLASS">xmlSecGCryptTransformHmacSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA256GETKLASS">xmlSecGCryptTransformHmacSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA384GETKLASS">xmlSecGCryptTransformHmacSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA512GETKLASS">xmlSecGCryptTransformHmacSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATARSAGETKLASS">xmlSecGCryptKeyDataRsaGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATARSAADOPTKEY">xmlSecGCryptKeyDataRsaAdoptKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATARSAADOPTKEYPAIR">xmlSecGCryptKeyDataRsaAdoptKeyPair</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">gcry_sexp_t</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATARSAGETPUBLICKEY">xmlSecGCryptKeyDataRsaGetPublicKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">gcry_sexp_t</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATARSAGETPRIVATEKEY">xmlSecGCryptKeyDataRsaGetPrivateKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSAMD5GETKLASS">xmlSecGCryptTransformRsaMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSARIPEMD160GETKLASS">xmlSecGCryptTransformRsaRipemd160GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA1GETKLASS">xmlSecGCryptTransformRsaSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA256GETKLASS">xmlSecGCryptTransformRsaSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA384GETKLASS">xmlSecGCryptTransformRsaSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA512GETKLASS">xmlSecGCryptTransformRsaSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA1GETKLASS">xmlSecGCryptTransformSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA256GETKLASS">xmlSecGCryptTransformSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA384GETKLASS">xmlSecGCryptTransformSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA512GETKLASS">xmlSecGCryptTransformSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMMD5GETKLASS">xmlSecGCryptTransformMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRIPEMD160GETKLASS">xmlSecGCryptTransformRipemd160GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-GCRYPT-CRYPTO.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN37139"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATAAESID">xmlSecGCryptKeyDataAesId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMAES128CBCID">xmlSecGCryptTransformAes128CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMAES192CBCID">xmlSecGCryptTransformAes192CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMAES256CBCID">xmlSecGCryptTransformAes256CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWAES128ID">xmlSecGCryptTransformKWAes128Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWAES192ID">xmlSecGCryptTransformKWAes192Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWAES256ID">xmlSecGCryptTransformKWAes256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADESID">xmlSecGCryptKeyDataDesId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMDES3CBCID">xmlSecGCryptTransformDes3CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMKWDES3ID">xmlSecGCryptTransformKWDes3Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATADSAID">xmlSecGCryptKeyDataDsaId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMDSASHA1ID">xmlSecGCryptTransformDsaSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATAHMACID">xmlSecGCryptKeyDataHmacId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACMD5ID">xmlSecGCryptTransformHmacMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACRIPEMD160ID">xmlSecGCryptTransformHmacRipemd160Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA1ID">xmlSecGCryptTransformHmacSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA256ID">xmlSecGCryptTransformHmacSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA384ID">xmlSecGCryptTransformHmacSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMHMACSHA512ID">xmlSecGCryptTransformHmacSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTKEYDATARSAID">xmlSecGCryptKeyDataRsaId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSAMD5ID">xmlSecGCryptTransformRsaMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSARIPEMD160ID">xmlSecGCryptTransformRsaRipemd160Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA1ID">xmlSecGCryptTransformRsaSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA256ID">xmlSecGCryptTransformRsaSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA384ID">xmlSecGCryptTransformRsaSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRSASHA512ID">xmlSecGCryptTransformRsaSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA1ID">xmlSecGCryptTransformSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA256ID">xmlSecGCryptTransformSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA384ID">xmlSecGCryptTransformSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA512ID">xmlSecGCryptTransformSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMMD5ID">xmlSecGCryptTransformMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMRIPEMD160ID">xmlSecGCryptTransformRipemd160Id</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-GCRYPT-CRYPTO.DESCRIPTION"></a><h2>Description</h2>
<p>Crypto transforms implementation for GCrypt.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-GCRYPT-CRYPTO.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-GCRYPT-CRYPTO.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECCRYPTOGETFUNCTIONS-GCRYPT"></a><h3>xmlSecCryptoGetFunctions_gcrypt ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecCryptoDLFunctionsPtr</font> xmlSecCryptoGetFunctions_gcrypt
- (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecCryptoDLFunctionsPtr</span></font>
+xmlSecCryptoGetFunctions_gcrypt (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Gets the pointer to xmlsec-gcrypt functions table.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27418"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the xmlsec-gcrypt functions table or NULL if an error occurs.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN37285"></a><h4>Returns</h4>
+<p> the xmlsec-gcrypt functions table or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTINIT"></a><h3>xmlSecGCryptInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptInit (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptInit (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>XMLSec library specific crypto engine initialization.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27432"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN37298"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTSHUTDOWN"></a><h3>xmlSecGCryptShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptShutdown (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>XMLSec library specific crypto engine shutdown.</p>
+<div class="REFSECT3">
+<a name="AEN37311"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTKEYSMNGRINIT"></a><h3>xmlSecGCryptKeysMngrInit ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptKeysMngrInit (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>);</pre>
+<p>Adds GCrypt specific key data stores in keys manager.</p>
+<div class="REFSECT3">
+<a name="AEN37325"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN37327"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN37336"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTGENERATERANDOM"></a><h3>xmlSecGCryptGenerateRandom ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptGenerateRandom (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buffer</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
+<p>Generates <code class="PARAMETER">size</code>
+ random bytes and puts result in <code class="PARAMETER">buffer</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN37355"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN37357"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>buffer</p></td>
+<td><p>the destination buffer.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>size</p></td>
+<td><p>the numer of bytes to generate.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN37372"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTKEYDATAAESGETKLASS"></a><h3>xmlSecGCryptKeyDataAesGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecGCryptKeyDataAesGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN37385"></a><h4>Returns</h4>
+<p> AES key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTKEYDATAAESSET"></a><h3>xmlSecGCryptKeyDataAesSet ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptKeyDataAesSet (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
+<p>Sets the value of AES key data.</p>
+<div class="REFSECT3">
+<a name="AEN37405"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN37407"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to AES key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buf</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the key value size (in bytes).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27446"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN37428"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMAES128CBCGETKLASS"></a><h3>xmlSecGCryptTransformAes128CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformAes128CbcGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 128 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37441"></a><h4>Returns</h4>
+<p> pointer to AES 128 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMAES192CBCGETKLASS"></a><h3>xmlSecGCryptTransformAes192CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformAes192CbcGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 192 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37454"></a><h4>Returns</h4>
+<p> pointer to AES 192 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMAES256CBCGETKLASS"></a><h3>xmlSecGCryptTransformAes256CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformAes256CbcGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 256 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37467"></a><h4>Returns</h4>
+<p> pointer to AES 256 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMKWAES128GETKLASS"></a><h3>xmlSecGCryptTransformKWAes128GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformKWAes128GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-128 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37480"></a><h4>Returns</h4>
+<p> AES-128 kew wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMKWAES192GETKLASS"></a><h3>xmlSecGCryptTransformKWAes192GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformKWAes192GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-192 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37493"></a><h4>Returns</h4>
+<p> AES-192 kew wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMKWAES256GETKLASS"></a><h3>xmlSecGCryptTransformKWAes256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformKWAes256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-256 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37506"></a><h4>Returns</h4>
+<p> AES-256 kew wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTKEYDATADESGETKLASS"></a><h3>xmlSecGCryptKeyDataDesGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecGCryptKeyDataDesGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DES key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN37519"></a><h4>Returns</h4>
+<p> DES key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTKEYDATADESSET"></a><h3>xmlSecGCryptKeyDataDesSet ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptKeyDataDesSet (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
+<p>Sets the value of DES key data.</p>
+<div class="REFSECT3">
+<a name="AEN37539"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN37541"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to DES key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buf</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the key value size (in bytes).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN37562"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMDES3CBCGETKLASS"></a><h3>xmlSecGCryptTransformDes3CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformDes3CbcGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Triple DES CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37575"></a><h4>Returns</h4>
+<p> pointer to Triple DES encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMKWDES3GETKLASS"></a><h3>xmlSecGCryptTransformKWDes3GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformKWDes3GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The Triple DES key wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37588"></a><h4>Returns</h4>
+<p> Triple DES key wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTKEYDATADSAGETKLASS"></a><h3>xmlSecGCryptKeyDataDsaGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecGCryptKeyDataDsaGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DSA key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN37601"></a><h4>Returns</h4>
+<p> pointer to DSA key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTKEYDATADSAADOPTKEY"></a><h3>xmlSecGCryptKeyDataDsaAdoptKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptKeyDataDsaAdoptKey (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">gcry_sexp_t</span></font> dsa_key</code>);</pre>
+<p>Sets the value of DSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN37618"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN37620"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to DSA key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dsa_key</p></td>
+<td><p>the pointer to GCrypt DSA key.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN37635"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTKEYDATADSAADOPTKEYPAIR"></a><h3>xmlSecGCryptKeyDataDsaAdoptKeyPair ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptKeyDataDsaAdoptKeyPair (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">gcry_sexp_t</span></font> pub_key</code>,
+ <code class="PARAMETER"><font><span class="TYPE">gcry_sexp_t</span></font> priv_key</code>);</pre>
+<p>Sets the value of DSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN37655"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN37657"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to DSA key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pub_key</p></td>
+<td><p>the pointer to GCrypt DSA pub key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>priv_key</p></td>
+<td><p>the pointer to GCrypt DSA priv key.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN37678"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTKEYDATADSAGETPUBLICKEY"></a><h3>xmlSecGCryptKeyDataDsaGetPublicKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">gcry_sexp_t</span></font>
+xmlSecGCryptKeyDataDsaGetPublicKey (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the GCrypt DSA public key from DSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN37692"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN37694"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to DSA key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN37703"></a><h4>Returns</h4>
+<p> pointer to GCrypt public DSA key or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTKEYDATADSAGETPRIVATEKEY"></a><h3>xmlSecGCryptKeyDataDsaGetPrivateKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">gcry_sexp_t</span></font>
+xmlSecGCryptKeyDataDsaGetPrivateKey (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the GCrypt DSA private key from DSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN37717"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN37719"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to DSA key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN37728"></a><h4>Returns</h4>
+<p> pointer to GCrypt private DSA key or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMDSASHA1GETKLASS"></a><h3>xmlSecGCryptTransformDsaSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformDsaSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DSA-SHA1 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37741"></a><h4>Returns</h4>
+<p> DSA-SHA1 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTHMACGETMINOUTPUTLENGTH"></a><h3>xmlSecGCryptHmacGetMinOutputLength ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptHmacGetMinOutputLength (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Gets the value of min HMAC length.</p>
+<div class="REFSECT3">
+<a name="AEN37754"></a><h4>Returns</h4>
+<p> the min HMAC output length</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTHMACSETMINOUTPUTLENGTH"></a><h3>xmlSecGCryptHmacSetMinOutputLength ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecGCryptHmacSetMinOutputLength (<code class="PARAMETER"><font><span class="TYPE">int</span></font> min_length</code>);</pre>
+<p>Sets the min HMAC output length</p>
+<div class="REFSECT3">
+<a name="AEN37768"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN37770"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>min_length</p></td>
+<td><p>the new min length</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTKEYDATAHMACGETKLASS"></a><h3>xmlSecGCryptKeyDataHmacGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecGCryptKeyDataHmacGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN37789"></a><h4>Returns</h4>
+<p> HMAC key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTKEYDATAHMACSET"></a><h3>xmlSecGCryptKeyDataHmacSet ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptKeyDataHmacSet (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
+<p>Sets the value of HMAC key data.</p>
+<div class="REFSECT3">
+<a name="AEN37809"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN37811"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to HMAC key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buf</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the key value size (in bytes).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN37832"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMHMACMD5GETKLASS"></a><h3>xmlSecGCryptTransformHmacMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformHmacMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-MD5 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37845"></a><h4>Returns</h4>
+<p> the HMAC-MD5 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMHMACRIPEMD160GETKLASS"></a><h3>xmlSecGCryptTransformHmacRipemd160GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformHmacRipemd160GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-RIPEMD160 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37858"></a><h4>Returns</h4>
+<p> the HMAC-RIPEMD160 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMHMACSHA1GETKLASS"></a><h3>xmlSecGCryptTransformHmacSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformHmacSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA1 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37871"></a><h4>Returns</h4>
+<p> the HMAC-SHA1 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMHMACSHA256GETKLASS"></a><h3>xmlSecGCryptTransformHmacSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformHmacSha256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA256 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37884"></a><h4>Returns</h4>
+<p> the HMAC-SHA256 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMHMACSHA384GETKLASS"></a><h3>xmlSecGCryptTransformHmacSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformHmacSha384GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA384 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37897"></a><h4>Returns</h4>
+<p> the HMAC-SHA384 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMHMACSHA512GETKLASS"></a><h3>xmlSecGCryptTransformHmacSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformHmacSha512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA512 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN37910"></a><h4>Returns</h4>
+<p> the HMAC-SHA512 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYSMNGRINIT"></a><h3>xmlSecGCryptKeysMngrInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptKeysMngrInit (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);</pre>
-<p>Adds GCrypt specific key data stores in keys manager.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27461"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27466"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECGCRYPTKEYDATARSAGETKLASS"></a><h3>xmlSecGCryptKeyDataRsaGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecGCryptKeyDataRsaGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The GCrypt RSA key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN37923"></a><h4>Returns</h4>
+<p> pointer to GCrypt RSA key data klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTGENERATERANDOM"></a><h3>xmlSecGCryptGenerateRandom ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptGenerateRandom (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
-<p>Generates <code class="PARAMETER">size</code> random bytes and puts result in <code class="PARAMETER">buffer</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27484"><span style="white-space: nowrap"><code class="PARAMETER">buffer</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination buffer.</p></td>
-</tr>
+<a name="XMLSECGCRYPTKEYDATARSAADOPTKEY"></a><h3>xmlSecGCryptKeyDataRsaAdoptKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptKeyDataRsaAdoptKey (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">gcry_sexp_t</span></font> rsa_key</code>);</pre>
+<p>Sets the value of RSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN37940"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN37942"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27489"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the numer of bytes to generate.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to RSA key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27494"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>rsa_key</p></td>
+<td><p>the pointer to GCrypt RSA key.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATAAESID"></a><h3>xmlSecGCryptKeyDataAesId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGCryptKeyDataAesId</pre>
-<p>The AES key data klass.</p>
+</tbody>
+</table>
<p></p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATAAESGETKLASS"></a><h3>xmlSecGCryptKeyDataAesGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecGCryptKeyDataAesGetKlass (void);</pre>
-<p>The AES key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27515"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES key data klass.</p></td>
-</tr></tbody></table>
+</div>
+<div class="REFSECT3">
+<a name="AEN37957"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATAAESSET"></a><h3>xmlSecGCryptKeyDataAesSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptKeyDataAesSet (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
-<p>Sets the value of AES key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27532"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to AES key data.</p></td>
-</tr>
+<a name="XMLSECGCRYPTKEYDATARSAADOPTKEYPAIR"></a><h3>xmlSecGCryptKeyDataRsaAdoptKeyPair ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGCryptKeyDataRsaAdoptKeyPair (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">gcry_sexp_t</span></font> pub_key</code>,
+ <code class="PARAMETER"><font><span class="TYPE">gcry_sexp_t</span></font> priv_key</code>);</pre>
+<p>Sets the value of RSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN37977"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN37979"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27537"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to RSA key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27542"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value size (in bytes).</p></td>
+<td><p>pub_key</p></td>
+<td><p>the pointer to GCrypt RSA pub key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27547"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>priv_key</p></td>
+<td><p>the pointer to GCrypt RSA priv key.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMAES128CBCID"></a><h3>xmlSecGCryptTransformAes128CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformAes128CbcId</pre>
-<p>The AES128 CBC cipher transform klass.</p>
+</tbody>
+</table>
<p></p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMAES128CBCGETKLASS"></a><h3>xmlSecGCryptTransformAes128CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformAes128CbcGetKlass
- (void);</pre>
-<p>AES 128 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27568"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 128 CBC encryption transform.</p></td>
-</tr></tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMAES192CBCID"></a><h3>xmlSecGCryptTransformAes192CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformAes192CbcId</pre>
-<p>The AES192 CBC cipher transform klass.</p>
-<p></p>
+<div class="REFSECT3">
+<a name="AEN38000"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMAES192CBCGETKLASS"></a><h3>xmlSecGCryptTransformAes192CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformAes192CbcGetKlass
- (void);</pre>
-<p>AES 192 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27589"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 192 CBC encryption transform.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMAES256CBCID"></a><h3>xmlSecGCryptTransformAes256CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformAes256CbcId</pre>
-<p>The AES256 CBC cipher transform klass.</p>
+<a name="XMLSECGCRYPTKEYDATARSAGETPUBLICKEY"></a><h3>xmlSecGCryptKeyDataRsaGetPublicKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">gcry_sexp_t</span></font>
+xmlSecGCryptKeyDataRsaGetPublicKey (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the GCrypt RSA public key from RSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN38014"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN38016"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to RSA key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMAES256CBCGETKLASS"></a><h3>xmlSecGCryptTransformAes256CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformAes256CbcGetKlass
- (void);</pre>
-<p>AES 256 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27610"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 256 CBC encryption transform.</p></td>
-</tr></tbody></table>
+</div>
+<div class="REFSECT3">
+<a name="AEN38025"></a><h4>Returns</h4>
+<p> pointer to GCrypt public RSA key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMKWAES128ID"></a><h3>xmlSecGCryptTransformKWAes128Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformKWAes128Id</pre>
-<p>The AES 128 key wrap transform klass.</p>
+<a name="XMLSECGCRYPTKEYDATARSAGETPRIVATEKEY"></a><h3>xmlSecGCryptKeyDataRsaGetPrivateKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">gcry_sexp_t</span></font>
+xmlSecGCryptKeyDataRsaGetPrivateKey (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the GCrypt RSA private key from RSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN38039"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN38041"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to RSA key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN38050"></a><h4>Returns</h4>
+<p> pointer to GCrypt private RSA key or NULL if an error occurs.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMKWAES128GETKLASS"></a><h3>xmlSecGCryptTransformKWAes128GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformKWAes128GetKlass
- (void);</pre>
-<p>The AES-128 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27631"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-128 kew wrapper transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMRSAMD5GETKLASS"></a><h3>xmlSecGCryptTransformRsaMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformRsaMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-MD5 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN38063"></a><h4>Returns</h4>
+<p> RSA-MD5 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMKWAES192ID"></a><h3>xmlSecGCryptTransformKWAes192Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformKWAes192Id</pre>
-<p>The AES 192 key wrap transform klass.</p>
-<p></p>
+<a name="XMLSECGCRYPTTRANSFORMRSARIPEMD160GETKLASS"></a><h3>xmlSecGCryptTransformRsaRipemd160GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformRsaRipemd160GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-RIPEMD160 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN38076"></a><h4>Returns</h4>
+<p> RSA-RIPEMD160 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMKWAES192GETKLASS"></a><h3>xmlSecGCryptTransformKWAes192GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformKWAes192GetKlass
- (void);</pre>
-<p>The AES-192 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27652"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-192 kew wrapper transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMRSASHA1GETKLASS"></a><h3>xmlSecGCryptTransformRsaSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformRsaSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA1 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN38089"></a><h4>Returns</h4>
+<p> RSA-SHA1 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMKWAES256ID"></a><h3>xmlSecGCryptTransformKWAes256Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformKWAes256Id</pre>
-<p>The AES 256 key wrap transform klass.</p>
-<p></p>
+<a name="XMLSECGCRYPTTRANSFORMRSASHA256GETKLASS"></a><h3>xmlSecGCryptTransformRsaSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformRsaSha256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA256 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN38102"></a><h4>Returns</h4>
+<p> RSA-SHA256 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMKWAES256GETKLASS"></a><h3>xmlSecGCryptTransformKWAes256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformKWAes256GetKlass
- (void);</pre>
-<p>The AES-256 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27673"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-256 kew wrapper transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMRSASHA384GETKLASS"></a><h3>xmlSecGCryptTransformRsaSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformRsaSha384GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA384 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN38115"></a><h4>Returns</h4>
+<p> RSA-SHA384 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATADESID"></a><h3>xmlSecGCryptKeyDataDesId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGCryptKeyDataDesId</pre>
-<p>The DES key data klass.</p>
-<p></p>
+<a name="XMLSECGCRYPTTRANSFORMRSASHA512GETKLASS"></a><h3>xmlSecGCryptTransformRsaSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformRsaSha512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA512 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN38128"></a><h4>Returns</h4>
+<p> RSA-SHA512 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATADESGETKLASS"></a><h3>xmlSecGCryptKeyDataDesGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecGCryptKeyDataDesGetKlass (void);</pre>
-<p>The DES key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27694"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DES key data klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMSHA1GETKLASS"></a><h3>xmlSecGCryptTransformSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA-1 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN38141"></a><h4>Returns</h4>
+<p> pointer to SHA-1 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATADESSET"></a><h3>xmlSecGCryptKeyDataDesSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptKeyDataDesSet (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
-<p>Sets the value of DES key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27711"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to DES key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27716"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27721"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value size (in bytes).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27726"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMSHA256GETKLASS"></a><h3>xmlSecGCryptTransformSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformSha256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA256 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN38154"></a><h4>Returns</h4>
+<p> pointer to SHA256 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMDES3CBCID"></a><h3>xmlSecGCryptTransformDes3CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformDes3CbcId</pre>
-<p>The DES3 CBC cipher transform klass.</p>
-<p></p>
+<a name="XMLSECGCRYPTTRANSFORMSHA384GETKLASS"></a><h3>xmlSecGCryptTransformSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformSha384GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA384 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN38167"></a><h4>Returns</h4>
+<p> pointer to SHA384 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMDES3CBCGETKLASS"></a><h3>xmlSecGCryptTransformDes3CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformDes3CbcGetKlass
- (void);</pre>
-<p>Triple DES CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27747"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to Triple DES encryption transform.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMSHA512GETKLASS"></a><h3>xmlSecGCryptTransformSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformSha512GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA512 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN38180"></a><h4>Returns</h4>
+<p> pointer to SHA512 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMKWDES3ID"></a><h3>xmlSecGCryptTransformKWDes3Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformKWDes3Id</pre>
-<p>The DES3 KW transform klass.</p>
-<p></p>
+<a name="XMLSECGCRYPTTRANSFORMMD5GETKLASS"></a><h3>xmlSecGCryptTransformMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>MD5 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN38193"></a><h4>Returns</h4>
+<p> pointer to MD5 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMKWDES3GETKLASS"></a><h3>xmlSecGCryptTransformKWDes3GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformKWDes3GetKlass (void);</pre>
-<p>The Triple DES key wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27768"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> Triple DES key wrapper transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMRIPEMD160GETKLASS"></a><h3>xmlSecGCryptTransformRipemd160GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGCryptTransformRipemd160GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>RIPEMD160 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN38206"></a><h4>Returns</h4>
+<p> pointer to RIPEMD160 digest transform klass.</p>
</div>
-<hr>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-GCRYPT-CRYPTO.OTHER_DETAILS"></a><h2>Types and Values</h2>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATADSAID"></a><h3>xmlSecGCryptKeyDataDsaId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGCryptKeyDataDsaId</pre>
-<p>The DSA key klass.</p>
-<p></p>
+<a name="XMLSECGCRYPTKEYDATAAESID"></a><h3>xmlSecGCryptKeyDataAesId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGCryptKeyDataAesId</pre>
+<p>The AES key data klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATADSAGETKLASS"></a><h3>xmlSecGCryptKeyDataDsaGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecGCryptKeyDataDsaGetKlass (void);</pre>
-<p>The DSA key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27789"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to DSA key data klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMAES128CBCID"></a><h3>xmlSecGCryptTransformAes128CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformAes128CbcId</pre>
+<p>The AES128 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATADSAADOPTKEY"></a><h3>xmlSecGCryptKeyDataDsaAdoptKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptKeyDataDsaAdoptKey (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gcry_sexp_t</font> dsa_key);</pre>
-<p>Sets the value of DSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27805"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to DSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27810"><span style="white-space: nowrap"><code class="PARAMETER">dsa_key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to GCrypt DSA key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27815"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMAES192CBCID"></a><h3>xmlSecGCryptTransformAes192CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformAes192CbcId</pre>
+<p>The AES192 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATADSAADOPTKEYPAIR"></a><h3>xmlSecGCryptKeyDataDsaAdoptKeyPair ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptKeyDataDsaAdoptKeyPair (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gcry_sexp_t</font> pub_key,
- <font>gcry_sexp_t</font> priv_key);</pre>
-<p>Sets the value of DSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27832"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to DSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27837"><span style="white-space: nowrap"><code class="PARAMETER">pub_key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to GCrypt DSA pub key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27842"><span style="white-space: nowrap"><code class="PARAMETER">priv_key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to GCrypt DSA priv key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27847"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMAES256CBCID"></a><h3>xmlSecGCryptTransformAes256CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformAes256CbcId</pre>
+<p>The AES256 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATADSAGETPUBLICKEY"></a><h3>xmlSecGCryptKeyDataDsaGetPublicKey ()</h3>
-<pre class="PROGRAMLISTING"><font>gcry_sexp_t</font> xmlSecGCryptKeyDataDsaGetPublicKey (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the GCrypt DSA public key from DSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27862"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to DSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27867"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to GCrypt public DSA key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMKWAES128ID"></a><h3>xmlSecGCryptTransformKWAes128Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformKWAes128Id</pre>
+<p>The AES 128 key wrap transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATADSAGETPRIVATEKEY"></a><h3>xmlSecGCryptKeyDataDsaGetPrivateKey ()</h3>
-<pre class="PROGRAMLISTING"><font>gcry_sexp_t</font> xmlSecGCryptKeyDataDsaGetPrivateKey (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the GCrypt DSA private key from DSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27882"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to DSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27887"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to GCrypt private DSA key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMKWAES192ID"></a><h3>xmlSecGCryptTransformKWAes192Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformKWAes192Id</pre>
+<p>The AES 192 key wrap transform klass.</p>
</div>
<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMDSASHA1ID"></a><h3>xmlSecGCryptTransformDsaSha1Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformDsaSha1Id</pre>
-<p>The DSA SHA1 signature transform klass.</p>
-<p></p>
+<div class="REFSECT2">
+<a name="XMLSECGCRYPTTRANSFORMKWAES256ID"></a><h3>xmlSecGCryptTransformKWAes256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformKWAes256Id</pre>
+<p>The AES 256 key wrap transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMDSASHA1GETKLASS"></a><h3>xmlSecGCryptTransformDsaSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformDsaSha1GetKlass
- (void);</pre>
-<p>The DSA-SHA1 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27908"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DSA-SHA1 signature transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGCRYPTKEYDATADESID"></a><h3>xmlSecGCryptKeyDataDesId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGCryptKeyDataDesId</pre>
+<p>The DES key data klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTHMACGETMINOUTPUTLENGTH"></a><h3>xmlSecGCryptHmacGetMinOutputLength ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptHmacGetMinOutputLength (void);</pre>
-<p>Gets the value of min HMAC length.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27922"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the min HMAC output length</p></td>
-</tr></tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMDES3CBCID"></a><h3>xmlSecGCryptTransformDes3CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformDes3CbcId</pre>
+<p>The DES3 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTHMACSETMINOUTPUTLENGTH"></a><h3>xmlSecGCryptHmacSetMinOutputLength ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecGCryptHmacSetMinOutputLength (<font>int</font> min_length);</pre>
-<p>Sets the min HMAC output length</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27937"><span style="white-space: nowrap"><code class="PARAMETER">min_length</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new min length</p></td>
-</tr></tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMKWDES3ID"></a><h3>xmlSecGCryptTransformKWDes3Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformKWDes3Id</pre>
+<p>The DES3 KW transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATAHMACID"></a><h3>xmlSecGCryptKeyDataHmacId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGCryptKeyDataHmacId</pre>
-<p>The HMAC key klass.</p>
-<p></p>
+<a name="XMLSECGCRYPTKEYDATADSAID"></a><h3>xmlSecGCryptKeyDataDsaId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGCryptKeyDataDsaId</pre>
+<p>The DSA key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATAHMACGETKLASS"></a><h3>xmlSecGCryptKeyDataHmacGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecGCryptKeyDataHmacGetKlass (void);</pre>
-<p>The HMAC key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN27958"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> HMAC key data klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGCRYPTTRANSFORMDSASHA1ID"></a><h3>xmlSecGCryptTransformDsaSha1Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformDsaSha1Id</pre>
+<p>The DSA SHA1 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATAHMACSET"></a><h3>xmlSecGCryptKeyDataHmacSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptKeyDataHmacSet (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
-<p>Sets the value of HMAC key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27975"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to HMAC key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27980"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27985"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value size (in bytes).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN27990"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECGCRYPTKEYDATAHMACID"></a><h3>xmlSecGCryptKeyDataHmacId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGCryptKeyDataHmacId</pre>
+<p>The HMAC key klass.</p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMHMACMD5ID"></a><h3>xmlSecGCryptTransformHmacMd5Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformHmacMd5Id</pre>
<p>The HMAC with MD5 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMHMACMD5GETKLASS"></a><h3>xmlSecGCryptTransformHmacMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformHmacMd5GetKlass
- (void);</pre>
-<p>The HMAC-MD5 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28011"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-MD5 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMHMACRIPEMD160ID"></a><h3>xmlSecGCryptTransformHmacRipemd160Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformHmacRipemd160Id</pre>
<p>The HMAC with RipeMD160 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMHMACRIPEMD160GETKLASS"></a><h3>xmlSecGCryptTransformHmacRipemd160GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformHmacRipemd160GetKlass
- (void);</pre>
-<p>The HMAC-RIPEMD160 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28032"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-RIPEMD160 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMHMACSHA1ID"></a><h3>xmlSecGCryptTransformHmacSha1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformHmacSha1Id</pre>
<p>The HMAC with SHA1 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMHMACSHA1GETKLASS"></a><h3>xmlSecGCryptTransformHmacSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformHmacSha1GetKlass
- (void);</pre>
-<p>The HMAC-SHA1 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28053"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA1 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMHMACSHA256ID"></a><h3>xmlSecGCryptTransformHmacSha256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformHmacSha256Id</pre>
<p>The HMAC with SHA256 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMHMACSHA256GETKLASS"></a><h3>xmlSecGCryptTransformHmacSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformHmacSha256GetKlass
- (void);</pre>
-<p>The HMAC-SHA256 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28074"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA256 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMHMACSHA384ID"></a><h3>xmlSecGCryptTransformHmacSha384Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformHmacSha384Id</pre>
<p>The HMAC with SHA384 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMHMACSHA384GETKLASS"></a><h3>xmlSecGCryptTransformHmacSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformHmacSha384GetKlass
- (void);</pre>
-<p>The HMAC-SHA384 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28095"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA384 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMHMACSHA512ID"></a><h3>xmlSecGCryptTransformHmacSha512Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformHmacSha512Id</pre>
<p>The HMAC with SHA512 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMHMACSHA512GETKLASS"></a><h3>xmlSecGCryptTransformHmacSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformHmacSha512GetKlass
- (void);</pre>
-<p>The HMAC-SHA512 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28116"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA512 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTKEYDATARSAID"></a><h3>xmlSecGCryptKeyDataRsaId</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptKeyDataRsaId</pre>
<p>The RSA key klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATARSAGETKLASS"></a><h3>xmlSecGCryptKeyDataRsaGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecGCryptKeyDataRsaGetKlass (void);</pre>
-<p>The GCrypt RSA key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28137"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to GCrypt RSA key data klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATARSAADOPTKEY"></a><h3>xmlSecGCryptKeyDataRsaAdoptKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptKeyDataRsaAdoptKey (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gcry_sexp_t</font> rsa_key);</pre>
-<p>Sets the value of RSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28153"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to RSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28158"><span style="white-space: nowrap"><code class="PARAMETER">rsa_key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to GCrypt RSA key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28163"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATARSAADOPTKEYPAIR"></a><h3>xmlSecGCryptKeyDataRsaAdoptKeyPair ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGCryptKeyDataRsaAdoptKeyPair (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gcry_sexp_t</font> pub_key,
- <font>gcry_sexp_t</font> priv_key);</pre>
-<p>Sets the value of RSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28180"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to RSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28185"><span style="white-space: nowrap"><code class="PARAMETER">pub_key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to GCrypt RSA pub key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28190"><span style="white-space: nowrap"><code class="PARAMETER">priv_key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to GCrypt RSA priv key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28195"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATARSAGETPUBLICKEY"></a><h3>xmlSecGCryptKeyDataRsaGetPublicKey ()</h3>
-<pre class="PROGRAMLISTING"><font>gcry_sexp_t</font> xmlSecGCryptKeyDataRsaGetPublicKey (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the GCrypt RSA public key from RSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28210"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to RSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28215"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to GCrypt public RSA key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTKEYDATARSAGETPRIVATEKEY"></a><h3>xmlSecGCryptKeyDataRsaGetPrivateKey ()</h3>
-<pre class="PROGRAMLISTING"><font>gcry_sexp_t</font> xmlSecGCryptKeyDataRsaGetPrivateKey (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the GCrypt RSA private key from RSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28230"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to RSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28235"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to GCrypt private RSA key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMRSAMD5ID"></a><h3>xmlSecGCryptTransformRsaMd5Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformRsaMd5Id</pre>
<p>The RSA-MD5 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMRSAMD5GETKLASS"></a><h3>xmlSecGCryptTransformRsaMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformRsaMd5GetKlass (void);</pre>
-<p>The RSA-MD5 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28256"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-MD5 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMRSARIPEMD160ID"></a><h3>xmlSecGCryptTransformRsaRipemd160Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformRsaRipemd160Id</pre>
<p>The RSA-RIPEMD160 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMRSARIPEMD160GETKLASS"></a><h3>xmlSecGCryptTransformRsaRipemd160GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformRsaRipemd160GetKlass
- (void);</pre>
-<p>The RSA-RIPEMD160 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28277"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-RIPEMD160 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMRSASHA1ID"></a><h3>xmlSecGCryptTransformRsaSha1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformRsaSha1Id</pre>
<p>The RSA-SHA1 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMRSASHA1GETKLASS"></a><h3>xmlSecGCryptTransformRsaSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformRsaSha1GetKlass
- (void);</pre>
-<p>The RSA-SHA1 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28298"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA1 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMRSASHA256ID"></a><h3>xmlSecGCryptTransformRsaSha256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformRsaSha256Id</pre>
<p>The RSA-SHA256 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMRSASHA256GETKLASS"></a><h3>xmlSecGCryptTransformRsaSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformRsaSha256GetKlass
- (void);</pre>
-<p>The RSA-SHA256 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28319"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA256 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMRSASHA384ID"></a><h3>xmlSecGCryptTransformRsaSha384Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformRsaSha384Id</pre>
<p>The RSA-SHA384 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMRSASHA384GETKLASS"></a><h3>xmlSecGCryptTransformRsaSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformRsaSha384GetKlass
- (void);</pre>
-<p>The RSA-SHA384 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28340"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA384 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMRSASHA512ID"></a><h3>xmlSecGCryptTransformRsaSha512Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformRsaSha512Id</pre>
<p>The RSA-SHA512 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMRSASHA512GETKLASS"></a><h3>xmlSecGCryptTransformRsaSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformRsaSha512GetKlass
- (void);</pre>
-<p>The RSA-SHA512 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28361"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA512 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMSHA1ID"></a><h3>xmlSecGCryptTransformSha1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformSha1Id</pre>
<p>The HMAC with SHA1 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMSHA1GETKLASS"></a><h3>xmlSecGCryptTransformSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformSha1GetKlass (void);</pre>
-<p>SHA-1 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28382"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA-1 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMSHA256ID"></a><h3>xmlSecGCryptTransformSha256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformSha256Id</pre>
<p>The HMAC with SHA256 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMSHA256GETKLASS"></a><h3>xmlSecGCryptTransformSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformSha256GetKlass (void);</pre>
-<p>SHA256 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28403"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA256 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMSHA384ID"></a><h3>xmlSecGCryptTransformSha384Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformSha384Id</pre>
<p>The HMAC with SHA384 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMSHA384GETKLASS"></a><h3>xmlSecGCryptTransformSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformSha384GetKlass (void);</pre>
-<p>SHA384 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28424"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA384 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMSHA512ID"></a><h3>xmlSecGCryptTransformSha512Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformSha512Id</pre>
<p>The HMAC with SHA512 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMSHA512GETKLASS"></a><h3>xmlSecGCryptTransformSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformSha512GetKlass (void);</pre>
-<p>SHA512 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28445"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA512 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMMD5ID"></a><h3>xmlSecGCryptTransformMd5Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformMd5Id</pre>
<p>The MD5 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMMD5GETKLASS"></a><h3>xmlSecGCryptTransformMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformMd5GetKlass (void);</pre>
-<p>MD5 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28466"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to MD5 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGCRYPTTRANSFORMRIPEMD160ID"></a><h3>xmlSecGCryptTransformRipemd160Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGCryptTransformRipemd160Id</pre>
<p>The RIPEMD160 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGCRYPTTRANSFORMRIPEMD160GETKLASS"></a><h3>xmlSecGCryptTransformRipemd160GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGCryptTransformRipemd160GetKlass
- (void);</pre>
-<p>RIPEMD160 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28487"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to RIPEMD160 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-gcrypt-ref.html b/docs/api/xmlsec-gcrypt-ref.html
index c6df28d..4f0a122 100644
--- a/docs/api/xmlsec-gcrypt-ref.html
+++ b/docs/api/xmlsec-gcrypt-ref.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library API Reference." href="xmlsec-reference.html">
<link rel="PREVIOUS" title="crypto" href="xmlsec-gnutls-crypto.html">
<link rel="NEXT" title="app" href="xmlsec-gcrypt-app.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-gnutls-crypto.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-reference.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-gnutls-crypto.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-gcrypt-app.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-gcrypt-app.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-gcrypt.sgml b/docs/api/xmlsec-gcrypt.sgml
deleted file mode 100644
index 5c33c60..0000000
--- a/docs/api/xmlsec-gcrypt.sgml
+++ /dev/null
@@ -1,15 +0,0 @@
-<!doctype book PUBLIC "-//DavenPort//DTD DocBook V3.0//EN" [
-<!ENTITY xmlsec-gcrypt-app SYSTEM "sgml/app.sgml">
-<!ENTITY xmlsec-gcrypt-crypto SYSTEM "sgml/crypto.sgml">
-]>
-<book id="index">
- <bookinfo>
- <title>[Insert name here] Reference Manual</title>
- </bookinfo>
-
- <chapter>
- <title>[Insert title here]</title>
- &xmlsec-gcrypt-app;
- &xmlsec-gcrypt-crypto;
- </chapter>
-</book>
diff --git a/docs/api/xmlsec-gnutls-app.html b/docs/api/xmlsec-gnutls-app.html
index c352fb6..b22d30b 100644
--- a/docs/api/xmlsec-gnutls-app.html
+++ b/docs/api/xmlsec-gnutls-app.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for GnuTLS API Reference." href="xmlsec-gnutls-ref.html">
<link rel="PREVIOUS" title="XML Security Library for GnuTLS API Reference." href="xmlsec-gnutls-ref.html">
<link rel="NEXT" title="crypto" href="xmlsec-gnutls-crypto.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,509 +101,757 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-gnutls-ref.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-gnutls-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-gnutls-ref.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-gnutls-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-gnutls-crypto.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-gnutls-crypto.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-GNUTLS-APP"></a>app</h1>
<div class="REFNAMEDIV">
-<a name="AEN24874"></a><h2>Name</h2>app -- Application functions implementation for GnuTLS.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-GNUTLS-APP.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>int</font> <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPINIT">xmlSecGnuTLSAppInit</a> (const <font>char</font> *config);
-<font>int</font> <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPSHUTDOWN">xmlSecGnuTLSAppShutdown</a> (void);
-<font>int</font> <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPDEFAULTKEYSMNGRINIT">xmlSecGnuTLSAppDefaultKeysMngrInit</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);
-<font>int</font> <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPDEFAULTKEYSMNGRADOPTKEY">xmlSecGnuTLSAppDefaultKeysMngrAdoptKey</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPDEFAULTKEYSMNGRLOAD">xmlSecGnuTLSAppDefaultKeysMngrLoad</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *uri);
-<font>int</font> <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPDEFAULTKEYSMNGRSAVE">xmlSecGnuTLSAppDefaultKeysMngrSave</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPKEYSMNGRCERTLOAD">xmlSecGnuTLSAppKeysMngrCertLoad</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPKEYSMNGRCERTLOADMEMORY">xmlSecGnuTLSAppKeysMngrCertLoadMemory</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPKEYLOAD">xmlSecGnuTLSAppKeyLoad</a> (const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPKEYLOADMEMORY">xmlSecGnuTLSAppKeyLoadMemory</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPPKCS12LOAD">xmlSecGnuTLSAppPkcs12Load</a> (const <font>char</font> *filename,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPPKCS12LOADMEMORY">xmlSecGnuTLSAppPkcs12LoadMemory</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<font>int</font> <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPKEYCERTLOAD">xmlSecGnuTLSAppKeyCertLoad</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<font>int</font> <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPKEYCERTLOADMEMORY">xmlSecGnuTLSAppKeyCertLoadMemory</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<font>void</font>* <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPGETDEFAULTPWDCALLBACK">xmlSecGnuTLSAppGetDefaultPwdCallback</a>
- (void);</pre>
+<a name="AEN33687"></a><h2>Name</h2>app -- Application functions implementation for GnuTLS.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-GNUTLS-APP.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN33692"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPINIT">xmlSecGnuTLSAppInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPSHUTDOWN">xmlSecGnuTLSAppShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPDEFAULTKEYSMNGRINIT">xmlSecGnuTLSAppDefaultKeysMngrInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPDEFAULTKEYSMNGRADOPTKEY">xmlSecGnuTLSAppDefaultKeysMngrAdoptKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPDEFAULTKEYSMNGRLOAD">xmlSecGnuTLSAppDefaultKeysMngrLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPDEFAULTKEYSMNGRSAVE">xmlSecGnuTLSAppDefaultKeysMngrSave</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPKEYSMNGRCERTLOAD">xmlSecGnuTLSAppKeysMngrCertLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPKEYSMNGRCERTLOADMEMORY">xmlSecGnuTLSAppKeysMngrCertLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPKEYLOAD">xmlSecGnuTLSAppKeyLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPKEYLOADMEMORY">xmlSecGnuTLSAppKeyLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPPKCS12LOAD">xmlSecGnuTLSAppPkcs12Load</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPPKCS12LOADMEMORY">xmlSecGnuTLSAppPkcs12LoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPKEYCERTLOAD">xmlSecGnuTLSAppKeyCertLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPKEYCERTLOADMEMORY">xmlSecGnuTLSAppKeyCertLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">void</span></font> *</td>
+<td>
+<a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPGETDEFAULTPWDCALLBACK">xmlSecGnuTLSAppGetDefaultPwdCallback</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-GNUTLS-APP.DESCRIPTION"></a><h2>Description</h2>
<p>Application functions implementation for GnuTLS.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-GNUTLS-APP.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-GNUTLS-APP.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPINIT"></a><h3>xmlSecGnuTLSAppInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSAppInit (const <font>char</font> *config);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSAppInit (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *config</code>);</pre>
<p>General crypto engine initialization. This function is used
by XMLSec command line utility and called before
-<code class="PARAMETER">xmlSecInit</code> function.</p>
+<code class="PARAMETER">xmlSecInit</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN33817"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN33819"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>config</p></td>
+<td><p>the path to GnuTLS configuration (unused).</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24971"><span style="white-space: nowrap"><code class="PARAMETER">config</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the path to GnuTLS configuration (unused).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24976"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33828"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPSHUTDOWN"></a><h3>xmlSecGnuTLSAppShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSAppShutdown (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSAppShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>General crypto engine shutdown. This function is used
by XMLSec command line utility and called after
-<code class="PARAMETER">xmlSecShutdown</code> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN24991"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<code class="PARAMETER">xmlSecShutdown</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN33842"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPDEFAULTKEYSMNGRINIT"></a><h3>xmlSecGnuTLSAppDefaultKeysMngrInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSAppDefaultKeysMngrInit (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);</pre>
-<p>Initializes <code class="PARAMETER">mngr</code> with simple keys store <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREID"><span class="TYPE">xmlSecSimpleKeysStoreId</span></a>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSAppDefaultKeysMngrInit (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>);</pre>
+<p>Initializes <code class="PARAMETER">mngr</code>
+ with simple keys store <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREID"><span class="TYPE">xmlSecSimpleKeysStoreId</span></a>
and a default GnuTLS crypto key data stores.</p>
+<div class="REFSECT3">
+<a name="AEN33859"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN33861"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25009"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25014"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33870"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPDEFAULTKEYSMNGRADOPTKEY"></a><h3>xmlSecGnuTLSAppDefaultKeysMngrAdoptKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSAppDefaultKeysMngrAdoptKey
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Adds <code class="PARAMETER">key</code> to the keys manager <code class="PARAMETER">mngr</code> created with <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecGnuTLSAppDefaultKeysMngrInit</span></a>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSAppDefaultKeysMngrAdoptKey
+ (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Adds <code class="PARAMETER">key</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+ created with <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecGnuTLSAppDefaultKeysMngrInit</span></a>
function.</p>
+<div class="REFSECT3">
+<a name="AEN33891"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN33893"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25034"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25039"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25044"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33908"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPDEFAULTKEYSMNGRLOAD"></a><h3>xmlSecGnuTLSAppDefaultKeysMngrLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSAppDefaultKeysMngrLoad (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *uri);</pre>
-<p>Loads XML keys file from <code class="PARAMETER">uri</code> to the keys manager <code class="PARAMETER">mngr</code> created
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSAppDefaultKeysMngrLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *uri</code>);</pre>
+<p>Loads XML keys file from <code class="PARAMETER">uri</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+ created
with <a href="xmlsec-gnutls-app.html#XMLSECGNUTLSAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecGnuTLSAppDefaultKeysMngrInit</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN33929"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN33931"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25064"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25069"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the uri.</p></td>
+<td><p>uri</p></td>
+<td><p>the uri.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25074"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33946"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPDEFAULTKEYSMNGRSAVE"></a><h3>xmlSecGnuTLSAppDefaultKeysMngrSave ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSAppDefaultKeysMngrSave (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Saves keys from <code class="PARAMETER">mngr</code> to XML keys file.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSAppDefaultKeysMngrSave (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Saves keys from <code class="PARAMETER">mngr</code>
+ to XML keys file.</p>
+<div class="REFSECT3">
+<a name="AEN33967"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN33969"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25092"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25097"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination filename.</p></td>
+<td><p>filename</p></td>
+<td><p>the destination filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25102"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the type of keys to save (public/private/symmetric).</p></td>
+<td><p>type</p></td>
+<td><p>the type of keys to save (public/private/symmetric).</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25107"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33990"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPKEYSMNGRCERTLOAD"></a><h3>xmlSecGnuTLSAppKeysMngrCertLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSAppKeysMngrCertLoad (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Reads cert from <code class="PARAMETER">filename</code> and adds to the list of trusted or known
-untrusted certs in <code class="PARAMETER">store</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSAppKeysMngrCertLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Reads cert from <code class="PARAMETER">filename</code>
+ and adds to the list of trusted or known
+untrusted certs in <code class="PARAMETER">store</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN34015"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN34017"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25127"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25132"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file.</p></td>
+<td><p>filename</p></td>
+<td><p>the certificate file.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25137"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25142"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag that indicates is the certificate in <code class="PARAMETER">filename</code>
- trusted or not.</p></td>
+<td><p>type</p></td>
+<td><p>the flag that indicates is the certificate in <code class="PARAMETER">filename</code>
+trusted or not.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25148"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN34045"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPKEYSMNGRCERTLOADMEMORY"></a><h3>xmlSecGnuTLSAppKeysMngrCertLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSAppKeysMngrCertLoadMemory
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Reads cert from binary buffer <code class="PARAMETER">data</code> and adds to the list of trusted or known
-untrusted certs in <code class="PARAMETER">store</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSAppKeysMngrCertLoadMemory (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Reads cert from binary buffer <code class="PARAMETER">data</code>
+ and adds to the list of trusted or known
+untrusted certs in <code class="PARAMETER">store</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN34073"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN34075"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25169"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25174"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data.</p></td>
+<td><p>data</p></td>
+<td><p>the certificate binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25179"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data size.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the certificate binary data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25184"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25189"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag that indicates is the certificate trusted or not.</p></td>
+<td><p>type</p></td>
+<td><p>the flag that indicates is the certificate trusted or not.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25194"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN34108"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPKEYLOAD"></a><h3>xmlSecGnuTLSAppKeyLoad ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecGnuTLSAppKeyLoad (const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecGnuTLSAppKeyLoad (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key from the a file.</p>
+<div class="REFSECT3">
+<a name="AEN34134"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25213"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key filename.</p></td>
-</tr>
+<a name="AEN34136"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25218"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file format.</p></td>
+<td><p>filename</p></td>
+<td><p>the key filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25223"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file password.</p></td>
+<td><p>format</p></td>
+<td><p>the key file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25228"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the key file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25233"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the key password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25238"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN34169"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPKEYLOADMEMORY"></a><h3>xmlSecGnuTLSAppKeyLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecGnuTLSAppKeyLoadMemory (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecGnuTLSAppKeyLoadMemory (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key from the memory buffer.</p>
+<div class="REFSECT3">
+<a name="AEN34198"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25258"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the binary key data.</p></td>
-</tr>
+<a name="AEN34200"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25263"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of binary key.</p></td>
+<td><p>data</p></td>
+<td><p>the binary key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25268"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file format.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the size of binary key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25273"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file password.</p></td>
+<td><p>format</p></td>
+<td><p>the key file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25278"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the key file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25283"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the key password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25288"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN34239"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPPKCS12LOAD"></a><h3>xmlSecGnuTLSAppPkcs12Load ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecGnuTLSAppPkcs12Load (const <font>char</font> *filename,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecGnuTLSAppPkcs12Load (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key and all associated certificates from the PKCS12 file.
For uniformity, call xmlSecGnuTLSAppKeyLoad instead of this function. Pass
in format=xmlSecKeyDataFormatPkcs12.</p>
+<div class="REFSECT3">
+<a name="AEN34262"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25306"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 key filename.</p></td>
-</tr>
+<a name="AEN34264"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25311"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 file password.</p></td>
+<td><p>filename</p></td>
+<td><p>the PKCS12 key filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25316"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the PKCS12 file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25321"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25326"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN34291"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPPKCS12LOADMEMORY"></a><h3>xmlSecGnuTLSAppPkcs12LoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecGnuTLSAppPkcs12LoadMemory (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecGnuTLSAppPkcs12LoadMemory (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key and all associated certificates from the PKCS12 data in memory buffer.
For uniformity, call xmlSecGnuTLSAppKeyLoadMemory instead of this function. Pass
in format=xmlSecKeyDataFormatPkcs12.</p>
+<div class="REFSECT3">
+<a name="AEN34317"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25345"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 binary data.</p></td>
-</tr>
+<a name="AEN34319"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25350"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 binary data size.</p></td>
+<td><p>data</p></td>
+<td><p>the PKCS12 binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25355"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 file password.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the PKCS12 binary data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25360"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the PKCS12 file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25365"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25370"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN34352"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPKEYCERTLOAD"></a><h3>xmlSecGnuTLSAppKeyCertLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSAppKeyCertLoad (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
-<p>Reads the certificate from $<code class="PARAMETER">filename</code> and adds it to key.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSAppKeyCertLoad (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
+<p>Reads the certificate from $<code class="PARAMETER">filename</code>
+ and adds it to key.</p>
+<div class="REFSECT3">
+<a name="AEN34373"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25388"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
+<a name="AEN34375"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25393"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate filename.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25398"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>filename</p></td>
+<td><p>the certificate filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25403"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN34396"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPKEYCERTLOADMEMORY"></a><h3>xmlSecGnuTLSAppKeyCertLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSAppKeyCertLoadMemory (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSAppKeyCertLoadMemory (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
<p>Reads the certificate from memory buffer and adds it to key.</p>
+<div class="REFSECT3">
+<a name="AEN34419"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25421"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
+<a name="AEN34421"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25426"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25431"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data size.</p></td>
+<td><p>data</p></td>
+<td><p>the certificate binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25436"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the certificate binary data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25441"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN34448"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSAPPGETDEFAULTPWDCALLBACK"></a><h3>xmlSecGnuTLSAppGetDefaultPwdCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font>* xmlSecGnuTLSAppGetDefaultPwdCallback
- (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font> *
+xmlSecGnuTLSAppGetDefaultPwdCallback (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Gets default password callback.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN25455"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> default password callback.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN34461"></a><h4>Returns</h4>
+<p> default password callback.</p>
+</div>
+</div>
</div>
+<div class="REFSECT1">
+<a name="XMLSEC-GNUTLS-APP.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<p></p>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-gnutls-ref.html"><b><<< XML Security Library for GnuTLS API Reference.</b></a></td>
diff --git a/docs/api/xmlsec-gnutls-crypto.html b/docs/api/xmlsec-gnutls-crypto.html
index a0a628b..4e0deb4 100644
--- a/docs/api/xmlsec-gnutls-crypto.html
+++ b/docs/api/xmlsec-gnutls-crypto.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for GnuTLS API Reference." href="xmlsec-gnutls-ref.html">
<link rel="PREVIOUS" title="app" href="xmlsec-gnutls-app.html">
<link rel="NEXT" title="XML Security Library for GCrypt API Reference." href="xmlsec-gcrypt-ref.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,1071 +101,1436 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-gnutls-app.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-gnutls-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-gnutls-app.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-gnutls-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-gcrypt-ref.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-gcrypt-ref.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-GNUTLS-CRYPTO"></a>crypto</h1>
<div class="REFNAMEDIV">
-<a name="AEN25465"></a><h2>Name</h2>crypto -- Crypto transforms implementation for GnuTLS.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-GNUTLS-CRYPTO.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>xmlSecCryptoDLFunctionsPtr</font> <a href="xmlsec-gnutls-crypto.html#XMLSECCRYPTOGETFUNCTIONS-GNUTLS">xmlSecCryptoGetFunctions_gnutls</a>
- (void);
-<font>int</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSINIT">xmlSecGnuTLSInit</a> (void);
-<font>int</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSSHUTDOWN">xmlSecGnuTLSShutdown</a> (void);
-<font>int</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYSMNGRINIT">xmlSecGnuTLSKeysMngrInit</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);
-<font>int</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSGENERATERANDOM">xmlSecGnuTLSGenerateRandom</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATAAESID">xmlSecGnuTLSKeyDataAesId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATAAESGETKLASS">xmlSecGnuTLSKeyDataAesGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATAAESSET">xmlSecGnuTLSKeyDataAesSet</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMAES128CBCID">xmlSecGnuTLSTransformAes128CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMAES128CBCGETKLASS">xmlSecGnuTLSTransformAes128CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMAES192CBCID">xmlSecGnuTLSTransformAes192CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMAES192CBCGETKLASS">xmlSecGnuTLSTransformAes192CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMAES256CBCID">xmlSecGnuTLSTransformAes256CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMAES256CBCGETKLASS">xmlSecGnuTLSTransformAes256CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWAES128ID">xmlSecGnuTLSTransformKWAes128Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWAES128GETKLASS">xmlSecGnuTLSTransformKWAes128GetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWAES192ID">xmlSecGnuTLSTransformKWAes192Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWAES192GETKLASS">xmlSecGnuTLSTransformKWAes192GetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWAES256ID">xmlSecGnuTLSTransformKWAes256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWAES256GETKLASS">xmlSecGnuTLSTransformKWAes256GetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATADESID">xmlSecGnuTLSKeyDataDesId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATADESGETKLASS">xmlSecGnuTLSKeyDataDesGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATADESSET">xmlSecGnuTLSKeyDataDesSet</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMDES3CBCID">xmlSecGnuTLSTransformDes3CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMDES3CBCGETKLASS">xmlSecGnuTLSTransformDes3CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWDES3ID">xmlSecGnuTLSTransformKWDes3Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWDES3GETKLASS">xmlSecGnuTLSTransformKWDes3GetKlass</a> (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATADSAID">xmlSecGnuTLSKeyDataDsaId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATADSAGETKLASS">xmlSecGnuTLSKeyDataDsaGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATADSAADOPTPRIVATEKEY">xmlSecGnuTLSKeyDataDsaAdoptPrivateKey</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gnutls_x509_privkey_t</font> dsa_key);
-<font>int</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATADSAADOPTPUBLICKEY">xmlSecGnuTLSKeyDataDsaAdoptPublicKey</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gnutls_datum_t</font> *p,
- <font>gnutls_datum_t</font> *q,
- <font>gnutls_datum_t</font> *g,
- <font>gnutls_datum_t</font> *y);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMDSASHA1ID">xmlSecGnuTLSTransformDsaSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMDSASHA1GETKLASS">xmlSecGnuTLSTransformDsaSha1GetKlass</a>
- (void);
-<font>int</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSHMACGETMINOUTPUTLENGTH">xmlSecGnuTLSHmacGetMinOutputLength</a> (void);
-<font>void</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSHMACSETMINOUTPUTLENGTH">xmlSecGnuTLSHmacSetMinOutputLength</a> (<font>int</font> min_length);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATAHMACID">xmlSecGnuTLSKeyDataHmacId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATAHMACGETKLASS">xmlSecGnuTLSKeyDataHmacGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATAHMACSET">xmlSecGnuTLSKeyDataHmacSet</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACMD5ID">xmlSecGnuTLSTransformHmacMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACMD5GETKLASS">xmlSecGnuTLSTransformHmacMd5GetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACRIPEMD160ID">xmlSecGnuTLSTransformHmacRipemd160Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACRIPEMD160GETKLASS">xmlSecGnuTLSTransformHmacRipemd160GetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA1ID">xmlSecGnuTLSTransformHmacSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA1GETKLASS">xmlSecGnuTLSTransformHmacSha1GetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA256ID">xmlSecGnuTLSTransformHmacSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA256GETKLASS">xmlSecGnuTLSTransformHmacSha256GetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA384ID">xmlSecGnuTLSTransformHmacSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA384GETKLASS">xmlSecGnuTLSTransformHmacSha384GetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA512ID">xmlSecGnuTLSTransformHmacSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA512GETKLASS">xmlSecGnuTLSTransformHmacSha512GetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATARSAID">xmlSecGnuTLSKeyDataRsaId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATARSAGETKLASS">xmlSecGnuTLSKeyDataRsaGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATARSAADOPTPRIVATEKEY">xmlSecGnuTLSKeyDataRsaAdoptPrivateKey</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gnutls_x509_privkey_t</font> rsa_key);
-<font>int</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATARSAADOPTPUBLICKEY">xmlSecGnuTLSKeyDataRsaAdoptPublicKey</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gnutls_datum_t</font> *m,
- <font>gnutls_datum_t</font> *e);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSAMD5ID">xmlSecGnuTLSTransformRsaMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSAMD5GETKLASS">xmlSecGnuTLSTransformRsaMd5GetKlass</a> (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSARIPEMD160ID">xmlSecGnuTLSTransformRsaRipemd160Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSARIPEMD160GETKLASS">xmlSecGnuTLSTransformRsaRipemd160GetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA1ID">xmlSecGnuTLSTransformRsaSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA1GETKLASS">xmlSecGnuTLSTransformRsaSha1GetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA256ID">xmlSecGnuTLSTransformRsaSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA256GETKLASS">xmlSecGnuTLSTransformRsaSha256GetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA384ID">xmlSecGnuTLSTransformRsaSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA384GETKLASS">xmlSecGnuTLSTransformRsaSha384GetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA512ID">xmlSecGnuTLSTransformRsaSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA512GETKLASS">xmlSecGnuTLSTransformRsaSha512GetKlass</a>
- (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA1ID">xmlSecGnuTLSTransformSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA1GETKLASS">xmlSecGnuTLSTransformSha1GetKlass</a> (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA256ID">xmlSecGnuTLSTransformSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA256GETKLASS">xmlSecGnuTLSTransformSha256GetKlass</a> (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA384ID">xmlSecGnuTLSTransformSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA384GETKLASS">xmlSecGnuTLSTransformSha384GetKlass</a> (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA512ID">xmlSecGnuTLSTransformSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA512GETKLASS">xmlSecGnuTLSTransformSha512GetKlass</a> (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMMD5ID">xmlSecGnuTLSTransformMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMMD5GETKLASS">xmlSecGnuTLSTransformMd5GetKlass</a> (void);
-#define <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRIPEMD160ID">xmlSecGnuTLSTransformRipemd160Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRIPEMD160GETKLASS">xmlSecGnuTLSTransformRipemd160GetKlass</a>
- (void);</pre>
+<a name="AEN34472"></a><h2>Name</h2>crypto -- Crypto transforms implementation for GnuTLS.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-GNUTLS-CRYPTO.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN34477"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecCryptoDLFunctionsPtr</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECCRYPTOGETFUNCTIONS-GNUTLS">xmlSecCryptoGetFunctions_gnutls</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSINIT">xmlSecGnuTLSInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSSHUTDOWN">xmlSecGnuTLSShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYSMNGRINIT">xmlSecGnuTLSKeysMngrInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSGENERATERANDOM">xmlSecGnuTLSGenerateRandom</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATAAESGETKLASS">xmlSecGnuTLSKeyDataAesGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATAAESSET">xmlSecGnuTLSKeyDataAesSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMAES128CBCGETKLASS">xmlSecGnuTLSTransformAes128CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMAES192CBCGETKLASS">xmlSecGnuTLSTransformAes192CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMAES256CBCGETKLASS">xmlSecGnuTLSTransformAes256CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWAES128GETKLASS">xmlSecGnuTLSTransformKWAes128GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWAES192GETKLASS">xmlSecGnuTLSTransformKWAes192GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWAES256GETKLASS">xmlSecGnuTLSTransformKWAes256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATADESGETKLASS">xmlSecGnuTLSKeyDataDesGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATADESSET">xmlSecGnuTLSKeyDataDesSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMDES3CBCGETKLASS">xmlSecGnuTLSTransformDes3CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWDES3GETKLASS">xmlSecGnuTLSTransformKWDes3GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATADSAGETKLASS">xmlSecGnuTLSKeyDataDsaGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATADSAADOPTPRIVATEKEY">xmlSecGnuTLSKeyDataDsaAdoptPrivateKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATADSAADOPTPUBLICKEY">xmlSecGnuTLSKeyDataDsaAdoptPublicKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMDSASHA1GETKLASS">xmlSecGnuTLSTransformDsaSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSHMACGETMINOUTPUTLENGTH">xmlSecGnuTLSHmacGetMinOutputLength</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSHMACSETMINOUTPUTLENGTH">xmlSecGnuTLSHmacSetMinOutputLength</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATAHMACGETKLASS">xmlSecGnuTLSKeyDataHmacGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATAHMACSET">xmlSecGnuTLSKeyDataHmacSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACMD5GETKLASS">xmlSecGnuTLSTransformHmacMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACRIPEMD160GETKLASS">xmlSecGnuTLSTransformHmacRipemd160GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA1GETKLASS">xmlSecGnuTLSTransformHmacSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA256GETKLASS">xmlSecGnuTLSTransformHmacSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA384GETKLASS">xmlSecGnuTLSTransformHmacSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA512GETKLASS">xmlSecGnuTLSTransformHmacSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATARSAGETKLASS">xmlSecGnuTLSKeyDataRsaGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATARSAADOPTPRIVATEKEY">xmlSecGnuTLSKeyDataRsaAdoptPrivateKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATARSAADOPTPUBLICKEY">xmlSecGnuTLSKeyDataRsaAdoptPublicKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSAMD5GETKLASS">xmlSecGnuTLSTransformRsaMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSARIPEMD160GETKLASS">xmlSecGnuTLSTransformRsaRipemd160GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA1GETKLASS">xmlSecGnuTLSTransformRsaSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA256GETKLASS">xmlSecGnuTLSTransformRsaSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA384GETKLASS">xmlSecGnuTLSTransformRsaSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA512GETKLASS">xmlSecGnuTLSTransformRsaSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA1GETKLASS">xmlSecGnuTLSTransformSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA256GETKLASS">xmlSecGnuTLSTransformSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA384GETKLASS">xmlSecGnuTLSTransformSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA512GETKLASS">xmlSecGnuTLSTransformSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMMD5GETKLASS">xmlSecGnuTLSTransformMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRIPEMD160GETKLASS">xmlSecGnuTLSTransformRipemd160GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-GNUTLS-CRYPTO.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN34804"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATAAESID">xmlSecGnuTLSKeyDataAesId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMAES128CBCID">xmlSecGnuTLSTransformAes128CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMAES192CBCID">xmlSecGnuTLSTransformAes192CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMAES256CBCID">xmlSecGnuTLSTransformAes256CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWAES128ID">xmlSecGnuTLSTransformKWAes128Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWAES192ID">xmlSecGnuTLSTransformKWAes192Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWAES256ID">xmlSecGnuTLSTransformKWAes256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATADESID">xmlSecGnuTLSKeyDataDesId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMDES3CBCID">xmlSecGnuTLSTransformDes3CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMKWDES3ID">xmlSecGnuTLSTransformKWDes3Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATADSAID">xmlSecGnuTLSKeyDataDsaId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMDSASHA1ID">xmlSecGnuTLSTransformDsaSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATAHMACID">xmlSecGnuTLSKeyDataHmacId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACMD5ID">xmlSecGnuTLSTransformHmacMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACRIPEMD160ID">xmlSecGnuTLSTransformHmacRipemd160Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA1ID">xmlSecGnuTLSTransformHmacSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA256ID">xmlSecGnuTLSTransformHmacSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA384ID">xmlSecGnuTLSTransformHmacSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMHMACSHA512ID">xmlSecGnuTLSTransformHmacSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSKEYDATARSAID">xmlSecGnuTLSKeyDataRsaId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSAMD5ID">xmlSecGnuTLSTransformRsaMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSARIPEMD160ID">xmlSecGnuTLSTransformRsaRipemd160Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA1ID">xmlSecGnuTLSTransformRsaSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA256ID">xmlSecGnuTLSTransformRsaSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA384ID">xmlSecGnuTLSTransformRsaSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRSASHA512ID">xmlSecGnuTLSTransformRsaSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA1ID">xmlSecGnuTLSTransformSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA256ID">xmlSecGnuTLSTransformSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA384ID">xmlSecGnuTLSTransformSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMSHA512ID">xmlSecGnuTLSTransformSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMMD5ID">xmlSecGnuTLSTransformMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-gnutls-crypto.html#XMLSECGNUTLSTRANSFORMRIPEMD160ID">xmlSecGnuTLSTransformRipemd160Id</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-GNUTLS-CRYPTO.DESCRIPTION"></a><h2>Description</h2>
<p>Crypto transforms implementation for GnuTLS.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-GNUTLS-CRYPTO.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-GNUTLS-CRYPTO.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECCRYPTOGETFUNCTIONS-GNUTLS"></a><h3>xmlSecCryptoGetFunctions_gnutls ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecCryptoDLFunctionsPtr</font> xmlSecCryptoGetFunctions_gnutls
- (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecCryptoDLFunctionsPtr</span></font>
+xmlSecCryptoGetFunctions_gnutls (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Gets the pointer to xmlsec-gnutls functions table.</p>
+<div class="REFSECT3">
+<a name="AEN34950"></a><h4>Returns</h4>
+<p> the xmlsec-gnutls functions table or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSINIT"></a><h3>xmlSecGnuTLSInit ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSInit (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>XMLSec library specific crypto engine initialization.</p>
+<div class="REFSECT3">
+<a name="AEN34963"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSSHUTDOWN"></a><h3>xmlSecGnuTLSShutdown ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>XMLSec library specific crypto engine shutdown.</p>
+<div class="REFSECT3">
+<a name="AEN34976"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSKEYSMNGRINIT"></a><h3>xmlSecGnuTLSKeysMngrInit ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSKeysMngrInit (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>);</pre>
+<p>Adds GnuTLS specific key data stores in keys manager.</p>
+<div class="REFSECT3">
+<a name="AEN34990"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN34992"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN35001"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSGENERATERANDOM"></a><h3>xmlSecGnuTLSGenerateRandom ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSGenerateRandom (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buffer</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
+<p>Generates <code class="PARAMETER">size</code>
+ random bytes and puts result in <code class="PARAMETER">buffer</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN35020"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN35022"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>buffer</p></td>
+<td><p>the destination buffer.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>size</p></td>
+<td><p>the numer of bytes to generate.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN35037"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSKEYDATAAESGETKLASS"></a><h3>xmlSecGnuTLSKeyDataAesGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecGnuTLSKeyDataAesGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN35050"></a><h4>Returns</h4>
+<p> AES key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSKEYDATAAESSET"></a><h3>xmlSecGnuTLSKeyDataAesSet ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSKeyDataAesSet (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
+<p>Sets the value of AES key data.</p>
+<div class="REFSECT3">
+<a name="AEN35070"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN35072"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to AES key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buf</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the key value size (in bytes).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN35093"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSTRANSFORMAES128CBCGETKLASS"></a><h3>xmlSecGnuTLSTransformAes128CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformAes128CbcGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 128 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35106"></a><h4>Returns</h4>
+<p> pointer to AES 128 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSTRANSFORMAES192CBCGETKLASS"></a><h3>xmlSecGnuTLSTransformAes192CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformAes192CbcGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 192 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35119"></a><h4>Returns</h4>
+<p> pointer to AES 192 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSTRANSFORMAES256CBCGETKLASS"></a><h3>xmlSecGnuTLSTransformAes256CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformAes256CbcGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 256 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35132"></a><h4>Returns</h4>
+<p> pointer to AES 256 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSTRANSFORMKWAES128GETKLASS"></a><h3>xmlSecGnuTLSTransformKWAes128GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformKWAes128GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-128 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35145"></a><h4>Returns</h4>
+<p> AES-128 kew wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSTRANSFORMKWAES192GETKLASS"></a><h3>xmlSecGnuTLSTransformKWAes192GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformKWAes192GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-192 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35158"></a><h4>Returns</h4>
+<p> AES-192 kew wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSTRANSFORMKWAES256GETKLASS"></a><h3>xmlSecGnuTLSTransformKWAes256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformKWAes256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-256 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35171"></a><h4>Returns</h4>
+<p> AES-256 kew wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSKEYDATADESGETKLASS"></a><h3>xmlSecGnuTLSKeyDataDesGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecGnuTLSKeyDataDesGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DES key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN35184"></a><h4>Returns</h4>
+<p> DES key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSKEYDATADESSET"></a><h3>xmlSecGnuTLSKeyDataDesSet ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSKeyDataDesSet (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
+<p>Sets the value of DES key data.</p>
+<div class="REFSECT3">
+<a name="AEN35204"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN35206"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to DES key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buf</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the key value size (in bytes).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN35227"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSTRANSFORMDES3CBCGETKLASS"></a><h3>xmlSecGnuTLSTransformDes3CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformDes3CbcGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Triple DES CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35240"></a><h4>Returns</h4>
+<p> pointer to Triple DES encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSTRANSFORMKWDES3GETKLASS"></a><h3>xmlSecGnuTLSTransformKWDes3GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformKWDes3GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The Triple DES key wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35253"></a><h4>Returns</h4>
+<p> Triple DES key wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSKEYDATADSAGETKLASS"></a><h3>xmlSecGnuTLSKeyDataDsaGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecGnuTLSKeyDataDsaGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DSA key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN35266"></a><h4>Returns</h4>
+<p> pointer to DSA key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSKEYDATADSAADOPTPRIVATEKEY"></a><h3>xmlSecGnuTLSKeyDataDsaAdoptPrivateKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSKeyDataDsaAdoptPrivateKey (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">gnutls_x509_privkey_t</span></font> dsa_key</code>);</pre>
+<p>Sets the value of DSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN35283"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN35285"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to DSA key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dsa_key</p></td>
+<td><p>the pointer to GnuTLS DSA private key.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN25634"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the xmlsec-gnutls functions table or NULL if an error occurs.</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN35300"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSKEYDATADSAADOPTPUBLICKEY"></a><h3>xmlSecGnuTLSKeyDataDsaAdoptPublicKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSKeyDataDsaAdoptPublicKey (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">gnutls_datum_t</span></font> *p</code>,
+ <code class="PARAMETER"><font><span class="TYPE">gnutls_datum_t</span></font> *q</code>,
+ <code class="PARAMETER"><font><span class="TYPE">gnutls_datum_t</span></font> *g</code>,
+ <code class="PARAMETER"><font><span class="TYPE">gnutls_datum_t</span></font> *y</code>);</pre>
+<p>Sets the value of DSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN35326"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN35328"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to DSA key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>p</p></td>
+<td><p>the pointer to p component of the DSA public key</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>q</p></td>
+<td><p>the pointer to q component of the DSA public key</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>g</p></td>
+<td><p>the pointer to g component of the DSA public key</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>y</p></td>
+<td><p>the pointer to y component of the DSA public key</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN35361"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSTRANSFORMDSASHA1GETKLASS"></a><h3>xmlSecGnuTLSTransformDsaSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformDsaSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DSA-SHA1 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35374"></a><h4>Returns</h4>
+<p> DSA-SHA1 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSINIT"></a><h3>xmlSecGnuTLSInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSInit (void);</pre>
-<p>XMLSec library specific crypto engine initialization.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN25648"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSHMACGETMINOUTPUTLENGTH"></a><h3>xmlSecGnuTLSHmacGetMinOutputLength ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSHmacGetMinOutputLength (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Gets the value of min HMAC length.</p>
+<div class="REFSECT3">
+<a name="AEN35387"></a><h4>Returns</h4>
+<p> the min HMAC output length</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSSHUTDOWN"></a><h3>xmlSecGnuTLSShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSShutdown (void);</pre>
-<p>XMLSec library specific crypto engine shutdown.</p>
-<p></p>
+<a name="XMLSECGNUTLSHMACSETMINOUTPUTLENGTH"></a><h3>xmlSecGnuTLSHmacSetMinOutputLength ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecGnuTLSHmacSetMinOutputLength (<code class="PARAMETER"><font><span class="TYPE">int</span></font> min_length</code>);</pre>
+<p>Sets the min HMAC output length</p>
+<div class="REFSECT3">
+<a name="AEN35401"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN35403"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>min_length</p></td>
+<td><p>the new min length</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN25662"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYSMNGRINIT"></a><h3>xmlSecGnuTLSKeysMngrInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSKeysMngrInit (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);</pre>
-<p>Adds GnuTLS specific key data stores in keys manager.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25677"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25682"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECGNUTLSKEYDATAHMACGETKLASS"></a><h3>xmlSecGnuTLSKeyDataHmacGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecGnuTLSKeyDataHmacGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN35422"></a><h4>Returns</h4>
+<p> HMAC key data klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSGENERATERANDOM"></a><h3>xmlSecGnuTLSGenerateRandom ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSGenerateRandom (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
-<p>Generates <code class="PARAMETER">size</code> random bytes and puts result in <code class="PARAMETER">buffer</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="XMLSECGNUTLSKEYDATAHMACSET"></a><h3>xmlSecGnuTLSKeyDataHmacSet ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSKeyDataHmacSet (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
+<p>Sets the value of HMAC key data.</p>
+<div class="REFSECT3">
+<a name="AEN35442"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN35444"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25700"><span style="white-space: nowrap"><code class="PARAMETER">buffer</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination buffer.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to HMAC key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25705"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the numer of bytes to generate.</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25710"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>bufSize</p></td>
+<td><p>the key value size (in bytes).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN35465"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATAAESID"></a><h3>xmlSecGnuTLSKeyDataAesId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGnuTLSKeyDataAesId</pre>
-<p>The AES key data klass.</p>
-<p></p>
+<a name="XMLSECGNUTLSTRANSFORMHMACMD5GETKLASS"></a><h3>xmlSecGnuTLSTransformHmacMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformHmacMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-MD5 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35478"></a><h4>Returns</h4>
+<p> the HMAC-MD5 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATAAESGETKLASS"></a><h3>xmlSecGnuTLSKeyDataAesGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecGnuTLSKeyDataAesGetKlass (void);</pre>
-<p>The AES key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN25731"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES key data klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMHMACRIPEMD160GETKLASS"></a><h3>xmlSecGnuTLSTransformHmacRipemd160GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformHmacRipemd160GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-RIPEMD160 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35491"></a><h4>Returns</h4>
+<p> the HMAC-RIPEMD160 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATAAESSET"></a><h3>xmlSecGnuTLSKeyDataAesSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSKeyDataAesSet (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
-<p>Sets the value of AES key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25748"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to AES key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25753"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25758"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value size (in bytes).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25763"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMHMACSHA1GETKLASS"></a><h3>xmlSecGnuTLSTransformHmacSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformHmacSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA1 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35504"></a><h4>Returns</h4>
+<p> the HMAC-SHA1 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMAES128CBCID"></a><h3>xmlSecGnuTLSTransformAes128CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformAes128CbcId</pre>
-<p>The AES128 CBC cipher transform klass.</p>
-<p></p>
+<a name="XMLSECGNUTLSTRANSFORMHMACSHA256GETKLASS"></a><h3>xmlSecGnuTLSTransformHmacSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformHmacSha256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA256 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35517"></a><h4>Returns</h4>
+<p> the HMAC-SHA256 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMAES128CBCGETKLASS"></a><h3>xmlSecGnuTLSTransformAes128CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformAes128CbcGetKlass
- (void);</pre>
-<p>AES 128 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN25784"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 128 CBC encryption transform.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMHMACSHA384GETKLASS"></a><h3>xmlSecGnuTLSTransformHmacSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformHmacSha384GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA384 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35530"></a><h4>Returns</h4>
+<p> the HMAC-SHA384 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMAES192CBCID"></a><h3>xmlSecGnuTLSTransformAes192CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformAes192CbcId</pre>
-<p>The AES192 CBC cipher transform klass.</p>
-<p></p>
+<a name="XMLSECGNUTLSTRANSFORMHMACSHA512GETKLASS"></a><h3>xmlSecGnuTLSTransformHmacSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformHmacSha512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA512 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35543"></a><h4>Returns</h4>
+<p> the HMAC-SHA512 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMAES192CBCGETKLASS"></a><h3>xmlSecGnuTLSTransformAes192CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformAes192CbcGetKlass
- (void);</pre>
-<p>AES 192 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN25805"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 192 CBC encryption transform.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSKEYDATARSAGETKLASS"></a><h3>xmlSecGnuTLSKeyDataRsaGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecGnuTLSKeyDataRsaGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The GnuTLS RSA key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN35556"></a><h4>Returns</h4>
+<p> pointer to GnuTLS RSA key data klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMAES256CBCID"></a><h3>xmlSecGnuTLSTransformAes256CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformAes256CbcId</pre>
-<p>The AES256 CBC cipher transform klass.</p>
+<a name="XMLSECGNUTLSKEYDATARSAADOPTPRIVATEKEY"></a><h3>xmlSecGnuTLSKeyDataRsaAdoptPrivateKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSKeyDataRsaAdoptPrivateKey (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">gnutls_x509_privkey_t</span></font> rsa_key</code>);</pre>
+<p>Sets the value of RSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN35573"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN35575"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to RSA key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>rsa_key</p></td>
+<td><p>the pointer to GnuTLS RSA private key.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN35590"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMAES256CBCGETKLASS"></a><h3>xmlSecGnuTLSTransformAes256CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformAes256CbcGetKlass
- (void);</pre>
-<p>AES 256 CBC encryption transform klass.</p>
-<p></p>
+<a name="XMLSECGNUTLSKEYDATARSAADOPTPUBLICKEY"></a><h3>xmlSecGnuTLSKeyDataRsaAdoptPublicKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGnuTLSKeyDataRsaAdoptPublicKey (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">gnutls_datum_t</span></font> *m</code>,
+ <code class="PARAMETER"><font><span class="TYPE">gnutls_datum_t</span></font> *e</code>);</pre>
+<p>Sets the value of RSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN35610"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN35612"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to RSA key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>m</p></td>
+<td><p>the pointer to m component of the RSA public key</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>e</p></td>
+<td><p>the pointer to e component of the RSA public key</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN25826"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 256 CBC encryption transform.</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN35633"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMKWAES128ID"></a><h3>xmlSecGnuTLSTransformKWAes128Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformKWAes128Id</pre>
-<p>The AES 128 key wrap transform klass.</p>
-<p></p>
+<a name="XMLSECGNUTLSTRANSFORMRSAMD5GETKLASS"></a><h3>xmlSecGnuTLSTransformRsaMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformRsaMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-MD5 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35646"></a><h4>Returns</h4>
+<p> RSA-MD5 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMKWAES128GETKLASS"></a><h3>xmlSecGnuTLSTransformKWAes128GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformKWAes128GetKlass
- (void);</pre>
-<p>The AES-128 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN25847"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-128 kew wrapper transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMRSARIPEMD160GETKLASS"></a><h3>xmlSecGnuTLSTransformRsaRipemd160GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformRsaRipemd160GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-RIPEMD160 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35659"></a><h4>Returns</h4>
+<p> RSA-RIPEMD160 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMKWAES192ID"></a><h3>xmlSecGnuTLSTransformKWAes192Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformKWAes192Id</pre>
-<p>The AES 192 key wrap transform klass.</p>
-<p></p>
+<a name="XMLSECGNUTLSTRANSFORMRSASHA1GETKLASS"></a><h3>xmlSecGnuTLSTransformRsaSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformRsaSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA1 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35672"></a><h4>Returns</h4>
+<p> RSA-SHA1 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMKWAES192GETKLASS"></a><h3>xmlSecGnuTLSTransformKWAes192GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformKWAes192GetKlass
- (void);</pre>
-<p>The AES-192 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN25868"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-192 kew wrapper transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMRSASHA256GETKLASS"></a><h3>xmlSecGnuTLSTransformRsaSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformRsaSha256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA256 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35685"></a><h4>Returns</h4>
+<p> RSA-SHA256 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMKWAES256ID"></a><h3>xmlSecGnuTLSTransformKWAes256Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformKWAes256Id</pre>
-<p>The AES 256 key wrap transform klass.</p>
-<p></p>
+<a name="XMLSECGNUTLSTRANSFORMRSASHA384GETKLASS"></a><h3>xmlSecGnuTLSTransformRsaSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformRsaSha384GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA384 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35698"></a><h4>Returns</h4>
+<p> RSA-SHA384 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMKWAES256GETKLASS"></a><h3>xmlSecGnuTLSTransformKWAes256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformKWAes256GetKlass
- (void);</pre>
-<p>The AES-256 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN25889"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-256 kew wrapper transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMRSASHA512GETKLASS"></a><h3>xmlSecGnuTLSTransformRsaSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformRsaSha512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA512 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35711"></a><h4>Returns</h4>
+<p> RSA-SHA512 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATADESID"></a><h3>xmlSecGnuTLSKeyDataDesId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGnuTLSKeyDataDesId</pre>
-<p>The DES key data klass.</p>
-<p></p>
+<a name="XMLSECGNUTLSTRANSFORMSHA1GETKLASS"></a><h3>xmlSecGnuTLSTransformSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA-1 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35724"></a><h4>Returns</h4>
+<p> pointer to SHA-1 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATADESGETKLASS"></a><h3>xmlSecGnuTLSKeyDataDesGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecGnuTLSKeyDataDesGetKlass (void);</pre>
-<p>The DES key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN25910"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DES key data klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMSHA256GETKLASS"></a><h3>xmlSecGnuTLSTransformSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformSha256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA256 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35737"></a><h4>Returns</h4>
+<p> pointer to SHA256 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATADESSET"></a><h3>xmlSecGnuTLSKeyDataDesSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSKeyDataDesSet (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
-<p>Sets the value of DES key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25927"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to DES key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25932"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25937"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value size (in bytes).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN25942"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMSHA384GETKLASS"></a><h3>xmlSecGnuTLSTransformSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformSha384GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA384 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35750"></a><h4>Returns</h4>
+<p> pointer to SHA384 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMDES3CBCID"></a><h3>xmlSecGnuTLSTransformDes3CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformDes3CbcId</pre>
-<p>The DES3 CBC cipher transform klass.</p>
-<p></p>
+<a name="XMLSECGNUTLSTRANSFORMSHA512GETKLASS"></a><h3>xmlSecGnuTLSTransformSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformSha512GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA512 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35763"></a><h4>Returns</h4>
+<p> pointer to SHA512 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMDES3CBCGETKLASS"></a><h3>xmlSecGnuTLSTransformDes3CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformDes3CbcGetKlass
- (void);</pre>
-<p>Triple DES CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN25963"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to Triple DES encryption transform.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMMD5GETKLASS"></a><h3>xmlSecGnuTLSTransformMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>MD5 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35776"></a><h4>Returns</h4>
+<p> pointer to MD5 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMKWDES3ID"></a><h3>xmlSecGnuTLSTransformKWDes3Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformKWDes3Id</pre>
-<p>The DES3 KW transform klass.</p>
-<p></p>
+<a name="XMLSECGNUTLSTRANSFORMRIPEMD160GETKLASS"></a><h3>xmlSecGnuTLSTransformRipemd160GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecGnuTLSTransformRipemd160GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>RIPEMD160 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN35789"></a><h4>Returns</h4>
+<p> pointer to RIPEMD160 digest transform klass.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-GNUTLS-CRYPTO.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECGNUTLSKEYDATAAESID"></a><h3>xmlSecGnuTLSKeyDataAesId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGnuTLSKeyDataAesId</pre>
+<p>The AES key data klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMKWDES3GETKLASS"></a><h3>xmlSecGnuTLSTransformKWDes3GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformKWDes3GetKlass (void);</pre>
-<p>The Triple DES key wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN25984"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> Triple DES key wrapper transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMAES128CBCID"></a><h3>xmlSecGnuTLSTransformAes128CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformAes128CbcId</pre>
+<p>The AES128 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATADSAID"></a><h3>xmlSecGnuTLSKeyDataDsaId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGnuTLSKeyDataDsaId</pre>
-<p>The DSA key klass.</p>
-<p></p>
+<a name="XMLSECGNUTLSTRANSFORMAES192CBCID"></a><h3>xmlSecGnuTLSTransformAes192CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformAes192CbcId</pre>
+<p>The AES192 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATADSAGETKLASS"></a><h3>xmlSecGnuTLSKeyDataDsaGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecGnuTLSKeyDataDsaGetKlass (void);</pre>
-<p>The DSA key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26005"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to DSA key data klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMAES256CBCID"></a><h3>xmlSecGnuTLSTransformAes256CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformAes256CbcId</pre>
+<p>The AES256 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATADSAADOPTPRIVATEKEY"></a><h3>xmlSecGnuTLSKeyDataDsaAdoptPrivateKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSKeyDataDsaAdoptPrivateKey
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gnutls_x509_privkey_t</font> dsa_key);</pre>
-<p>Sets the value of DSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26021"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to DSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26026"><span style="white-space: nowrap"><code class="PARAMETER">dsa_key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to GnuTLS DSA private key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26031"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMKWAES128ID"></a><h3>xmlSecGnuTLSTransformKWAes128Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformKWAes128Id</pre>
+<p>The AES 128 key wrap transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATADSAADOPTPUBLICKEY"></a><h3>xmlSecGnuTLSKeyDataDsaAdoptPublicKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSKeyDataDsaAdoptPublicKey
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gnutls_datum_t</font> *p,
- <font>gnutls_datum_t</font> *q,
- <font>gnutls_datum_t</font> *g,
- <font>gnutls_datum_t</font> *y);</pre>
-<p>Sets the value of DSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26050"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to DSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26055"><span style="white-space: nowrap"><code class="PARAMETER">p</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to p component of the DSA public key</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26060"><span style="white-space: nowrap"><code class="PARAMETER">q</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to q component of the DSA public key</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26065"><span style="white-space: nowrap"><code class="PARAMETER">g</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to g component of the DSA public key</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26070"><span style="white-space: nowrap"><code class="PARAMETER">y</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to y component of the DSA public key</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26075"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMKWAES192ID"></a><h3>xmlSecGnuTLSTransformKWAes192Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformKWAes192Id</pre>
+<p>The AES 192 key wrap transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMDSASHA1ID"></a><h3>xmlSecGnuTLSTransformDsaSha1Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformDsaSha1Id</pre>
-<p>The DSA SHA1 signature transform klass.</p>
-<p></p>
+<a name="XMLSECGNUTLSTRANSFORMKWAES256ID"></a><h3>xmlSecGnuTLSTransformKWAes256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformKWAes256Id</pre>
+<p>The AES 256 key wrap transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMDSASHA1GETKLASS"></a><h3>xmlSecGnuTLSTransformDsaSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformDsaSha1GetKlass
- (void);</pre>
-<p>The DSA-SHA1 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26096"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DSA-SHA1 signature transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSKEYDATADESID"></a><h3>xmlSecGnuTLSKeyDataDesId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGnuTLSKeyDataDesId</pre>
+<p>The DES key data klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSHMACGETMINOUTPUTLENGTH"></a><h3>xmlSecGnuTLSHmacGetMinOutputLength ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSHmacGetMinOutputLength (void);</pre>
-<p>Gets the value of min HMAC length.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26110"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the min HMAC output length</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMDES3CBCID"></a><h3>xmlSecGnuTLSTransformDes3CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformDes3CbcId</pre>
+<p>The DES3 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSHMACSETMINOUTPUTLENGTH"></a><h3>xmlSecGnuTLSHmacSetMinOutputLength ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecGnuTLSHmacSetMinOutputLength (<font>int</font> min_length);</pre>
-<p>Sets the min HMAC output length</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26125"><span style="white-space: nowrap"><code class="PARAMETER">min_length</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new min length</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMKWDES3ID"></a><h3>xmlSecGnuTLSTransformKWDes3Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformKWDes3Id</pre>
+<p>The DES3 KW transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATAHMACID"></a><h3>xmlSecGnuTLSKeyDataHmacId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGnuTLSKeyDataHmacId</pre>
-<p>The HMAC key klass.</p>
-<p></p>
+<a name="XMLSECGNUTLSKEYDATADSAID"></a><h3>xmlSecGnuTLSKeyDataDsaId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGnuTLSKeyDataDsaId</pre>
+<p>The DSA key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATAHMACGETKLASS"></a><h3>xmlSecGnuTLSKeyDataHmacGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecGnuTLSKeyDataHmacGetKlass (void);</pre>
-<p>The HMAC key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26146"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> HMAC key data klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECGNUTLSTRANSFORMDSASHA1ID"></a><h3>xmlSecGnuTLSTransformDsaSha1Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformDsaSha1Id</pre>
+<p>The DSA SHA1 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATAHMACSET"></a><h3>xmlSecGnuTLSKeyDataHmacSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSKeyDataHmacSet (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
-<p>Sets the value of HMAC key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26163"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to HMAC key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26168"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26173"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value size (in bytes).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26178"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECGNUTLSKEYDATAHMACID"></a><h3>xmlSecGnuTLSKeyDataHmacId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGnuTLSKeyDataHmacId</pre>
+<p>The HMAC key klass.</p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMHMACMD5ID"></a><h3>xmlSecGnuTLSTransformHmacMd5Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformHmacMd5Id</pre>
<p>The HMAC with MD5 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMHMACMD5GETKLASS"></a><h3>xmlSecGnuTLSTransformHmacMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformHmacMd5GetKlass
- (void);</pre>
-<p>The HMAC-MD5 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26199"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-MD5 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMHMACRIPEMD160ID"></a><h3>xmlSecGnuTLSTransformHmacRipemd160Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformHmacRipemd160Id</pre>
<p>The HMAC with RipeMD160 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMHMACRIPEMD160GETKLASS"></a><h3>xmlSecGnuTLSTransformHmacRipemd160GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformHmacRipemd160GetKlass
- (void);</pre>
-<p>The HMAC-RIPEMD160 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26220"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-RIPEMD160 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMHMACSHA1ID"></a><h3>xmlSecGnuTLSTransformHmacSha1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformHmacSha1Id</pre>
<p>The HMAC with SHA1 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMHMACSHA1GETKLASS"></a><h3>xmlSecGnuTLSTransformHmacSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformHmacSha1GetKlass
- (void);</pre>
-<p>The HMAC-SHA1 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26241"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA1 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMHMACSHA256ID"></a><h3>xmlSecGnuTLSTransformHmacSha256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformHmacSha256Id</pre>
<p>The HMAC with SHA256 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMHMACSHA256GETKLASS"></a><h3>xmlSecGnuTLSTransformHmacSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformHmacSha256GetKlass
- (void);</pre>
-<p>The HMAC-SHA256 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26262"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA256 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMHMACSHA384ID"></a><h3>xmlSecGnuTLSTransformHmacSha384Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformHmacSha384Id</pre>
<p>The HMAC with SHA384 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMHMACSHA384GETKLASS"></a><h3>xmlSecGnuTLSTransformHmacSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformHmacSha384GetKlass
- (void);</pre>
-<p>The HMAC-SHA384 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26283"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA384 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMHMACSHA512ID"></a><h3>xmlSecGnuTLSTransformHmacSha512Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformHmacSha512Id</pre>
<p>The HMAC with SHA512 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMHMACSHA512GETKLASS"></a><h3>xmlSecGnuTLSTransformHmacSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformHmacSha512GetKlass
- (void);</pre>
-<p>The HMAC-SHA512 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26304"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA512 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSKEYDATARSAID"></a><h3>xmlSecGnuTLSKeyDataRsaId</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSKeyDataRsaId</pre>
<p>The RSA key klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATARSAGETKLASS"></a><h3>xmlSecGnuTLSKeyDataRsaGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecGnuTLSKeyDataRsaGetKlass (void);</pre>
-<p>The GnuTLS RSA key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26325"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to GnuTLS RSA key data klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATARSAADOPTPRIVATEKEY"></a><h3>xmlSecGnuTLSKeyDataRsaAdoptPrivateKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSKeyDataRsaAdoptPrivateKey
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gnutls_x509_privkey_t</font> rsa_key);</pre>
-<p>Sets the value of RSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26341"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to RSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26346"><span style="white-space: nowrap"><code class="PARAMETER">rsa_key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to GnuTLS RSA private key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26351"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSKEYDATARSAADOPTPUBLICKEY"></a><h3>xmlSecGnuTLSKeyDataRsaAdoptPublicKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGnuTLSKeyDataRsaAdoptPublicKey
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>gnutls_datum_t</font> *m,
- <font>gnutls_datum_t</font> *e);</pre>
-<p>Sets the value of RSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26368"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to RSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26373"><span style="white-space: nowrap"><code class="PARAMETER">m</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to m component of the RSA public key</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26378"><span style="white-space: nowrap"><code class="PARAMETER">e</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to e component of the RSA public key</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN26383"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMRSAMD5ID"></a><h3>xmlSecGnuTLSTransformRsaMd5Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformRsaMd5Id</pre>
<p>The RSA-MD5 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMRSAMD5GETKLASS"></a><h3>xmlSecGnuTLSTransformRsaMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformRsaMd5GetKlass (void);</pre>
-<p>The RSA-MD5 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26404"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-MD5 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMRSARIPEMD160ID"></a><h3>xmlSecGnuTLSTransformRsaRipemd160Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformRsaRipemd160Id</pre>
<p>The RSA-RIPEMD160 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMRSARIPEMD160GETKLASS"></a><h3>xmlSecGnuTLSTransformRsaRipemd160GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformRsaRipemd160GetKlass
- (void);</pre>
-<p>The RSA-RIPEMD160 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26425"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-RIPEMD160 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMRSASHA1ID"></a><h3>xmlSecGnuTLSTransformRsaSha1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformRsaSha1Id</pre>
<p>The RSA-SHA1 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMRSASHA1GETKLASS"></a><h3>xmlSecGnuTLSTransformRsaSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformRsaSha1GetKlass
- (void);</pre>
-<p>The RSA-SHA1 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26446"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA1 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMRSASHA256ID"></a><h3>xmlSecGnuTLSTransformRsaSha256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformRsaSha256Id</pre>
<p>The RSA-SHA256 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMRSASHA256GETKLASS"></a><h3>xmlSecGnuTLSTransformRsaSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformRsaSha256GetKlass
- (void);</pre>
-<p>The RSA-SHA256 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26467"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA256 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMRSASHA384ID"></a><h3>xmlSecGnuTLSTransformRsaSha384Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformRsaSha384Id</pre>
<p>The RSA-SHA384 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMRSASHA384GETKLASS"></a><h3>xmlSecGnuTLSTransformRsaSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformRsaSha384GetKlass
- (void);</pre>
-<p>The RSA-SHA384 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26488"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA384 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMRSASHA512ID"></a><h3>xmlSecGnuTLSTransformRsaSha512Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformRsaSha512Id</pre>
<p>The RSA-SHA512 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMRSASHA512GETKLASS"></a><h3>xmlSecGnuTLSTransformRsaSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformRsaSha512GetKlass
- (void);</pre>
-<p>The RSA-SHA512 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26509"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA512 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMSHA1ID"></a><h3>xmlSecGnuTLSTransformSha1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformSha1Id</pre>
<p>The HMAC with SHA1 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMSHA1GETKLASS"></a><h3>xmlSecGnuTLSTransformSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformSha1GetKlass (void);</pre>
-<p>SHA-1 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26530"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA-1 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMSHA256ID"></a><h3>xmlSecGnuTLSTransformSha256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformSha256Id</pre>
<p>The HMAC with SHA256 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMSHA256GETKLASS"></a><h3>xmlSecGnuTLSTransformSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformSha256GetKlass (void);</pre>
-<p>SHA256 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26551"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA256 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMSHA384ID"></a><h3>xmlSecGnuTLSTransformSha384Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformSha384Id</pre>
<p>The HMAC with SHA384 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMSHA384GETKLASS"></a><h3>xmlSecGnuTLSTransformSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformSha384GetKlass (void);</pre>
-<p>SHA384 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26572"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA384 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMSHA512ID"></a><h3>xmlSecGnuTLSTransformSha512Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformSha512Id</pre>
<p>The HMAC with SHA512 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMSHA512GETKLASS"></a><h3>xmlSecGnuTLSTransformSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformSha512GetKlass (void);</pre>
-<p>SHA512 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26593"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA512 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMMD5ID"></a><h3>xmlSecGnuTLSTransformMd5Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformMd5Id</pre>
<p>The MD5 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMMD5GETKLASS"></a><h3>xmlSecGnuTLSTransformMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformMd5GetKlass (void);</pre>
-<p>MD5 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26614"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to MD5 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGNUTLSTRANSFORMRIPEMD160ID"></a><h3>xmlSecGnuTLSTransformRipemd160Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecGnuTLSTransformRipemd160Id</pre>
<p>The RIPEMD160 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGNUTLSTRANSFORMRIPEMD160GETKLASS"></a><h3>xmlSecGnuTLSTransformRipemd160GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecGnuTLSTransformRipemd160GetKlass
- (void);</pre>
-<p>RIPEMD160 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN26635"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to RIPEMD160 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-gnutls-ref.html b/docs/api/xmlsec-gnutls-ref.html
index 2d99981..828f96f 100644
--- a/docs/api/xmlsec-gnutls-ref.html
+++ b/docs/api/xmlsec-gnutls-ref.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library API Reference." href="xmlsec-reference.html">
<link rel="PREVIOUS" title="x509" href="xmlsec-openssl-x509.html">
<link rel="NEXT" title="app" href="xmlsec-gnutls-app.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-openssl-x509.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-reference.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-openssl-x509.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-gnutls-app.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-gnutls-app.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-gnutls.sgml b/docs/api/xmlsec-gnutls.sgml
deleted file mode 100644
index b5c2bf2..0000000
--- a/docs/api/xmlsec-gnutls.sgml
+++ /dev/null
@@ -1,15 +0,0 @@
-<!doctype book PUBLIC "-//DavenPort//DTD DocBook V3.0//EN" [
-<!ENTITY xmlsec-gnutls-app SYSTEM "sgml/app.sgml">
-<!ENTITY xmlsec-gnutls-crypto SYSTEM "sgml/crypto.sgml">
-]>
-<book id="index">
- <bookinfo>
- <title>[Insert name here] Reference Manual</title>
- </bookinfo>
-
- <chapter>
- <title>[Insert title here]</title>
- &xmlsec-gnutls-app;
- &xmlsec-gnutls-crypto;
- </chapter>
-</book>
diff --git a/docs/api/xmlsec-index.html b/docs/api/xmlsec-index.html
index 96a5c55..a6f3d15 100644
--- a/docs/api/xmlsec-index.html
+++ b/docs/api/xmlsec-index.html
@@ -6,7 +6,6 @@
<link rel="HOME" title="XML Security Library Reference Manual" href="index.html">
<link rel="UP" title="XML Security Library API Reference." href="xmlsec-reference.html">
<link rel="PREVIOUS" title="x509" href="xmlsec-mscrypto-x509.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -36,8 +35,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -78,9 +100,9 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-mscrypto-x509.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-reference.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-mscrypto-x509.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
</tr></table>
<div class="CHAPTER">
@@ -208,6 +230,7 @@
<li><p><font>xmlSecCryptoKeyDataStoreGetKlassMethod</font></p></li>
<li><p><font>xmlSecCryptoKeysMngrInitMethod</font></p></li>
<li><p><a href="xmlsec-app.html#XMLSECCRYPTOKEYSMNGRINIT">xmlSecCryptoKeysMngrInit</a></p></li>
+<li><p><font>XMLSEC-CRYPTO</font></p></li>
<li><p><font>xmlSecCryptoShutdownMethod</font></p></li>
<li><p><a href="xmlsec-app.html#XMLSECCRYPTOSHUTDOWN">xmlSecCryptoShutdown</a></p></li>
<li><p><font>xmlSecCryptoTransformGetKlassMethod</font></p></li>
@@ -256,6 +279,7 @@
<li><p><a href="xmlsec-xmlenc.html#XMLSECENCCTXURIENCRYPT">xmlSecEncCtxUriEncrypt</a></p></li>
<li><p><a href="xmlsec-xmlenc.html#XMLSECENCCTXXMLENCRYPT">xmlSecEncCtxXmlEncrypt</a></p></li>
<li><p><font>XMLSEC-ENC-RETURN-REPLACED-NODE</font></p></li>
+<li><p><a href="xmlsec-xmltree.html#XMLSECENSUREEMPTYCHILD">xmlSecEnsureEmptyChild</a></p></li>
<li><p><a href="xmlsec-errors.html#XMLSECERROR">xmlSecError</a></p></li>
<li><p><a href="xmlsec-errors.html#XMLSECERRORSCALLBACK">xmlSecErrorsCallback</a></p></li>
<li><p><a href="xmlsec-errors.html#XMLSECERRORSDEFAULTCALLBACKENABLEOUTPUT">xmlSecErrorsDefaultCallbackEnableOutput</a></p></li>
@@ -319,6 +343,7 @@
<li><p><a href="xmlsec-xmltree.html#XMLSECFINDCHILD">xmlSecFindChild</a></p></li>
<li><p><a href="xmlsec-xmltree.html#XMLSECFINDNODE">xmlSecFindNode</a></p></li>
<li><p><a href="xmlsec-xmltree.html#XMLSECFINDPARENT">xmlSecFindParent</a></p></li>
+<li><p><a href="xmlsec-xmltree.html#XMLSECFINDSIBLING">xmlSecFindSibling</a></p></li>
<li><p><font>XMLSEC-FUNC-TO-PTR</font></p></li>
<li><p><a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPDEFAULTKEYSMNGRADOPTKEY">xmlSecGCryptAppDefaultKeysMngrAdoptKey</a></p></li>
<li><p><a href="xmlsec-gcrypt-app.html#XMLSECGCRYPTAPPDEFAULTKEYSMNGRINIT">xmlSecGCryptAppDefaultKeysMngrInit</a></p></li>
@@ -418,6 +443,7 @@
<li><p><a href="xmlsec-gcrypt-crypto.html#XMLSECGCRYPTTRANSFORMSHA512ID">xmlSecGCryptTransformSha512Id</a></p></li>
<li><p><a href="xmlsec-xmltree.html#XMLSECGENERATEANDADDID">xmlSecGenerateAndAddID</a></p></li>
<li><p><a href="xmlsec-xmltree.html#XMLSECGENERATEID">xmlSecGenerateID</a></p></li>
+<li><p><a href="xmlsec-xmlsec.html#XMLSECGETDEFAULTCRYPTO">xmlSecGetDefaultCrypto</a></p></li>
<li><p><a href="xmlsec-xmltree.html#XMLSECGETHEX">xmlSecGetHex</a></p></li>
<li><p><a href="xmlsec-keysmngr.html#XMLSECGETKEYCALLBACK">xmlSecGetKeyCallback</a></p></li>
<li><p><a href="xmlsec-xmltree.html#XMLSECGETNEXTELEMENTNODE">xmlSecGetNextElementNode</a></p></li>
@@ -596,6 +622,10 @@
<li><p><a href="xmlsec-keysdata.html#XMLSECKEYDATAGETTYPE">xmlSecKeyDataGetType</a></p></li>
<li><p><a href="xmlsec-app.html#XMLSECKEYDATAGOST2001GETKLASS">xmlSecKeyDataGost2001GetKlass</a></p></li>
<li><p><a href="xmlsec-app.html#XMLSECKEYDATAGOST2001ID">xmlSecKeyDataGost2001Id</a></p></li>
+<li><p><font>xmlSecKeyDataGostR3410-2012-256GetKlass</font></p></li>
+<li><p><font>xmlSecKeyDataGostR3410-2012-256Id</font></p></li>
+<li><p><font>xmlSecKeyDataGostR3410-2012-512GetKlass</font></p></li>
+<li><p><font>xmlSecKeyDataGostR3410-2012-512Id</font></p></li>
<li><p><a href="xmlsec-app.html#XMLSECKEYDATAHMACGETKLASS">xmlSecKeyDataHmacGetKlass</a></p></li>
<li><p><a href="xmlsec-app.html#XMLSECKEYDATAHMACID">xmlSecKeyDataHmacId</a></p></li>
<li><p><a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTDEBUGDUMP">xmlSecKeyDataIdListDebugDump</a></p></li>
@@ -818,6 +848,7 @@
<li><p><a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETDECRYPTKEY">xmlSecMSCryptoKeyDataGetDecryptKey</a></p></li>
<li><p><a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETKEY">xmlSecMSCryptoKeyDataGetKey</a></p></li>
<li><p><a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETMSCRYPTOKEYSPEC">xmlSecMSCryptoKeyDataGetMSCryptoKeySpec</a></p></li>
+<li><p><a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETMSCRYPTOPROVIDERINFO">xmlSecMSCryptoKeyDataGetMSCryptoProviderInfo</a></p></li>
<li><p><a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETMSCRYPTOPROVIDER">xmlSecMSCryptoKeyDataGetMSCryptoProvider</a></p></li>
<li><p><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAGOST2001GETKLASS">xmlSecMSCryptoKeyDataGost2001GetKlass</a></p></li>
<li><p><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAGOST2001ID">xmlSecMSCryptoKeyDataGost2001Id</a></p></li>
@@ -1103,6 +1134,10 @@
<li><p><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAECDSAID">xmlSecOpenSSLKeyDataEcdsaId</a></p></li>
<li><p><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAGOST2001GETKLASS">xmlSecOpenSSLKeyDataGost2001GetKlass</a></p></li>
<li><p><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAGOST2001ID">xmlSecOpenSSLKeyDataGost2001Id</a></p></li>
+<li><p><font>xmlSecOpenSSLKeyDataGostR3410-2012-256GetKlass</font></p></li>
+<li><p><font>xmlSecOpenSSLKeyDataGostR3410-2012-256Id</font></p></li>
+<li><p><font>xmlSecOpenSSLKeyDataGostR3410-2012-512GetKlass</font></p></li>
+<li><p><font>xmlSecOpenSSLKeyDataGostR3410-2012-512Id</font></p></li>
<li><p><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAHMACGETKLASS">xmlSecOpenSSLKeyDataHmacGetKlass</a></p></li>
<li><p><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAHMACID">xmlSecOpenSSLKeyDataHmacId</a></p></li>
<li><p><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAHMACSET">xmlSecOpenSSLKeyDataHmacSet</a></p></li>
@@ -1153,6 +1188,14 @@
<li><p><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA512ID">xmlSecOpenSSLTransformEcdsaSha512Id</a></p></li>
<li><p><font>xmlSecOpenSSLTransformGost2001GostR3411-94GetKlass</font></p></li>
<li><p><font>xmlSecOpenSSLTransformGost2001GostR3411-94Id</font></p></li>
+<li><p><font>xmlSecOpenSSLTransformGostR3410-2012GostR3411-2012-256GetKlass</font></p></li>
+<li><p><font>xmlSecOpenSSLTransformGostR3410-2012GostR3411-2012-256Id</font></p></li>
+<li><p><font>xmlSecOpenSSLTransformGostR3410-2012GostR3411-2012-512GetKlass</font></p></li>
+<li><p><font>xmlSecOpenSSLTransformGostR3410-2012GostR3411-2012-512Id</font></p></li>
+<li><p><font>xmlSecOpenSSLTransformGostR3411-2012-256GetKlass</font></p></li>
+<li><p><font>xmlSecOpenSSLTransformGostR3411-2012-256Id</font></p></li>
+<li><p><font>xmlSecOpenSSLTransformGostR3411-2012-512GetKlass</font></p></li>
+<li><p><font>xmlSecOpenSSLTransformGostR3411-2012-512Id</font></p></li>
<li><p><font>xmlSecOpenSSLTransformGostR3411-94GetKlass</font></p></li>
<li><p><font>xmlSecOpenSSLTransformGostR3411-94Id</font></p></li>
<li><p><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACMD5GETKLASS">xmlSecOpenSSLTransformHmacMd5GetKlass</a></p></li>
@@ -1440,6 +1483,14 @@
<li><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMGETNAME">xmlSecTransformGetName</a></p></li>
<li><p><font>xmlSecTransformGost2001GostR3411-94GetKlass</font></p></li>
<li><p><font>xmlSecTransformGost2001GostR3411-94Id</font></p></li>
+<li><p><font>xmlSecTransformGostR3410-2012GostR3411-2012-256GetKlass</font></p></li>
+<li><p><font>xmlSecTransformGostR3410-2012GostR3411-2012-256Id</font></p></li>
+<li><p><font>xmlSecTransformGostR3410-2012GostR3411-2012-512GetKlass</font></p></li>
+<li><p><font>xmlSecTransformGostR3410-2012GostR3411-2012-512Id</font></p></li>
+<li><p><font>xmlSecTransformGostR3411-2012-256GetKlass</font></p></li>
+<li><p><font>xmlSecTransformGostR3411-2012-256Id</font></p></li>
+<li><p><font>xmlSecTransformGostR3411-2012-512GetKlass</font></p></li>
+<li><p><font>xmlSecTransformGostR3411-2012-512Id</font></p></li>
<li><p><font>xmlSecTransformGostR3411-94GetKlass</font></p></li>
<li><p><font>xmlSecTransformGostR3411-94Id</font></p></li>
<li><p><a href="xmlsec-app.html#XMLSECTRANSFORMHMACMD5GETKLASS">xmlSecTransformHmacMd5GetKlass</a></p></li>
@@ -1478,6 +1529,7 @@
<li><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14NWITHCOMMENTSGETKLASS">xmlSecTransformInclC14NWithCommentsGetKlass</a></p></li>
<li><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14NWITHCOMMENTSID">xmlSecTransformInclC14NWithCommentsId</a></p></li>
<li><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMINITIALIZEMETHOD">xmlSecTransformInitializeMethod</a></p></li>
+<li><p><a href="xmlsec-io.html#XMLSECTRANSFORMINPUTURICLOSE">xmlSecTransformInputURIClose</a></p></li>
<li><p><a href="xmlsec-io.html#XMLSECTRANSFORMINPUTURIGETKLASS">xmlSecTransformInputURIGetKlass</a></p></li>
<li><p><a href="xmlsec-io.html#XMLSECTRANSFORMINPUTURIID">xmlSecTransformInputURIId</a></p></li>
<li><p><a href="xmlsec-io.html#XMLSECTRANSFORMINPUTURIOPEN">xmlSecTransformInputURIOpen</a></p></li>
@@ -1512,6 +1564,8 @@
<li><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHBIN">xmlSecTransformPushBin</a></p></li>
<li><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHXMLMETHOD">xmlSecTransformPushXmlMethod</a></p></li>
<li><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHXML">xmlSecTransformPushXml</a></p></li>
+<li><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMRELATIONSHIPGETKLASS">xmlSecTransformRelationshipGetKlass</a></p></li>
+<li><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMRELATIONSHIPID">xmlSecTransformRelationshipId</a></p></li>
<li><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMREMOVE">xmlSecTransformRemove</a></p></li>
<li><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMREMOVEXMLTAGSC14NGETKLASS">xmlSecTransformRemoveXmlTagsC14NGetKlass</a></p></li>
<li><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMREMOVEXMLTAGSC14NID">xmlSecTransformRemoveXmlTagsC14NId</a></p></li>
@@ -1599,7 +1653,7 @@
<li><p><a href="xmlsec-app.html#XMLSECX509STOREGETKLASS">xmlSecX509StoreGetKlass</a></p></li>
<li><p><a href="xmlsec-app.html#XMLSECX509STOREID">xmlSecX509StoreId</a></p></li>
</ul>
-</div>
+ </div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-mscrypto-x509.html"><b><<< x509</b></a></td>
<td align="right"></td>
diff --git a/docs/api/xmlsec-index.sgml b/docs/api/xmlsec-index.sgml
deleted file mode 100644
index 83f764b..0000000
--- a/docs/api/xmlsec-index.sgml
+++ /dev/null
@@ -1,1509 +0,0 @@
-<listitem><para><link linkend="ATTRIBUTE-UNUSED-CAPS">ATTRIBUTE-UNUSED</link></para></listitem>
-<listitem><para><link linkend="xmlEncCtxMode">xmlEncCtxMode</link></para></listitem>
-<listitem><para><link linkend="xmlSecAddChild">xmlSecAddChild</link></para></listitem>
-<listitem><para><link linkend="xmlSecAddChildNode">xmlSecAddChildNode</link></para></listitem>
-<listitem><para><link linkend="xmlSecAddIDs">xmlSecAddIDs</link></para></listitem>
-<listitem><para><link linkend="xmlSecAddNextSibling">xmlSecAddNextSibling</link></para></listitem>
-<listitem><para><link linkend="xmlSecAddPrevSibling">xmlSecAddPrevSibling</link></para></listitem>
-<listitem><para><link linkend="xmlSecAllocMode">xmlSecAllocMode</link></para></listitem>
-<listitem><para><link linkend="xmlSecAssert2">xmlSecAssert2</link></para></listitem>
-<listitem><para><link linkend="xmlSecAssert">xmlSecAssert</link></para></listitem>
-<listitem><para><link linkend="xmlSecBase64CtxCreate">xmlSecBase64CtxCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecBase64CtxDestroy">xmlSecBase64CtxDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecBase64CtxFinalize">xmlSecBase64CtxFinalize</link></para></listitem>
-<listitem><para><link linkend="xmlSecBase64CtxFinal">xmlSecBase64CtxFinal</link></para></listitem>
-<listitem><para><link linkend="xmlSecBase64CtxInitialize">xmlSecBase64CtxInitialize</link></para></listitem>
-<listitem><para><link linkend="xmlSecBase64CtxUpdate">xmlSecBase64CtxUpdate</link></para></listitem>
-<listitem><para><link linkend="xmlSecBase64Decode">xmlSecBase64Decode</link></para></listitem>
-<listitem><para><link linkend="xmlSecBase64Encode">xmlSecBase64Encode</link></para></listitem>
-<listitem><para><link linkend="xmlSecBase64GetDefaultLineSize">xmlSecBase64GetDefaultLineSize</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-BASE64-LINESIZE-CAPS">XMLSEC-BASE64-LINESIZE</link></para></listitem>
-<listitem><para><link linkend="xmlSecBase64SetDefaultLineSize">xmlSecBase64SetDefaultLineSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecBitMask">xmlSecBitMask</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnAdd">xmlSecBnAdd</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnBlobSetNodeValue">xmlSecBnBlobSetNodeValue</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnCompare">xmlSecBnCompare</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnCompareReverse">xmlSecBnCompareReverse</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnCreate">xmlSecBnCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnDestroy">xmlSecBnDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnDiv">xmlSecBnDiv</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnFinalize">xmlSecBnFinalize</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnFormat">xmlSecBnFormat</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnFromDecString">xmlSecBnFromDecString</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnFromHexString">xmlSecBnFromHexString</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnFromString">xmlSecBnFromString</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnGetData">xmlSecBnGetData</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnGetNodeValue">xmlSecBnGetNodeValue</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnGetSize">xmlSecBnGetSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnInitialize">xmlSecBnInitialize</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnMul">xmlSecBnMul</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnReverse">xmlSecBnReverse</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnSetData">xmlSecBnSetData</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnSetNodeValue">xmlSecBnSetNodeValue</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnToDecString">xmlSecBnToDecString</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnToHexString">xmlSecBnToHexString</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnToString">xmlSecBnToString</link></para></listitem>
-<listitem><para><link linkend="xmlSecBnZero">xmlSecBnZero</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferAppend">xmlSecBufferAppend</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferBase64NodeContentRead">xmlSecBufferBase64NodeContentRead</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferBase64NodeContentWrite">xmlSecBufferBase64NodeContentWrite</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferCreate">xmlSecBufferCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferCreateOutputBuffer">xmlSecBufferCreateOutputBuffer</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferDestroy">xmlSecBufferDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferEmpty">xmlSecBufferEmpty</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferFinalize">xmlSecBufferFinalize</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferGetData">xmlSecBufferGetData</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferGetMaxSize">xmlSecBufferGetMaxSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferGetSize">xmlSecBufferGetSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferInitialize">xmlSecBufferInitialize</link></para></listitem>
-<listitem><para><link linkend="xmlSecBuffer">xmlSecBuffer</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferPrepend">xmlSecBufferPrepend</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferReadFile">xmlSecBufferReadFile</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferRemoveHead">xmlSecBufferRemoveHead</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferRemoveTail">xmlSecBufferRemoveTail</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferSetData">xmlSecBufferSetData</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferSetDefaultAllocMode">xmlSecBufferSetDefaultAllocMode</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferSetMaxSize">xmlSecBufferSetMaxSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecBufferSetSize">xmlSecBufferSetSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecByte">xmlSecByte</link></para></listitem>
-<listitem><para><link linkend="xmlSecCheckNodeName">xmlSecCheckNodeName</link></para></listitem>
-<listitem><para><link linkend="xmlSecCheckVersionExact">xmlSecCheckVersionExact</link></para></listitem>
-<listitem><para><link linkend="xmlSecCheckVersionExt">xmlSecCheckVersionExt</link></para></listitem>
-<listitem><para><link linkend="xmlSecCheckVersionMode">xmlSecCheckVersionMode</link></para></listitem>
-<listitem><para><link linkend="xmlSecCheckVersion">xmlSecCheckVersion</link></para></listitem>
-<listitem><para><link linkend="xmlSecCreateTree">xmlSecCreateTree</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppDefaultKeysMngrAdoptKey">xmlSecCryptoAppDefaultKeysMngrAdoptKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppDefaultKeysMngrInit">xmlSecCryptoAppDefaultKeysMngrInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppDefaultKeysMngrLoad">xmlSecCryptoAppDefaultKeysMngrLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppDefaultKeysMngrSave">xmlSecCryptoAppDefaultKeysMngrSave</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppGetDefaultPwdCallback">xmlSecCryptoAppGetDefaultPwdCallback</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppInitMethod">xmlSecCryptoAppInitMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppInit">xmlSecCryptoAppInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppKeyCertLoadMemoryMethod">xmlSecCryptoAppKeyCertLoadMemoryMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppKeyCertLoadMemory">xmlSecCryptoAppKeyCertLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppKeyCertLoadMethod">xmlSecCryptoAppKeyCertLoadMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppKeyCertLoad">xmlSecCryptoAppKeyCertLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppKeyLoadMemoryMethod">xmlSecCryptoAppKeyLoadMemoryMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppKeyLoadMemory">xmlSecCryptoAppKeyLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppKeyLoadMethod">xmlSecCryptoAppKeyLoadMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppKeyLoad">xmlSecCryptoAppKeyLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppKeysMngrCertLoadMemoryMethod">xmlSecCryptoAppKeysMngrCertLoadMemoryMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppKeysMngrCertLoadMemory">xmlSecCryptoAppKeysMngrCertLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppKeysMngrCertLoadMethod">xmlSecCryptoAppKeysMngrCertLoadMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppKeysMngrCertLoad">xmlSecCryptoAppKeysMngrCertLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppPkcs12LoadMemoryMethod">xmlSecCryptoAppPkcs12LoadMemoryMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppPkcs12LoadMemory">xmlSecCryptoAppPkcs12LoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppPkcs12LoadMethod">xmlSecCryptoAppPkcs12LoadMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppPkcs12Load">xmlSecCryptoAppPkcs12Load</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppShutdownMethod">xmlSecCryptoAppShutdownMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoAppShutdown">xmlSecCryptoAppShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoDLFunctions">xmlSecCryptoDLFunctions</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms">xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoDLGetFunctions">xmlSecCryptoDLGetFunctions</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoDLGetLibraryFunctions">xmlSecCryptoDLGetLibraryFunctions</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoDLInit">xmlSecCryptoDLInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoDLLoadLibrary">xmlSecCryptoDLLoadLibrary</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoDLSetFunctions">xmlSecCryptoDLSetFunctions</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoDLShutdown">xmlSecCryptoDLShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoDLUnloadLibrary">xmlSecCryptoDLUnloadLibrary</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoGetFunctions-gcrypt-CAPS">xmlSecCryptoGetFunctions-gcrypt</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoGetFunctions-gnutls-CAPS">xmlSecCryptoGetFunctions-gnutls</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoGetFunctions-mscrypto-CAPS">xmlSecCryptoGetFunctions-mscrypto</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoGetFunctions-nss-CAPS">xmlSecCryptoGetFunctions-nss</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoGetFunctions-openssl-CAPS">xmlSecCryptoGetFunctions-openssl</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoInitMethod">xmlSecCryptoInitMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoInit">xmlSecCryptoInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoKeyDataGetKlassMethod">xmlSecCryptoKeyDataGetKlassMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoKeyDataStoreGetKlassMethod">xmlSecCryptoKeyDataStoreGetKlassMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoKeysMngrInitMethod">xmlSecCryptoKeysMngrInitMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoKeysMngrInit">xmlSecCryptoKeysMngrInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoShutdownMethod">xmlSecCryptoShutdownMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoShutdown">xmlSecCryptoShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecCryptoTransformGetKlassMethod">xmlSecCryptoTransformGetKlassMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigCtxCreate">xmlSecDSigCtxCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigCtxDebugDump">xmlSecDSigCtxDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigCtxDebugXmlDump">xmlSecDSigCtxDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigCtxDestroy">xmlSecDSigCtxDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigCtxEnableReferenceTransform">xmlSecDSigCtxEnableReferenceTransform</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigCtxEnableSignatureTransform">xmlSecDSigCtxEnableSignatureTransform</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigCtxFinalize">xmlSecDSigCtxFinalize</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigCtxGetPreSignBuffer">xmlSecDSigCtxGetPreSignBuffer</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigCtxInitialize">xmlSecDSigCtxInitialize</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigCtx">xmlSecDSigCtx</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigCtxSign">xmlSecDSigCtxSign</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigCtxVerify">xmlSecDSigCtxVerify</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-DSIG-FLAGS-IGNORE-MANIFESTS-CAPS">XMLSEC-DSIG-FLAGS-IGNORE-MANIFESTS</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-DSIG-FLAGS-STORE-MANIFEST-REFERENCES-CAPS">XMLSEC-DSIG-FLAGS-STORE-MANIFEST-REFERENCES</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-DSIG-FLAGS-STORE-SIGNATURE-CAPS">XMLSEC-DSIG-FLAGS-STORE-SIGNATURE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-DSIG-FLAGS-STORE-SIGNEDINFO-REFERENCES-CAPS">XMLSEC-DSIG-FLAGS-STORE-SIGNEDINFO-REFERENCES</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-DSIG-FLAGS-USE-VISA3D-HACK-CAPS">XMLSEC-DSIG-FLAGS-USE-VISA3D-HACK</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigReferenceCtxCreate">xmlSecDSigReferenceCtxCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigReferenceCtxDebugDump">xmlSecDSigReferenceCtxDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigReferenceCtxDebugXmlDump">xmlSecDSigReferenceCtxDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigReferenceCtxDestroy">xmlSecDSigReferenceCtxDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigReferenceCtxFinalize">xmlSecDSigReferenceCtxFinalize</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigReferenceCtxGetPreDigestBuffer">xmlSecDSigReferenceCtxGetPreDigestBuffer</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigReferenceCtxInitialize">xmlSecDSigReferenceCtxInitialize</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigReferenceCtxListGetKlass">xmlSecDSigReferenceCtxListGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigReferenceCtxListId">xmlSecDSigReferenceCtxListId</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigReferenceCtx">xmlSecDSigReferenceCtx</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigReferenceCtxProcessNode">xmlSecDSigReferenceCtxProcessNode</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigReferenceOrigin">xmlSecDSigReferenceOrigin</link></para></listitem>
-<listitem><para><link linkend="xmlSecDSigStatus">xmlSecDSigStatus</link></para></listitem>
-<listitem><para><link linkend="xmlSecEncCtxBinaryEncrypt">xmlSecEncCtxBinaryEncrypt</link></para></listitem>
-<listitem><para><link linkend="xmlSecEncCtxCopyUserPref">xmlSecEncCtxCopyUserPref</link></para></listitem>
-<listitem><para><link linkend="xmlSecEncCtxCreate">xmlSecEncCtxCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecEncCtxDebugDump">xmlSecEncCtxDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecEncCtxDebugXmlDump">xmlSecEncCtxDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecEncCtxDecrypt">xmlSecEncCtxDecrypt</link></para></listitem>
-<listitem><para><link linkend="xmlSecEncCtxDecryptToBuffer">xmlSecEncCtxDecryptToBuffer</link></para></listitem>
-<listitem><para><link linkend="xmlSecEncCtxDestroy">xmlSecEncCtxDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecEncCtxFinalize">xmlSecEncCtxFinalize</link></para></listitem>
-<listitem><para><link linkend="xmlSecEncCtxInitialize">xmlSecEncCtxInitialize</link></para></listitem>
-<listitem><para><link linkend="xmlSecEncCtx">xmlSecEncCtx</link></para></listitem>
-<listitem><para><link linkend="xmlSecEncCtxReset">xmlSecEncCtxReset</link></para></listitem>
-<listitem><para><link linkend="xmlSecEncCtxUriEncrypt">xmlSecEncCtxUriEncrypt</link></para></listitem>
-<listitem><para><link linkend="xmlSecEncCtxXmlEncrypt">xmlSecEncCtxXmlEncrypt</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ENC-RETURN-REPLACED-NODE-CAPS">XMLSEC-ENC-RETURN-REPLACED-NODE</link></para></listitem>
-<listitem><para><link linkend="xmlSecError">xmlSecError</link></para></listitem>
-<listitem><para><link linkend="xmlSecErrorsCallback">xmlSecErrorsCallback</link></para></listitem>
-<listitem><para><link linkend="xmlSecErrorsDefaultCallbackEnableOutput">xmlSecErrorsDefaultCallbackEnableOutput</link></para></listitem>
-<listitem><para><link linkend="xmlSecErrorsDefaultCallback">xmlSecErrorsDefaultCallback</link></para></listitem>
-<listitem><para><link linkend="xmlSecErrorsGetCode">xmlSecErrorsGetCode</link></para></listitem>
-<listitem><para><link linkend="xmlSecErrorsGetMsg">xmlSecErrorsGetMsg</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-HERE-CAPS">XMLSEC-ERRORS-HERE</link></para></listitem>
-<listitem><para><link linkend="xmlSecErrorsInit">xmlSecErrorsInit</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-MAX-NUMBER-CAPS">XMLSEC-ERRORS-MAX-NUMBER</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-NO-MESSAGE-CAPS">XMLSEC-ERRORS-NO-MESSAGE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-ASSERTION-CAPS">XMLSEC-ERRORS-R-ASSERTION</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-CERT-HAS-EXPIRED-CAPS">XMLSEC-ERRORS-R-CERT-HAS-EXPIRED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-CERT-ISSUER-FAILED-CAPS">XMLSEC-ERRORS-R-CERT-ISSUER-FAILED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-CERT-NOT-FOUND-CAPS">XMLSEC-ERRORS-R-CERT-NOT-FOUND</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-CERT-NOT-YET-VALID-CAPS">XMLSEC-ERRORS-R-CERT-NOT-YET-VALID</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-CERT-REVOKED-CAPS">XMLSEC-ERRORS-R-CERT-REVOKED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-CERT-VERIFY-FAILED-CAPS">XMLSEC-ERRORS-R-CERT-VERIFY-FAILED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-CRYPTO-FAILED-CAPS">XMLSEC-ERRORS-R-CRYPTO-FAILED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-DATA-NOT-MATCH-CAPS">XMLSEC-ERRORS-R-DATA-NOT-MATCH</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-DISABLED-CAPS">XMLSEC-ERRORS-R-DISABLED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-DSIG-INVALID-REFERENCE-CAPS">XMLSEC-ERRORS-R-DSIG-INVALID-REFERENCE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-DSIG-NO-REFERENCES-CAPS">XMLSEC-ERRORS-R-DSIG-NO-REFERENCES</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-DATA-CAPS">XMLSEC-ERRORS-R-INVALID-DATA</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-FORMAT-CAPS">XMLSEC-ERRORS-R-INVALID-FORMAT</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-KEY-DATA-CAPS">XMLSEC-ERRORS-R-INVALID-KEY-DATA</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-KEY-DATA-SIZE-CAPS">XMLSEC-ERRORS-R-INVALID-KEY-DATA-SIZE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-NODE-ATTRIBUTE-CAPS">XMLSEC-ERRORS-R-INVALID-NODE-ATTRIBUTE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-NODE-CONTENT-CAPS">XMLSEC-ERRORS-R-INVALID-NODE-CONTENT</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-NODE-CAPS">XMLSEC-ERRORS-R-INVALID-NODE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-OPERATION-CAPS">XMLSEC-ERRORS-R-INVALID-OPERATION</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-RESULT-CAPS">XMLSEC-ERRORS-R-INVALID-RESULT</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-SIZE-CAPS">XMLSEC-ERRORS-R-INVALID-SIZE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-STATUS-CAPS">XMLSEC-ERRORS-R-INVALID-STATUS</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-TRANSFORM-KEY-CAPS">XMLSEC-ERRORS-R-INVALID-TRANSFORM-KEY</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-TRANSFORM-CAPS">XMLSEC-ERRORS-R-INVALID-TRANSFORM</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-TYPE-CAPS">XMLSEC-ERRORS-R-INVALID-TYPE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-INVALID-URI-TYPE-CAPS">XMLSEC-ERRORS-R-INVALID-URI-TYPE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-IO-FAILED-CAPS">XMLSEC-ERRORS-R-IO-FAILED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-KEY-DATA-ALREADY-EXIST-CAPS">XMLSEC-ERRORS-R-KEY-DATA-ALREADY-EXIST</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-KEYDATA-DISABLED-CAPS">XMLSEC-ERRORS-R-KEYDATA-DISABLED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-KEY-DATA-NOT-FOUND-CAPS">XMLSEC-ERRORS-R-KEY-DATA-NOT-FOUND</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-KEY-NOT-FOUND-CAPS">XMLSEC-ERRORS-R-KEY-NOT-FOUND</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-MALLOC-FAILED-CAPS">XMLSEC-ERRORS-R-MALLOC-FAILED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-MAX-ENCKEY-LEVEL-CAPS">XMLSEC-ERRORS-R-MAX-ENCKEY-LEVEL</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-MAX-RETRIEVALS-LEVEL-CAPS">XMLSEC-ERRORS-R-MAX-RETRIEVALS-LEVEL</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-MAX-RETRIEVAL-TYPE-MISMATCH-CAPS">XMLSEC-ERRORS-R-MAX-RETRIEVAL-TYPE-MISMATCH</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-MISSING-NODE-ATTRIBUTE-CAPS">XMLSEC-ERRORS-R-MISSING-NODE-ATTRIBUTE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-NODE-ALREADY-PRESENT-CAPS">XMLSEC-ERRORS-R-NODE-ALREADY-PRESENT</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-NODE-NOT-FOUND-CAPS">XMLSEC-ERRORS-R-NODE-NOT-FOUND</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-NOT-IMPLEMENTED-CAPS">XMLSEC-ERRORS-R-NOT-IMPLEMENTED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-STRDUP-FAILED-CAPS">XMLSEC-ERRORS-R-STRDUP-FAILED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-TRANSFORM-DISABLED-CAPS">XMLSEC-ERRORS-R-TRANSFORM-DISABLED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-TRANSFORM-SAME-DOCUMENT-REQUIRED-CAPS">XMLSEC-ERRORS-R-TRANSFORM-SAME-DOCUMENT-REQUIRED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-UNEXPECTED-NODE-CAPS">XMLSEC-ERRORS-R-UNEXPECTED-NODE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-XML-FAILED-CAPS">XMLSEC-ERRORS-R-XML-FAILED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-XMLSEC-FAILED-CAPS">XMLSEC-ERRORS-R-XMLSEC-FAILED</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-ERRORS-R-XSLT-FAILED-CAPS">XMLSEC-ERRORS-R-XSLT-FAILED</link></para></listitem>
-<listitem><para><link linkend="xmlSecErrorsSafeString">xmlSecErrorsSafeString</link></para></listitem>
-<listitem><para><link linkend="xmlSecErrorsSetCallback">xmlSecErrorsSetCallback</link></para></listitem>
-<listitem><para><link linkend="xmlSecErrorsShutdown">xmlSecErrorsShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecFindChild">xmlSecFindChild</link></para></listitem>
-<listitem><para><link linkend="xmlSecFindNode">xmlSecFindNode</link></para></listitem>
-<listitem><para><link linkend="xmlSecFindParent">xmlSecFindParent</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-FUNC-TO-PTR-CAPS">XMLSEC-FUNC-TO-PTR</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppDefaultKeysMngrAdoptKey">xmlSecGCryptAppDefaultKeysMngrAdoptKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppDefaultKeysMngrInit">xmlSecGCryptAppDefaultKeysMngrInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppDefaultKeysMngrLoad">xmlSecGCryptAppDefaultKeysMngrLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppDefaultKeysMngrSave">xmlSecGCryptAppDefaultKeysMngrSave</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppGetDefaultPwdCallback">xmlSecGCryptAppGetDefaultPwdCallback</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppInit">xmlSecGCryptAppInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppKeyCertLoadMemory">xmlSecGCryptAppKeyCertLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppKeyCertLoad">xmlSecGCryptAppKeyCertLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppKeyLoadMemory">xmlSecGCryptAppKeyLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppKeyLoad">xmlSecGCryptAppKeyLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppKeysMngrCertLoadMemory">xmlSecGCryptAppKeysMngrCertLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppKeysMngrCertLoad">xmlSecGCryptAppKeysMngrCertLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppPkcs12LoadMemory">xmlSecGCryptAppPkcs12LoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppPkcs12Load">xmlSecGCryptAppPkcs12Load</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptAppShutdown">xmlSecGCryptAppShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptGenerateRandom">xmlSecGCryptGenerateRandom</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptHmacGetMinOutputLength">xmlSecGCryptHmacGetMinOutputLength</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptHmacSetMinOutputLength">xmlSecGCryptHmacSetMinOutputLength</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptInit">xmlSecGCryptInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataAesGetKlass">xmlSecGCryptKeyDataAesGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataAesId">xmlSecGCryptKeyDataAesId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataAesSet">xmlSecGCryptKeyDataAesSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataDesGetKlass">xmlSecGCryptKeyDataDesGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataDesId">xmlSecGCryptKeyDataDesId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataDesSet">xmlSecGCryptKeyDataDesSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataDsaAdoptKey">xmlSecGCryptKeyDataDsaAdoptKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataDsaAdoptKeyPair">xmlSecGCryptKeyDataDsaAdoptKeyPair</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataDsaGetKlass">xmlSecGCryptKeyDataDsaGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataDsaGetPrivateKey">xmlSecGCryptKeyDataDsaGetPrivateKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataDsaGetPublicKey">xmlSecGCryptKeyDataDsaGetPublicKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataDsaId">xmlSecGCryptKeyDataDsaId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataHmacGetKlass">xmlSecGCryptKeyDataHmacGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataHmacId">xmlSecGCryptKeyDataHmacId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataHmacSet">xmlSecGCryptKeyDataHmacSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataRsaAdoptKey">xmlSecGCryptKeyDataRsaAdoptKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataRsaAdoptKeyPair">xmlSecGCryptKeyDataRsaAdoptKeyPair</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataRsaGetKlass">xmlSecGCryptKeyDataRsaGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataRsaGetPrivateKey">xmlSecGCryptKeyDataRsaGetPrivateKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataRsaGetPublicKey">xmlSecGCryptKeyDataRsaGetPublicKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeyDataRsaId">xmlSecGCryptKeyDataRsaId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptKeysMngrInit">xmlSecGCryptKeysMngrInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptShutdown">xmlSecGCryptShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformAes128CbcGetKlass">xmlSecGCryptTransformAes128CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformAes128CbcId">xmlSecGCryptTransformAes128CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformAes192CbcGetKlass">xmlSecGCryptTransformAes192CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformAes192CbcId">xmlSecGCryptTransformAes192CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformAes256CbcGetKlass">xmlSecGCryptTransformAes256CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformAes256CbcId">xmlSecGCryptTransformAes256CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformDes3CbcGetKlass">xmlSecGCryptTransformDes3CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformDes3CbcId">xmlSecGCryptTransformDes3CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformDsaSha1GetKlass">xmlSecGCryptTransformDsaSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformDsaSha1Id">xmlSecGCryptTransformDsaSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformHmacMd5GetKlass">xmlSecGCryptTransformHmacMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformHmacMd5Id">xmlSecGCryptTransformHmacMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformHmacRipemd160GetKlass">xmlSecGCryptTransformHmacRipemd160GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformHmacRipemd160Id">xmlSecGCryptTransformHmacRipemd160Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformHmacSha1GetKlass">xmlSecGCryptTransformHmacSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformHmacSha1Id">xmlSecGCryptTransformHmacSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformHmacSha256GetKlass">xmlSecGCryptTransformHmacSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformHmacSha256Id">xmlSecGCryptTransformHmacSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformHmacSha384GetKlass">xmlSecGCryptTransformHmacSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformHmacSha384Id">xmlSecGCryptTransformHmacSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformHmacSha512GetKlass">xmlSecGCryptTransformHmacSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformHmacSha512Id">xmlSecGCryptTransformHmacSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformKWAes128GetKlass">xmlSecGCryptTransformKWAes128GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformKWAes128Id">xmlSecGCryptTransformKWAes128Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformKWAes192GetKlass">xmlSecGCryptTransformKWAes192GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformKWAes192Id">xmlSecGCryptTransformKWAes192Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformKWAes256GetKlass">xmlSecGCryptTransformKWAes256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformKWAes256Id">xmlSecGCryptTransformKWAes256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformKWDes3GetKlass">xmlSecGCryptTransformKWDes3GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformKWDes3Id">xmlSecGCryptTransformKWDes3Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformMd5GetKlass">xmlSecGCryptTransformMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformMd5Id">xmlSecGCryptTransformMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformRipemd160GetKlass">xmlSecGCryptTransformRipemd160GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformRipemd160Id">xmlSecGCryptTransformRipemd160Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformRsaMd5GetKlass">xmlSecGCryptTransformRsaMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformRsaMd5Id">xmlSecGCryptTransformRsaMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformRsaRipemd160GetKlass">xmlSecGCryptTransformRsaRipemd160GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformRsaRipemd160Id">xmlSecGCryptTransformRsaRipemd160Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformRsaSha1GetKlass">xmlSecGCryptTransformRsaSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformRsaSha1Id">xmlSecGCryptTransformRsaSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformRsaSha256GetKlass">xmlSecGCryptTransformRsaSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformRsaSha256Id">xmlSecGCryptTransformRsaSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformRsaSha384GetKlass">xmlSecGCryptTransformRsaSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformRsaSha384Id">xmlSecGCryptTransformRsaSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformRsaSha512GetKlass">xmlSecGCryptTransformRsaSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformRsaSha512Id">xmlSecGCryptTransformRsaSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformSha1GetKlass">xmlSecGCryptTransformSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformSha1Id">xmlSecGCryptTransformSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformSha256GetKlass">xmlSecGCryptTransformSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformSha256Id">xmlSecGCryptTransformSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformSha384GetKlass">xmlSecGCryptTransformSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformSha384Id">xmlSecGCryptTransformSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformSha512GetKlass">xmlSecGCryptTransformSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGCryptTransformSha512Id">xmlSecGCryptTransformSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGenerateAndAddID">xmlSecGenerateAndAddID</link></para></listitem>
-<listitem><para><link linkend="xmlSecGenerateID">xmlSecGenerateID</link></para></listitem>
-<listitem><para><link linkend="xmlSecGetHex">xmlSecGetHex</link></para></listitem>
-<listitem><para><link linkend="xmlSecGetKeyCallback">xmlSecGetKeyCallback</link></para></listitem>
-<listitem><para><link linkend="xmlSecGetNextElementNode">xmlSecGetNextElementNode</link></para></listitem>
-<listitem><para><link linkend="xmlSecGetNodeNsHref">xmlSecGetNodeNsHref</link></para></listitem>
-<listitem><para><link linkend="xmlSecGetQName">xmlSecGetQName</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppDefaultKeysMngrAdoptKey">xmlSecGnuTLSAppDefaultKeysMngrAdoptKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppDefaultKeysMngrInit">xmlSecGnuTLSAppDefaultKeysMngrInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppDefaultKeysMngrLoad">xmlSecGnuTLSAppDefaultKeysMngrLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppDefaultKeysMngrSave">xmlSecGnuTLSAppDefaultKeysMngrSave</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppGetDefaultPwdCallback">xmlSecGnuTLSAppGetDefaultPwdCallback</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppInit">xmlSecGnuTLSAppInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppKeyCertLoadMemory">xmlSecGnuTLSAppKeyCertLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppKeyCertLoad">xmlSecGnuTLSAppKeyCertLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppKeyLoadMemory">xmlSecGnuTLSAppKeyLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppKeyLoad">xmlSecGnuTLSAppKeyLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppKeysMngrCertLoadMemory">xmlSecGnuTLSAppKeysMngrCertLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppKeysMngrCertLoad">xmlSecGnuTLSAppKeysMngrCertLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppPkcs12LoadMemory">xmlSecGnuTLSAppPkcs12LoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppPkcs12Load">xmlSecGnuTLSAppPkcs12Load</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSAppShutdown">xmlSecGnuTLSAppShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSGenerateRandom">xmlSecGnuTLSGenerateRandom</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSHmacGetMinOutputLength">xmlSecGnuTLSHmacGetMinOutputLength</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSHmacSetMinOutputLength">xmlSecGnuTLSHmacSetMinOutputLength</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSInit">xmlSecGnuTLSInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataAesGetKlass">xmlSecGnuTLSKeyDataAesGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataAesId">xmlSecGnuTLSKeyDataAesId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataAesSet">xmlSecGnuTLSKeyDataAesSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataDesGetKlass">xmlSecGnuTLSKeyDataDesGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataDesId">xmlSecGnuTLSKeyDataDesId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataDesSet">xmlSecGnuTLSKeyDataDesSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataDsaAdoptPrivateKey">xmlSecGnuTLSKeyDataDsaAdoptPrivateKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataDsaAdoptPublicKey">xmlSecGnuTLSKeyDataDsaAdoptPublicKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataDsaGetKlass">xmlSecGnuTLSKeyDataDsaGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataDsaId">xmlSecGnuTLSKeyDataDsaId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataHmacGetKlass">xmlSecGnuTLSKeyDataHmacGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataHmacId">xmlSecGnuTLSKeyDataHmacId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataHmacSet">xmlSecGnuTLSKeyDataHmacSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataRawX509CertGetKlass">xmlSecGnuTLSKeyDataRawX509CertGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataRawX509CertId">xmlSecGnuTLSKeyDataRawX509CertId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataRsaAdoptPrivateKey">xmlSecGnuTLSKeyDataRsaAdoptPrivateKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataRsaAdoptPublicKey">xmlSecGnuTLSKeyDataRsaAdoptPublicKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataRsaGetKlass">xmlSecGnuTLSKeyDataRsaGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataRsaId">xmlSecGnuTLSKeyDataRsaId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataX509AdoptCert">xmlSecGnuTLSKeyDataX509AdoptCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataX509AdoptCrl">xmlSecGnuTLSKeyDataX509AdoptCrl</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataX509AdoptKeyCert">xmlSecGnuTLSKeyDataX509AdoptKeyCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataX509GetCert">xmlSecGnuTLSKeyDataX509GetCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataX509GetCertsSize">xmlSecGnuTLSKeyDataX509GetCertsSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataX509GetCrl">xmlSecGnuTLSKeyDataX509GetCrl</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataX509GetCrlsSize">xmlSecGnuTLSKeyDataX509GetCrlsSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataX509GetKeyCert">xmlSecGnuTLSKeyDataX509GetKeyCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataX509GetKlass">xmlSecGnuTLSKeyDataX509GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeyDataX509Id">xmlSecGnuTLSKeyDataX509Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSKeysMngrInit">xmlSecGnuTLSKeysMngrInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSShutdown">xmlSecGnuTLSShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformAes128CbcGetKlass">xmlSecGnuTLSTransformAes128CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformAes128CbcId">xmlSecGnuTLSTransformAes128CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformAes192CbcGetKlass">xmlSecGnuTLSTransformAes192CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformAes192CbcId">xmlSecGnuTLSTransformAes192CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformAes256CbcGetKlass">xmlSecGnuTLSTransformAes256CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformAes256CbcId">xmlSecGnuTLSTransformAes256CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformDes3CbcGetKlass">xmlSecGnuTLSTransformDes3CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformDes3CbcId">xmlSecGnuTLSTransformDes3CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformDsaSha1GetKlass">xmlSecGnuTLSTransformDsaSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformDsaSha1Id">xmlSecGnuTLSTransformDsaSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformHmacMd5GetKlass">xmlSecGnuTLSTransformHmacMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformHmacMd5Id">xmlSecGnuTLSTransformHmacMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformHmacRipemd160GetKlass">xmlSecGnuTLSTransformHmacRipemd160GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformHmacRipemd160Id">xmlSecGnuTLSTransformHmacRipemd160Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformHmacSha1GetKlass">xmlSecGnuTLSTransformHmacSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformHmacSha1Id">xmlSecGnuTLSTransformHmacSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformHmacSha256GetKlass">xmlSecGnuTLSTransformHmacSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformHmacSha256Id">xmlSecGnuTLSTransformHmacSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformHmacSha384GetKlass">xmlSecGnuTLSTransformHmacSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformHmacSha384Id">xmlSecGnuTLSTransformHmacSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformHmacSha512GetKlass">xmlSecGnuTLSTransformHmacSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformHmacSha512Id">xmlSecGnuTLSTransformHmacSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformKWAes128GetKlass">xmlSecGnuTLSTransformKWAes128GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformKWAes128Id">xmlSecGnuTLSTransformKWAes128Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformKWAes192GetKlass">xmlSecGnuTLSTransformKWAes192GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformKWAes192Id">xmlSecGnuTLSTransformKWAes192Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformKWAes256GetKlass">xmlSecGnuTLSTransformKWAes256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformKWAes256Id">xmlSecGnuTLSTransformKWAes256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformKWDes3GetKlass">xmlSecGnuTLSTransformKWDes3GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformKWDes3Id">xmlSecGnuTLSTransformKWDes3Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformMd5GetKlass">xmlSecGnuTLSTransformMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformMd5Id">xmlSecGnuTLSTransformMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformRipemd160GetKlass">xmlSecGnuTLSTransformRipemd160GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformRipemd160Id">xmlSecGnuTLSTransformRipemd160Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformRsaMd5GetKlass">xmlSecGnuTLSTransformRsaMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformRsaMd5Id">xmlSecGnuTLSTransformRsaMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformRsaRipemd160GetKlass">xmlSecGnuTLSTransformRsaRipemd160GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformRsaRipemd160Id">xmlSecGnuTLSTransformRsaRipemd160Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformRsaSha1GetKlass">xmlSecGnuTLSTransformRsaSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformRsaSha1Id">xmlSecGnuTLSTransformRsaSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformRsaSha256GetKlass">xmlSecGnuTLSTransformRsaSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformRsaSha256Id">xmlSecGnuTLSTransformRsaSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformRsaSha384GetKlass">xmlSecGnuTLSTransformRsaSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformRsaSha384Id">xmlSecGnuTLSTransformRsaSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformRsaSha512GetKlass">xmlSecGnuTLSTransformRsaSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformRsaSha512Id">xmlSecGnuTLSTransformRsaSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformSha1GetKlass">xmlSecGnuTLSTransformSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformSha1Id">xmlSecGnuTLSTransformSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformSha256GetKlass">xmlSecGnuTLSTransformSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformSha256Id">xmlSecGnuTLSTransformSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformSha384GetKlass">xmlSecGnuTLSTransformSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformSha384Id">xmlSecGnuTLSTransformSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformSha512GetKlass">xmlSecGnuTLSTransformSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSTransformSha512Id">xmlSecGnuTLSTransformSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSX509CertGetKey">xmlSecGnuTLSX509CertGetKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSX509StoreAdoptCert">xmlSecGnuTLSX509StoreAdoptCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSX509StoreFindCert">xmlSecGnuTLSX509StoreFindCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSX509StoreGetKlass">xmlSecGnuTLSX509StoreGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSX509StoreId">xmlSecGnuTLSX509StoreId</link></para></listitem>
-<listitem><para><link linkend="xmlSecGnuTLSX509StoreVerify">xmlSecGnuTLSX509StoreVerify</link></para></listitem>
-<listitem><para><link linkend="xmlSecInit">xmlSecInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecIOCleanupCallbacks">xmlSecIOCleanupCallbacks</link></para></listitem>
-<listitem><para><link linkend="xmlSecIOInit">xmlSecIOInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecIORegisterCallbacks">xmlSecIORegisterCallbacks</link></para></listitem>
-<listitem><para><link linkend="xmlSecIORegisterDefaultCallbacks">xmlSecIORegisterDefaultCallbacks</link></para></listitem>
-<listitem><para><link linkend="xmlSecIOShutdown">xmlSecIOShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecIsEmptyNode">xmlSecIsEmptyNode</link></para></listitem>
-<listitem><para><link linkend="xmlSecIsEmptyString">xmlSecIsEmptyString</link></para></listitem>
-<listitem><para><link linkend="xmlSecIsHex">xmlSecIsHex</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyAdoptData">xmlSecKeyAdoptData</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyCheckId">xmlSecKeyCheckId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyCopy">xmlSecKeyCopy</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyCreate">xmlSecKeyCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataAesGetKlass">xmlSecKeyDataAesGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataAesId">xmlSecKeyDataAesId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinarySize">xmlSecKeyDataBinarySize</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinaryValueBinRead">xmlSecKeyDataBinaryValueBinRead</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinaryValueBinWrite">xmlSecKeyDataBinaryValueBinWrite</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinaryValueDebugDump">xmlSecKeyDataBinaryValueDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinaryValueDebugXmlDump">xmlSecKeyDataBinaryValueDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinaryValueDuplicate">xmlSecKeyDataBinaryValueDuplicate</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinaryValueFinalize">xmlSecKeyDataBinaryValueFinalize</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinaryValueGetBuffer">xmlSecKeyDataBinaryValueGetBuffer</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinaryValueGetSize">xmlSecKeyDataBinaryValueGetSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinaryValueInitialize">xmlSecKeyDataBinaryValueInitialize</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinaryValueSetBuffer">xmlSecKeyDataBinaryValueSetBuffer</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinaryValueXmlRead">xmlSecKeyDataBinaryValueXmlRead</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinaryValueXmlWrite">xmlSecKeyDataBinaryValueXmlWrite</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinReadMethod">xmlSecKeyDataBinReadMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinRead">xmlSecKeyDataBinRead</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinWriteMethod">xmlSecKeyDataBinWriteMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataBinWrite">xmlSecKeyDataBinWrite</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataCheckId">xmlSecKeyDataCheckId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataCheckSize">xmlSecKeyDataCheckSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataCheckUsage">xmlSecKeyDataCheckUsage</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataCreate">xmlSecKeyDataCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataDebugDumpMethod">xmlSecKeyDataDebugDumpMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataDebugDump">xmlSecKeyDataDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataDebugXmlDump">xmlSecKeyDataDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataDesGetKlass">xmlSecKeyDataDesGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataDesId">xmlSecKeyDataDesId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataDestroy">xmlSecKeyDataDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataDsaGetKlass">xmlSecKeyDataDsaGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataDsaId">xmlSecKeyDataDsaId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataDuplicateMethod">xmlSecKeyDataDuplicateMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataDuplicate">xmlSecKeyDataDuplicate</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataEcdsaGetKlass">xmlSecKeyDataEcdsaGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataEcdsaId">xmlSecKeyDataEcdsaId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataEncryptedKeyGetKlass">xmlSecKeyDataEncryptedKeyGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataEncryptedKeyId">xmlSecKeyDataEncryptedKeyId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataFinalizeMethod">xmlSecKeyDataFinalizeMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataFormat">xmlSecKeyDataFormat</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataGenerateMethod">xmlSecKeyDataGenerateMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataGenerate">xmlSecKeyDataGenerate</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataGetIdentifierMethod">xmlSecKeyDataGetIdentifierMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataGetIdentifier">xmlSecKeyDataGetIdentifier</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataGetName">xmlSecKeyDataGetName</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataGetSizeMethod">xmlSecKeyDataGetSizeMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataGetSize">xmlSecKeyDataGetSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataGetTypeMethod">xmlSecKeyDataGetTypeMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataGetType">xmlSecKeyDataGetType</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataGost2001GetKlass">xmlSecKeyDataGost2001GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataGost2001Id">xmlSecKeyDataGost2001Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataHmacGetKlass">xmlSecKeyDataHmacGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataHmacId">xmlSecKeyDataHmacId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIdListDebugDump">xmlSecKeyDataIdListDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIdListDebugXmlDump">xmlSecKeyDataIdListDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIdListFindByHref">xmlSecKeyDataIdListFindByHref</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIdListFindByName">xmlSecKeyDataIdListFindByName</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIdListFindByNode">xmlSecKeyDataIdListFindByNode</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIdListFind">xmlSecKeyDataIdListFind</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIdListGetKlass">xmlSecKeyDataIdListGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIdListId">xmlSecKeyDataIdListId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIdsGet">xmlSecKeyDataIdsGet</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIdsInit">xmlSecKeyDataIdsInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIdsRegisterDefault">xmlSecKeyDataIdsRegisterDefault</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIdsRegister">xmlSecKeyDataIdsRegister</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIdsShutdown">xmlSecKeyDataIdsShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIdUnknown">xmlSecKeyDataIdUnknown</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataInitMethod">xmlSecKeyDataInitMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataIsValid">xmlSecKeyDataIsValid</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataKlassGetName">xmlSecKeyDataKlassGetName</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataKlass">xmlSecKeyDataKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataListGetKlass">xmlSecKeyDataListGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataListId">xmlSecKeyDataListId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyData">xmlSecKeyData</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataNameGetKlass">xmlSecKeyDataNameGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataNameId">xmlSecKeyDataNameId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataRawX509CertGetKlass">xmlSecKeyDataRawX509CertGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataRawX509CertId">xmlSecKeyDataRawX509CertId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataRetrievalMethodGetKlass">xmlSecKeyDataRetrievalMethodGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataRetrievalMethodId">xmlSecKeyDataRetrievalMethodId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataRsaGetKlass">xmlSecKeyDataRsaGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataRsaId">xmlSecKeyDataRsaId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataStoreCheckId">xmlSecKeyDataStoreCheckId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataStoreCheckSize">xmlSecKeyDataStoreCheckSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataStoreCreate">xmlSecKeyDataStoreCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataStoreDestroy">xmlSecKeyDataStoreDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataStoreFinalizeMethod">xmlSecKeyDataStoreFinalizeMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataStoreGetName">xmlSecKeyDataStoreGetName</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataStoreIdUnknown">xmlSecKeyDataStoreIdUnknown</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataStoreInitializeMethod">xmlSecKeyDataStoreInitializeMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataStoreIsValid">xmlSecKeyDataStoreIsValid</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataStoreKlassGetName">xmlSecKeyDataStoreKlassGetName</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataStoreKlass">xmlSecKeyDataStoreKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataStore">xmlSecKeyDataStore</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataStorePtrListGetKlass">xmlSecKeyDataStorePtrListGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataStorePtrListId">xmlSecKeyDataStorePtrListId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataTypeAny">xmlSecKeyDataTypeAny</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataType">xmlSecKeyDataType</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataTypeNone">xmlSecKeyDataTypeNone</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataTypePermanent">xmlSecKeyDataTypePermanent</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataTypePrivate">xmlSecKeyDataTypePrivate</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataTypePublic">xmlSecKeyDataTypePublic</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataTypeSession">xmlSecKeyDataTypeSession</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataTypeSymmetric">xmlSecKeyDataTypeSymmetric</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataTypeTrusted">xmlSecKeyDataTypeTrusted</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataTypeUnknown">xmlSecKeyDataTypeUnknown</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataUsageAny">xmlSecKeyDataUsageAny</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataUsageKeyInfoNode">xmlSecKeyDataUsageKeyInfoNode</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataUsageKeyInfoNodeRead">xmlSecKeyDataUsageKeyInfoNodeRead</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataUsageKeyInfoNodeWrite">xmlSecKeyDataUsageKeyInfoNodeWrite</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataUsageKeyValueNode">xmlSecKeyDataUsageKeyValueNode</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataUsageKeyValueNodeRead">xmlSecKeyDataUsageKeyValueNodeRead</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataUsageKeyValueNodeWrite">xmlSecKeyDataUsageKeyValueNodeWrite</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataUsage">xmlSecKeyDataUsage</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataUsageRetrievalMethodNodeBin">xmlSecKeyDataUsageRetrievalMethodNodeBin</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataUsageRetrievalMethodNode">xmlSecKeyDataUsageRetrievalMethodNode</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataUsageRetrievalMethodNodeXml">xmlSecKeyDataUsageRetrievalMethodNodeXml</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataUsageUnknown">xmlSecKeyDataUsageUnknown</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataValueGetKlass">xmlSecKeyDataValueGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataValueId">xmlSecKeyDataValueId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataX509GetKlass">xmlSecKeyDataX509GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataX509Id">xmlSecKeyDataX509Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataXmlReadMethod">xmlSecKeyDataXmlReadMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataXmlRead">xmlSecKeyDataXmlRead</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataXmlWriteMethod">xmlSecKeyDataXmlWriteMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDataXmlWrite">xmlSecKeyDataXmlWrite</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDebugDump">xmlSecKeyDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDebugXmlDump">xmlSecKeyDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDestroy">xmlSecKeyDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyDuplicate">xmlSecKeyDuplicate</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyEmpty">xmlSecKeyEmpty</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyEnsureData">xmlSecKeyEnsureData</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyGenerateByName">xmlSecKeyGenerateByName</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyGenerate">xmlSecKeyGenerate</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyGetData">xmlSecKeyGetData</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyGetName">xmlSecKeyGetName</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyGetType">xmlSecKeyGetType</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyGetValue">xmlSecKeyGetValue</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyInfoCtxCopyUserPref">xmlSecKeyInfoCtxCopyUserPref</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyInfoCtxCreateEncCtx">xmlSecKeyInfoCtxCreateEncCtx</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyInfoCtxCreate">xmlSecKeyInfoCtxCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyInfoCtxDebugDump">xmlSecKeyInfoCtxDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyInfoCtxDebugXmlDump">xmlSecKeyInfoCtxDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyInfoCtxDestroy">xmlSecKeyInfoCtxDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyInfoCtxFinalize">xmlSecKeyInfoCtxFinalize</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyInfoCtxInitialize">xmlSecKeyInfoCtxInitialize</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyInfoCtx">xmlSecKeyInfoCtx</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyInfoCtxReset">xmlSecKeyInfoCtxReset</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-KEYINFO-FLAGS-DONT-STOP-ON-KEY-FOUND-CAPS">XMLSEC-KEYINFO-FLAGS-DONT-STOP-ON-KEY-FOUND</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-KEYINFO-FLAGS-ENCKEY-DONT-STOP-ON-FAILED-DECRYPTION-CAPS">XMLSEC-KEYINFO-FLAGS-ENCKEY-DONT-STOP-ON-FAILED-DECRYPTION</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-KEYINFO-FLAGS-KEYNAME-STOP-ON-UNKNOWN-CAPS">XMLSEC-KEYINFO-FLAGS-KEYNAME-STOP-ON-UNKNOWN</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-KEYINFO-FLAGS-KEYVALUE-STOP-ON-UNKNOWN-CHILD-CAPS">XMLSEC-KEYINFO-FLAGS-KEYVALUE-STOP-ON-UNKNOWN-CHILD</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-MISMATCH-HREF-CAPS">XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-MISMATCH-HREF</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-UNKNOWN-HREF-CAPS">XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-UNKNOWN-HREF</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-KEYINFO-FLAGS-STOP-ON-EMPTY-NODE-CAPS">XMLSEC-KEYINFO-FLAGS-STOP-ON-EMPTY-NODE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-KEYINFO-FLAGS-STOP-ON-UNKNOWN-CHILD-CAPS">XMLSEC-KEYINFO-FLAGS-STOP-ON-UNKNOWN-CHILD</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-KEYINFO-FLAGS-X509DATA-DONT-VERIFY-CERTS-CAPS">XMLSEC-KEYINFO-FLAGS-X509DATA-DONT-VERIFY-CERTS</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-STRICT-CHECKS-CAPS">XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-STRICT-CHECKS</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-INVALID-CERT-CAPS">XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-INVALID-CERT</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CERT-CAPS">XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CERT</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CHILD-CAPS">XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CHILD</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyInfoMode">xmlSecKeyInfoMode</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyInfoNodeRead">xmlSecKeyInfoNodeRead</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyInfoNodeWrite">xmlSecKeyInfoNodeWrite</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyIsValid">xmlSecKeyIsValid</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyMatch">xmlSecKeyMatch</link></para></listitem>
-<listitem><para><link linkend="xmlSecKey">xmlSecKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyPtrListGetKlass">xmlSecKeyPtrListGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyPtrListId">xmlSecKeyPtrListId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyReadBinaryFile">xmlSecKeyReadBinaryFile</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyReadBuffer">xmlSecKeyReadBuffer</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyReadMemory">xmlSecKeyReadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyReqCopy">xmlSecKeyReqCopy</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyReqDebugDump">xmlSecKeyReqDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyReqDebugXmlDump">xmlSecKeyReqDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyReqFinalize">xmlSecKeyReqFinalize</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyReqInitialize">xmlSecKeyReqInitialize</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyReqMatchKey">xmlSecKeyReqMatchKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyReqMatchKeyValue">xmlSecKeyReqMatchKeyValue</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyReq">xmlSecKeyReq</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyReqReset">xmlSecKeyReqReset</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeySetName">xmlSecKeySetName</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeySetValue">xmlSecKeySetValue</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeysMngrAdoptDataStore">xmlSecKeysMngrAdoptDataStore</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeysMngrAdoptKeysStore">xmlSecKeysMngrAdoptKeysStore</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeysMngrCreate">xmlSecKeysMngrCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeysMngrDestroy">xmlSecKeysMngrDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeysMngrFindKey">xmlSecKeysMngrFindKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeysMngrGetDataStore">xmlSecKeysMngrGetDataStore</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeysMngrGetKey">xmlSecKeysMngrGetKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeysMngrGetKeysStore">xmlSecKeysMngrGetKeysStore</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeysMngr">xmlSecKeysMngr</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyStoreCheckId">xmlSecKeyStoreCheckId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyStoreCheckSize">xmlSecKeyStoreCheckSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyStoreCreate">xmlSecKeyStoreCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyStoreDestroy">xmlSecKeyStoreDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyStoreFinalizeMethod">xmlSecKeyStoreFinalizeMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyStoreFindKeyMethod">xmlSecKeyStoreFindKeyMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyStoreFindKey">xmlSecKeyStoreFindKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyStoreGetName">xmlSecKeyStoreGetName</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyStoreIdUnknown">xmlSecKeyStoreIdUnknown</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyStoreInitializeMethod">xmlSecKeyStoreInitializeMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyStoreIsValid">xmlSecKeyStoreIsValid</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyStoreKlassGetName">xmlSecKeyStoreKlassGetName</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyStoreKlass">xmlSecKeyStoreKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyStore">xmlSecKeyStore</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUsageAny">xmlSecKeyUsageAny</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUsageDecrypt">xmlSecKeyUsageDecrypt</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUsageEncrypt">xmlSecKeyUsageEncrypt</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUsageKeyExchange">xmlSecKeyUsageKeyExchange</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUsage">xmlSecKeyUsage</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUsageSign">xmlSecKeyUsageSign</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUsageVerify">xmlSecKeyUsageVerify</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUseWithCopy">xmlSecKeyUseWithCopy</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUseWithCreate">xmlSecKeyUseWithCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUseWithDebugDump">xmlSecKeyUseWithDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUseWithDebugXmlDump">xmlSecKeyUseWithDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUseWithDestroy">xmlSecKeyUseWithDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUseWithDuplicate">xmlSecKeyUseWithDuplicate</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUseWithFinalize">xmlSecKeyUseWithFinalize</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUseWithInitialize">xmlSecKeyUseWithInitialize</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUseWith">xmlSecKeyUseWith</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUseWithPtrListGetKlass">xmlSecKeyUseWithPtrListGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUseWithPtrListId">xmlSecKeyUseWithPtrListId</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUseWithReset">xmlSecKeyUseWithReset</link></para></listitem>
-<listitem><para><link linkend="xmlSecKeyUseWithSet">xmlSecKeyUseWithSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppDefaultKeysMngrAdoptKey">xmlSecMSCryptoAppDefaultKeysMngrAdoptKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppDefaultKeysMngrAdoptKeyStore">xmlSecMSCryptoAppDefaultKeysMngrAdoptKeyStore</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppDefaultKeysMngrAdoptTrustedStore">xmlSecMSCryptoAppDefaultKeysMngrAdoptTrustedStore</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppDefaultKeysMngrAdoptUntrustedStore">xmlSecMSCryptoAppDefaultKeysMngrAdoptUntrustedStore</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppDefaultKeysMngrInit">xmlSecMSCryptoAppDefaultKeysMngrInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppDefaultKeysMngrLoad">xmlSecMSCryptoAppDefaultKeysMngrLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppDefaultKeysMngrPrivateKeyLoad">xmlSecMSCryptoAppDefaultKeysMngrPrivateKeyLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppDefaultKeysMngrPublicKeyLoad">xmlSecMSCryptoAppDefaultKeysMngrPublicKeyLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppDefaultKeysMngrSave">xmlSecMSCryptoAppDefaultKeysMngrSave</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppDefaultKeysMngrSymKeyLoad">xmlSecMSCryptoAppDefaultKeysMngrSymKeyLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppGetCertStoreName">xmlSecMSCryptoAppGetCertStoreName</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppGetDefaultPwdCallback">xmlSecMSCryptoAppGetDefaultPwdCallback</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppInit">xmlSecMSCryptoAppInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppKeyCertLoadMemory">xmlSecMSCryptoAppKeyCertLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppKeyCertLoad">xmlSecMSCryptoAppKeyCertLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppKeyLoadMemory">xmlSecMSCryptoAppKeyLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppKeyLoad">xmlSecMSCryptoAppKeyLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppKeysMngrCertLoadMemory">xmlSecMSCryptoAppKeysMngrCertLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppKeysMngrCertLoad">xmlSecMSCryptoAppKeysMngrCertLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppPkcs12LoadMemory">xmlSecMSCryptoAppPkcs12LoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppPkcs12Load">xmlSecMSCryptoAppPkcs12Load</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoAppShutdown">xmlSecMSCryptoAppShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoCertAdopt">xmlSecMSCryptoCertAdopt</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoCertDup">xmlSecMSCryptoCertDup</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoConvertLocaleToUnicode">xmlSecMSCryptoConvertLocaleToUnicode</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoConvertLocaleToUtf8">xmlSecMSCryptoConvertLocaleToUtf8</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoConvertTstrToUtf8">xmlSecMSCryptoConvertTstrToUtf8</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoConvertUnicodeToUtf8">xmlSecMSCryptoConvertUnicodeToUtf8</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoConvertUtf8ToLocale">xmlSecMSCryptoConvertUtf8ToLocale</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoConvertUtf8ToTstr">xmlSecMSCryptoConvertUtf8ToTstr</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoConvertUtf8ToUnicode">xmlSecMSCryptoConvertUtf8ToUnicode</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoErrorsDefaultCallback">xmlSecMSCryptoErrorsDefaultCallback</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoGenerateRandom">xmlSecMSCryptoGenerateRandom</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoHmacGetMinOutputLength">xmlSecMSCryptoHmacGetMinOutputLength</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoHmacSetMinOutputLength">xmlSecMSCryptoHmacSetMinOutputLength</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoInit">xmlSecMSCryptoInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataAesGetKlass">xmlSecMSCryptoKeyDataAesGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataAesId">xmlSecMSCryptoKeyDataAesId</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataAesSet">xmlSecMSCryptoKeyDataAesSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataDesGetKlass">xmlSecMSCryptoKeyDataDesGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataDesId">xmlSecMSCryptoKeyDataDesId</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataDsaGetKlass">xmlSecMSCryptoKeyDataDsaGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataDsaId">xmlSecMSCryptoKeyDataDsaId</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataGetCert">xmlSecMSCryptoKeyDataGetCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataGetDecryptKey">xmlSecMSCryptoKeyDataGetDecryptKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataGetKey">xmlSecMSCryptoKeyDataGetKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataGetMSCryptoKeySpec">xmlSecMSCryptoKeyDataGetMSCryptoKeySpec</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataGetMSCryptoProvider">xmlSecMSCryptoKeyDataGetMSCryptoProvider</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataGost2001GetKlass">xmlSecMSCryptoKeyDataGost2001GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataGost2001Id">xmlSecMSCryptoKeyDataGost2001Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataHmacGetKlass">xmlSecMSCryptoKeyDataHmacGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataHmacId">xmlSecMSCryptoKeyDataHmacId</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataHmacSet">xmlSecMSCryptoKeyDataHmacSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataRawX509CertGetKlass">xmlSecMSCryptoKeyDataRawX509CertGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataRawX509CertId">xmlSecMSCryptoKeyDataRawX509CertId</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataRsaGetKlass">xmlSecMSCryptoKeyDataRsaGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataRsaId">xmlSecMSCryptoKeyDataRsaId</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataX509AdoptCert">xmlSecMSCryptoKeyDataX509AdoptCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataX509AdoptCrl">xmlSecMSCryptoKeyDataX509AdoptCrl</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataX509AdoptKeyCert">xmlSecMSCryptoKeyDataX509AdoptKeyCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataX509GetCert">xmlSecMSCryptoKeyDataX509GetCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataX509GetCertsSize">xmlSecMSCryptoKeyDataX509GetCertsSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataX509GetCrl">xmlSecMSCryptoKeyDataX509GetCrl</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataX509GetCrlsSize">xmlSecMSCryptoKeyDataX509GetCrlsSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataX509GetKeyCert">xmlSecMSCryptoKeyDataX509GetKeyCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataX509GetKlass">xmlSecMSCryptoKeyDataX509GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeyDataX509Id">xmlSecMSCryptoKeyDataX509Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeysMngrInit">xmlSecMSCryptoKeysMngrInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeysStoreAdoptKey">xmlSecMSCryptoKeysStoreAdoptKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeysStoreGetKlass">xmlSecMSCryptoKeysStoreGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeysStoreId">xmlSecMSCryptoKeysStoreId</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeysStoreLoad">xmlSecMSCryptoKeysStoreLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoKeysStoreSave">xmlSecMSCryptoKeysStoreSave</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoShutdown">xmlSecMSCryptoShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformAes128CbcGetKlass">xmlSecMSCryptoTransformAes128CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformAes128CbcId">xmlSecMSCryptoTransformAes128CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformAes192CbcGetKlass">xmlSecMSCryptoTransformAes192CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformAes192CbcId">xmlSecMSCryptoTransformAes192CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformAes256CbcGetKlass">xmlSecMSCryptoTransformAes256CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformAes256CbcId">xmlSecMSCryptoTransformAes256CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformDes3CbcGetKlass">xmlSecMSCryptoTransformDes3CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformDes3CbcId">xmlSecMSCryptoTransformDes3CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformDsaSha1GetKlass">xmlSecMSCryptoTransformDsaSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformDsaSha1Id">xmlSecMSCryptoTransformDsaSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformGost2001GostR3411-94GetKlass-CAPS">xmlSecMSCryptoTransformGost2001GostR3411-94GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformGost2001GostR3411-94Id-CAPS">xmlSecMSCryptoTransformGost2001GostR3411-94Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformGostR3411-94GetKlass-CAPS">xmlSecMSCryptoTransformGostR3411-94GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformGostR3411-94Id-CAPS">xmlSecMSCryptoTransformGostR3411-94Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformHmacMd5GetKlass">xmlSecMSCryptoTransformHmacMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformHmacMd5Id">xmlSecMSCryptoTransformHmacMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformHmacSha1GetKlass">xmlSecMSCryptoTransformHmacSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformHmacSha1Id">xmlSecMSCryptoTransformHmacSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformHmacSha256GetKlass">xmlSecMSCryptoTransformHmacSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformHmacSha256Id">xmlSecMSCryptoTransformHmacSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformHmacSha384GetKlass">xmlSecMSCryptoTransformHmacSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformHmacSha384Id">xmlSecMSCryptoTransformHmacSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformHmacSha512GetKlass">xmlSecMSCryptoTransformHmacSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformHmacSha512Id">xmlSecMSCryptoTransformHmacSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformKWAes128GetKlass">xmlSecMSCryptoTransformKWAes128GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformKWAes128Id">xmlSecMSCryptoTransformKWAes128Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformKWAes192GetKlass">xmlSecMSCryptoTransformKWAes192GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformKWAes192Id">xmlSecMSCryptoTransformKWAes192Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformKWAes256GetKlass">xmlSecMSCryptoTransformKWAes256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformKWAes256Id">xmlSecMSCryptoTransformKWAes256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformKWDes3GetKlass">xmlSecMSCryptoTransformKWDes3GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformKWDes3Id">xmlSecMSCryptoTransformKWDes3Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformMd5GetKlass">xmlSecMSCryptoTransformMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformMd5Id">xmlSecMSCryptoTransformMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformRsaMd5GetKlass">xmlSecMSCryptoTransformRsaMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformRsaMd5Id">xmlSecMSCryptoTransformRsaMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformRsaOaepGetKlass">xmlSecMSCryptoTransformRsaOaepGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformRsaOaepId">xmlSecMSCryptoTransformRsaOaepId</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformRsaPkcs1GetKlass">xmlSecMSCryptoTransformRsaPkcs1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformRsaPkcs1Id">xmlSecMSCryptoTransformRsaPkcs1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformRsaSha1GetKlass">xmlSecMSCryptoTransformRsaSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformRsaSha1Id">xmlSecMSCryptoTransformRsaSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformRsaSha256GetKlass">xmlSecMSCryptoTransformRsaSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformRsaSha256Id">xmlSecMSCryptoTransformRsaSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformRsaSha384GetKlass">xmlSecMSCryptoTransformRsaSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformRsaSha384Id">xmlSecMSCryptoTransformRsaSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformRsaSha512GetKlass">xmlSecMSCryptoTransformRsaSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformRsaSha512Id">xmlSecMSCryptoTransformRsaSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformSha1GetKlass">xmlSecMSCryptoTransformSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformSha1Id">xmlSecMSCryptoTransformSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformSha256GetKlass">xmlSecMSCryptoTransformSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformSha256Id">xmlSecMSCryptoTransformSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformSha384GetKlass">xmlSecMSCryptoTransformSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformSha384Id">xmlSecMSCryptoTransformSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformSha512GetKlass">xmlSecMSCryptoTransformSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoTransformSha512Id">xmlSecMSCryptoTransformSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoX509StoreAdoptCert">xmlSecMSCryptoX509StoreAdoptCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoX509StoreAdoptKeyStore">xmlSecMSCryptoX509StoreAdoptKeyStore</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoX509StoreAdoptTrustedStore">xmlSecMSCryptoX509StoreAdoptTrustedStore</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoX509StoreAdoptUntrustedStore">xmlSecMSCryptoX509StoreAdoptUntrustedStore</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoX509StoreEnableSystemTrustedCerts">xmlSecMSCryptoX509StoreEnableSystemTrustedCerts</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoX509StoreGetKlass">xmlSecMSCryptoX509StoreGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecMSCryptoX509StoreId">xmlSecMSCryptoX509StoreId</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeEncodeAndSetContent">xmlSecNodeEncodeAndSetContent</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeGetName">xmlSecNodeGetName</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeSetAddList">xmlSecNodeSetAddList</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeSetAdd">xmlSecNodeSetAdd</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeSetContains">xmlSecNodeSetContains</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeSetCreate">xmlSecNodeSetCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeSetDebugDump">xmlSecNodeSetDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeSetDestroy">xmlSecNodeSetDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeSetDocDestroy">xmlSecNodeSetDocDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeSetDumpTextNodes">xmlSecNodeSetDumpTextNodes</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeSetGetChildren">xmlSecNodeSetGetChildren</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeSet">xmlSecNodeSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeSetOp">xmlSecNodeSetOp</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeSetType">xmlSecNodeSetType</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeSetWalkCallback">xmlSecNodeSetWalkCallback</link></para></listitem>
-<listitem><para><link linkend="xmlSecNodeSetWalk">xmlSecNodeSetWalk</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppDefaultKeysMngrAdoptKey">xmlSecNssAppDefaultKeysMngrAdoptKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppDefaultKeysMngrInit">xmlSecNssAppDefaultKeysMngrInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppDefaultKeysMngrLoad">xmlSecNssAppDefaultKeysMngrLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppDefaultKeysMngrSave">xmlSecNssAppDefaultKeysMngrSave</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppGetDefaultPwdCallback">xmlSecNssAppGetDefaultPwdCallback</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppInit">xmlSecNssAppInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppKeyCertLoadMemory">xmlSecNssAppKeyCertLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppKeyCertLoad">xmlSecNssAppKeyCertLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppKeyCertLoadSECItem">xmlSecNssAppKeyCertLoadSECItem</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppKeyFromCertLoadSECItem">xmlSecNssAppKeyFromCertLoadSECItem</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppKeyLoadMemory">xmlSecNssAppKeyLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppKeyLoad">xmlSecNssAppKeyLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppKeyLoadSECItem">xmlSecNssAppKeyLoadSECItem</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppKeysMngrCertLoadMemory">xmlSecNssAppKeysMngrCertLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppKeysMngrCertLoad">xmlSecNssAppKeysMngrCertLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppKeysMngrCertLoadSECItem">xmlSecNssAppKeysMngrCertLoadSECItem</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppPkcs12LoadMemory">xmlSecNssAppPkcs12LoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppPkcs12Load">xmlSecNssAppPkcs12Load</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppPkcs12LoadSECItem">xmlSecNssAppPkcs12LoadSECItem</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssAppShutdown">xmlSecNssAppShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssErrorsDefaultCallback">xmlSecNssErrorsDefaultCallback</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssGenerateRandom">xmlSecNssGenerateRandom</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssGetInternalKeySlot">xmlSecNssGetInternalKeySlot</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssHmacGetMinOutputLength">xmlSecNssHmacGetMinOutputLength</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssHmacSetMinOutputLength">xmlSecNssHmacSetMinOutputLength</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssInit">xmlSecNssInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataAesGetKlass">xmlSecNssKeyDataAesGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataAesId">xmlSecNssKeyDataAesId</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataAesSet">xmlSecNssKeyDataAesSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataDesGetKlass">xmlSecNssKeyDataDesGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataDesId">xmlSecNssKeyDataDesId</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataDesSet">xmlSecNssKeyDataDesSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataDsaGetKlass">xmlSecNssKeyDataDsaGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataDsaId">xmlSecNssKeyDataDsaId</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataHmacGetKlass">xmlSecNssKeyDataHmacGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataHmacId">xmlSecNssKeyDataHmacId</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataHmacSet">xmlSecNssKeyDataHmacSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataRawX509CertGetKlass">xmlSecNssKeyDataRawX509CertGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataRawX509CertId">xmlSecNssKeyDataRawX509CertId</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataRsaGetKlass">xmlSecNssKeyDataRsaGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataRsaId">xmlSecNssKeyDataRsaId</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataX509AdoptCert">xmlSecNssKeyDataX509AdoptCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataX509AdoptCrl">xmlSecNssKeyDataX509AdoptCrl</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataX509AdoptKeyCert">xmlSecNssKeyDataX509AdoptKeyCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataX509GetCert">xmlSecNssKeyDataX509GetCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataX509GetCertsSize">xmlSecNssKeyDataX509GetCertsSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataX509GetCrl">xmlSecNssKeyDataX509GetCrl</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataX509GetCrlsSize">xmlSecNssKeyDataX509GetCrlsSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataX509GetKeyCert">xmlSecNssKeyDataX509GetKeyCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataX509GetKlass">xmlSecNssKeyDataX509GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeyDataX509Id">xmlSecNssKeyDataX509Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeysMngrInit">xmlSecNssKeysMngrInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeysStoreAdoptKey">xmlSecNssKeysStoreAdoptKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeysStoreGetKlass">xmlSecNssKeysStoreGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeysStoreId">xmlSecNssKeysStoreId</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeysStoreLoad">xmlSecNssKeysStoreLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssKeysStoreSave">xmlSecNssKeysStoreSave</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssNodeGetBigNumValue">xmlSecNssNodeGetBigNumValue</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssNodeSetBigNumValue">xmlSecNssNodeSetBigNumValue</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssPKIAdoptKey">xmlSecNssPKIAdoptKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssPKIKeyDataDuplicate">xmlSecNssPKIKeyDataDuplicate</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssPKIKeyDataGetKeyType">xmlSecNssPKIKeyDataGetKeyType</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssPKIKeyDataGetPrivKey">xmlSecNssPKIKeyDataGetPrivKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssPKIKeyDataGetPubKey">xmlSecNssPKIKeyDataGetPubKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssShutdown">xmlSecNssShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformAes128CbcGetKlass">xmlSecNssTransformAes128CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformAes128CbcId">xmlSecNssTransformAes128CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformAes192CbcGetKlass">xmlSecNssTransformAes192CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformAes192CbcId">xmlSecNssTransformAes192CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformAes256CbcGetKlass">xmlSecNssTransformAes256CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformAes256CbcId">xmlSecNssTransformAes256CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformDes3CbcGetKlass">xmlSecNssTransformDes3CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformDes3CbcId">xmlSecNssTransformDes3CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformDsaSha1GetKlass">xmlSecNssTransformDsaSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformDsaSha1Id">xmlSecNssTransformDsaSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformHmacMd5GetKlass">xmlSecNssTransformHmacMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformHmacMd5Id">xmlSecNssTransformHmacMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformHmacRipemd160GetKlass">xmlSecNssTransformHmacRipemd160GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformHmacRipemd160Id">xmlSecNssTransformHmacRipemd160Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformHmacSha1GetKlass">xmlSecNssTransformHmacSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformHmacSha1Id">xmlSecNssTransformHmacSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformHmacSha256GetKlass">xmlSecNssTransformHmacSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformHmacSha256Id">xmlSecNssTransformHmacSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformHmacSha384GetKlass">xmlSecNssTransformHmacSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformHmacSha384Id">xmlSecNssTransformHmacSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformHmacSha512GetKlass">xmlSecNssTransformHmacSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformHmacSha512Id">xmlSecNssTransformHmacSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformKWAes128GetKlass">xmlSecNssTransformKWAes128GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformKWAes128Id">xmlSecNssTransformKWAes128Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformKWAes192GetKlass">xmlSecNssTransformKWAes192GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformKWAes192Id">xmlSecNssTransformKWAes192Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformKWAes256GetKlass">xmlSecNssTransformKWAes256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformKWAes256Id">xmlSecNssTransformKWAes256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformKWDes3GetKlass">xmlSecNssTransformKWDes3GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformKWDes3Id">xmlSecNssTransformKWDes3Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformMd5GetKlass">xmlSecNssTransformMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformMd5Id">xmlSecNssTransformMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformRsaMd5GetKlass">xmlSecNssTransformRsaMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformRsaMd5Id">xmlSecNssTransformRsaMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformRsaOaepGetKlass">xmlSecNssTransformRsaOaepGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformRsaOaepId">xmlSecNssTransformRsaOaepId</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformRsaPkcs1GetKlass">xmlSecNssTransformRsaPkcs1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformRsaPkcs1Id">xmlSecNssTransformRsaPkcs1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformRsaSha1GetKlass">xmlSecNssTransformRsaSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformRsaSha1Id">xmlSecNssTransformRsaSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformRsaSha256GetKlass">xmlSecNssTransformRsaSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformRsaSha256Id">xmlSecNssTransformRsaSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformRsaSha384GetKlass">xmlSecNssTransformRsaSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformRsaSha384Id">xmlSecNssTransformRsaSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformRsaSha512GetKlass">xmlSecNssTransformRsaSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformRsaSha512Id">xmlSecNssTransformRsaSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformSha1GetKlass">xmlSecNssTransformSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformSha1Id">xmlSecNssTransformSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformSha256GetKlass">xmlSecNssTransformSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformSha256Id">xmlSecNssTransformSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformSha384GetKlass">xmlSecNssTransformSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformSha384Id">xmlSecNssTransformSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformSha512GetKlass">xmlSecNssTransformSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssTransformSha512Id">xmlSecNssTransformSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssX509CertGetKey">xmlSecNssX509CertGetKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssX509StoreAdoptCert">xmlSecNssX509StoreAdoptCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssX509StoreFindCert">xmlSecNssX509StoreFindCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssX509StoreGetKlass">xmlSecNssX509StoreGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssX509StoreId">xmlSecNssX509StoreId</link></para></listitem>
-<listitem><para><link linkend="xmlSecNssX509StoreVerify">xmlSecNssX509StoreVerify</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppDefaultKeysMngrAdoptKey">xmlSecOpenSSLAppDefaultKeysMngrAdoptKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppDefaultKeysMngrInit">xmlSecOpenSSLAppDefaultKeysMngrInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppDefaultKeysMngrLoad">xmlSecOpenSSLAppDefaultKeysMngrLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppDefaultKeysMngrSave">xmlSecOpenSSLAppDefaultKeysMngrSave</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppGetDefaultPwdCallback">xmlSecOpenSSLAppGetDefaultPwdCallback</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppInit">xmlSecOpenSSLAppInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppKeyCertLoadBIO">xmlSecOpenSSLAppKeyCertLoadBIO</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppKeyCertLoadMemory">xmlSecOpenSSLAppKeyCertLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppKeyCertLoad">xmlSecOpenSSLAppKeyCertLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppKeyFromCertLoadBIO">xmlSecOpenSSLAppKeyFromCertLoadBIO</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppKeyLoadBIO">xmlSecOpenSSLAppKeyLoadBIO</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppKeyLoadMemory">xmlSecOpenSSLAppKeyLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppKeyLoad">xmlSecOpenSSLAppKeyLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppKeysMngrAddCertsFile">xmlSecOpenSSLAppKeysMngrAddCertsFile</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppKeysMngrAddCertsPath">xmlSecOpenSSLAppKeysMngrAddCertsPath</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppKeysMngrCertLoadBIO">xmlSecOpenSSLAppKeysMngrCertLoadBIO</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppKeysMngrCertLoadMemory">xmlSecOpenSSLAppKeysMngrCertLoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppKeysMngrCertLoad">xmlSecOpenSSLAppKeysMngrCertLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppPkcs12LoadBIO">xmlSecOpenSSLAppPkcs12LoadBIO</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppPkcs12LoadMemory">xmlSecOpenSSLAppPkcs12LoadMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppPkcs12Load">xmlSecOpenSSLAppPkcs12Load</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLAppShutdown">xmlSecOpenSSLAppShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLErrorsDefaultCallback">xmlSecOpenSSLErrorsDefaultCallback</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-OPENSSL-ERRORS-FUNCTION-CAPS">XMLSEC-OPENSSL-ERRORS-FUNCTION</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-OPENSSL-ERRORS-LIB-CAPS">XMLSEC-OPENSSL-ERRORS-LIB</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLEvpKeyAdopt">xmlSecOpenSSLEvpKeyAdopt</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLEvpKeyDataAdoptEvp">xmlSecOpenSSLEvpKeyDataAdoptEvp</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLEvpKeyDataGetEvp">xmlSecOpenSSLEvpKeyDataGetEvp</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLEvpKeyDup">xmlSecOpenSSLEvpKeyDup</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLGenerateRandom">xmlSecOpenSSLGenerateRandom</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLGetDefaultTrustedCertsFolder">xmlSecOpenSSLGetDefaultTrustedCertsFolder</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLHmacGetMinOutputLength">xmlSecOpenSSLHmacGetMinOutputLength</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLHmacSetMinOutputLength">xmlSecOpenSSLHmacSetMinOutputLength</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLInit">xmlSecOpenSSLInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataAesGetKlass">xmlSecOpenSSLKeyDataAesGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataAesId">xmlSecOpenSSLKeyDataAesId</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataAesSet">xmlSecOpenSSLKeyDataAesSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataDesGetKlass">xmlSecOpenSSLKeyDataDesGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataDesId">xmlSecOpenSSLKeyDataDesId</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataDesSet">xmlSecOpenSSLKeyDataDesSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataDsaAdoptDsa">xmlSecOpenSSLKeyDataDsaAdoptDsa</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataDsaAdoptEvp">xmlSecOpenSSLKeyDataDsaAdoptEvp</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataDsaGetDsa">xmlSecOpenSSLKeyDataDsaGetDsa</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataDsaGetEvp">xmlSecOpenSSLKeyDataDsaGetEvp</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataDsaGetKlass">xmlSecOpenSSLKeyDataDsaGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataDsaId">xmlSecOpenSSLKeyDataDsaId</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataEcdsaAdoptEcdsa">xmlSecOpenSSLKeyDataEcdsaAdoptEcdsa</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataEcdsaAdoptEvp">xmlSecOpenSSLKeyDataEcdsaAdoptEvp</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataEcdsaGetEcdsa">xmlSecOpenSSLKeyDataEcdsaGetEcdsa</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataEcdsaGetEvp">xmlSecOpenSSLKeyDataEcdsaGetEvp</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataEcdsaGetKlass">xmlSecOpenSSLKeyDataEcdsaGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataEcdsaId">xmlSecOpenSSLKeyDataEcdsaId</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataGost2001GetKlass">xmlSecOpenSSLKeyDataGost2001GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataGost2001Id">xmlSecOpenSSLKeyDataGost2001Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataHmacGetKlass">xmlSecOpenSSLKeyDataHmacGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataHmacId">xmlSecOpenSSLKeyDataHmacId</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataHmacSet">xmlSecOpenSSLKeyDataHmacSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataRawX509CertGetKlass">xmlSecOpenSSLKeyDataRawX509CertGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataRawX509CertId">xmlSecOpenSSLKeyDataRawX509CertId</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataRsaAdoptEvp">xmlSecOpenSSLKeyDataRsaAdoptEvp</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataRsaAdoptRsa">xmlSecOpenSSLKeyDataRsaAdoptRsa</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataRsaGetEvp">xmlSecOpenSSLKeyDataRsaGetEvp</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataRsaGetKlass">xmlSecOpenSSLKeyDataRsaGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataRsaGetRsa">xmlSecOpenSSLKeyDataRsaGetRsa</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataRsaId">xmlSecOpenSSLKeyDataRsaId</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataX509AdoptCert">xmlSecOpenSSLKeyDataX509AdoptCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataX509AdoptCrl">xmlSecOpenSSLKeyDataX509AdoptCrl</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataX509AdoptKeyCert">xmlSecOpenSSLKeyDataX509AdoptKeyCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataX509GetCert">xmlSecOpenSSLKeyDataX509GetCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataX509GetCertsSize">xmlSecOpenSSLKeyDataX509GetCertsSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataX509GetCrl">xmlSecOpenSSLKeyDataX509GetCrl</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataX509GetCrlsSize">xmlSecOpenSSLKeyDataX509GetCrlsSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataX509GetKeyCert">xmlSecOpenSSLKeyDataX509GetKeyCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataX509GetKlass">xmlSecOpenSSLKeyDataX509GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeyDataX509Id">xmlSecOpenSSLKeyDataX509Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLKeysMngrInit">xmlSecOpenSSLKeysMngrInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLNodeGetBNValue">xmlSecOpenSSLNodeGetBNValue</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLNodeSetBNValue">xmlSecOpenSSLNodeSetBNValue</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLSetDefaultTrustedCertsFolder">xmlSecOpenSSLSetDefaultTrustedCertsFolder</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLShutdown">xmlSecOpenSSLShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformAes128CbcGetKlass">xmlSecOpenSSLTransformAes128CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformAes128CbcId">xmlSecOpenSSLTransformAes128CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformAes192CbcGetKlass">xmlSecOpenSSLTransformAes192CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformAes192CbcId">xmlSecOpenSSLTransformAes192CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformAes256CbcGetKlass">xmlSecOpenSSLTransformAes256CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformAes256CbcId">xmlSecOpenSSLTransformAes256CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformDes3CbcGetKlass">xmlSecOpenSSLTransformDes3CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformDes3CbcId">xmlSecOpenSSLTransformDes3CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformDsaSha1GetKlass">xmlSecOpenSSLTransformDsaSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformDsaSha1Id">xmlSecOpenSSLTransformDsaSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformDsaSha256GetKlass">xmlSecOpenSSLTransformDsaSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformDsaSha256Id">xmlSecOpenSSLTransformDsaSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformEcdsaSha1GetKlass">xmlSecOpenSSLTransformEcdsaSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformEcdsaSha1Id">xmlSecOpenSSLTransformEcdsaSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformEcdsaSha224GetKlass">xmlSecOpenSSLTransformEcdsaSha224GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformEcdsaSha224Id">xmlSecOpenSSLTransformEcdsaSha224Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformEcdsaSha256GetKlass">xmlSecOpenSSLTransformEcdsaSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformEcdsaSha256Id">xmlSecOpenSSLTransformEcdsaSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformEcdsaSha384GetKlass">xmlSecOpenSSLTransformEcdsaSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformEcdsaSha384Id">xmlSecOpenSSLTransformEcdsaSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformEcdsaSha512GetKlass">xmlSecOpenSSLTransformEcdsaSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformEcdsaSha512Id">xmlSecOpenSSLTransformEcdsaSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformGost2001GostR3411-94GetKlass-CAPS">xmlSecOpenSSLTransformGost2001GostR3411-94GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformGost2001GostR3411-94Id-CAPS">xmlSecOpenSSLTransformGost2001GostR3411-94Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformGostR3411-94GetKlass-CAPS">xmlSecOpenSSLTransformGostR3411-94GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformGostR3411-94Id-CAPS">xmlSecOpenSSLTransformGostR3411-94Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformHmacMd5GetKlass">xmlSecOpenSSLTransformHmacMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformHmacMd5Id">xmlSecOpenSSLTransformHmacMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformHmacRipemd160GetKlass">xmlSecOpenSSLTransformHmacRipemd160GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformHmacRipemd160Id">xmlSecOpenSSLTransformHmacRipemd160Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformHmacSha1GetKlass">xmlSecOpenSSLTransformHmacSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformHmacSha1Id">xmlSecOpenSSLTransformHmacSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformHmacSha224GetKlass">xmlSecOpenSSLTransformHmacSha224GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformHmacSha224Id">xmlSecOpenSSLTransformHmacSha224Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformHmacSha256GetKlass">xmlSecOpenSSLTransformHmacSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformHmacSha256Id">xmlSecOpenSSLTransformHmacSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformHmacSha384GetKlass">xmlSecOpenSSLTransformHmacSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformHmacSha384Id">xmlSecOpenSSLTransformHmacSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformHmacSha512GetKlass">xmlSecOpenSSLTransformHmacSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformHmacSha512Id">xmlSecOpenSSLTransformHmacSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformKWAes128GetKlass">xmlSecOpenSSLTransformKWAes128GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformKWAes128Id">xmlSecOpenSSLTransformKWAes128Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformKWAes192GetKlass">xmlSecOpenSSLTransformKWAes192GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformKWAes192Id">xmlSecOpenSSLTransformKWAes192Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformKWAes256GetKlass">xmlSecOpenSSLTransformKWAes256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformKWAes256Id">xmlSecOpenSSLTransformKWAes256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformKWDes3GetKlass">xmlSecOpenSSLTransformKWDes3GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformKWDes3Id">xmlSecOpenSSLTransformKWDes3Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformMd5GetKlass">xmlSecOpenSSLTransformMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformMd5Id">xmlSecOpenSSLTransformMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRipemd160GetKlass">xmlSecOpenSSLTransformRipemd160GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRipemd160Id">xmlSecOpenSSLTransformRipemd160Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaMd5GetKlass">xmlSecOpenSSLTransformRsaMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaMd5Id">xmlSecOpenSSLTransformRsaMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaOaepGetKlass">xmlSecOpenSSLTransformRsaOaepGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaOaepId">xmlSecOpenSSLTransformRsaOaepId</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaPkcs1GetKlass">xmlSecOpenSSLTransformRsaPkcs1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaPkcs1Id">xmlSecOpenSSLTransformRsaPkcs1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaRipemd160GetKlass">xmlSecOpenSSLTransformRsaRipemd160GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaRipemd160Id">xmlSecOpenSSLTransformRsaRipemd160Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaSha1GetKlass">xmlSecOpenSSLTransformRsaSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaSha1Id">xmlSecOpenSSLTransformRsaSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaSha224GetKlass">xmlSecOpenSSLTransformRsaSha224GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaSha224Id">xmlSecOpenSSLTransformRsaSha224Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaSha256GetKlass">xmlSecOpenSSLTransformRsaSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaSha256Id">xmlSecOpenSSLTransformRsaSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaSha384GetKlass">xmlSecOpenSSLTransformRsaSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaSha384Id">xmlSecOpenSSLTransformRsaSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaSha512GetKlass">xmlSecOpenSSLTransformRsaSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformRsaSha512Id">xmlSecOpenSSLTransformRsaSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformSha1GetKlass">xmlSecOpenSSLTransformSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformSha1Id">xmlSecOpenSSLTransformSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformSha224GetKlass">xmlSecOpenSSLTransformSha224GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformSha224Id">xmlSecOpenSSLTransformSha224Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformSha256GetKlass">xmlSecOpenSSLTransformSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformSha256Id">xmlSecOpenSSLTransformSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformSha384GetKlass">xmlSecOpenSSLTransformSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformSha384Id">xmlSecOpenSSLTransformSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformSha512GetKlass">xmlSecOpenSSLTransformSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLTransformSha512Id">xmlSecOpenSSLTransformSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLX509CertGetKey">xmlSecOpenSSLX509CertGetKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLX509StoreAddCertsFile">xmlSecOpenSSLX509StoreAddCertsFile</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLX509StoreAddCertsPath">xmlSecOpenSSLX509StoreAddCertsPath</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLX509StoreAdoptCert">xmlSecOpenSSLX509StoreAdoptCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLX509StoreAdoptCrl">xmlSecOpenSSLX509StoreAdoptCrl</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLX509StoreFindCert">xmlSecOpenSSLX509StoreFindCert</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLX509StoreGetKlass">xmlSecOpenSSLX509StoreGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLX509StoreId">xmlSecOpenSSLX509StoreId</link></para></listitem>
-<listitem><para><link linkend="xmlSecOpenSSLX509StoreVerify">xmlSecOpenSSLX509StoreVerify</link></para></listitem>
-<listitem><para><link linkend="xmlSecParseFile">xmlSecParseFile</link></para></listitem>
-<listitem><para><link linkend="xmlSecParseMemoryExt">xmlSecParseMemoryExt</link></para></listitem>
-<listitem><para><link linkend="xmlSecParseMemory">xmlSecParseMemory</link></para></listitem>
-<listitem><para><link linkend="xmlSecPrintXmlString">xmlSecPrintXmlString</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrDebugDumpItemMethod">xmlSecPtrDebugDumpItemMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrDestroyItemMethod">xmlSecPtrDestroyItemMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrDuplicateItemMethod">xmlSecPtrDuplicateItemMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListAdd">xmlSecPtrListAdd</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListCheckId">xmlSecPtrListCheckId</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListCopy">xmlSecPtrListCopy</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListCreate">xmlSecPtrListCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListDebugDump">xmlSecPtrListDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListDebugXmlDump">xmlSecPtrListDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListDestroy">xmlSecPtrListDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListDuplicate">xmlSecPtrListDuplicate</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListEmpty">xmlSecPtrListEmpty</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListFinalize">xmlSecPtrListFinalize</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListGetItem">xmlSecPtrListGetItem</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListGetName">xmlSecPtrListGetName</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListGetSize">xmlSecPtrListGetSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListIdUnknown">xmlSecPtrListIdUnknown</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListInitialize">xmlSecPtrListInitialize</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListIsValid">xmlSecPtrListIsValid</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListKlassGetName">xmlSecPtrListKlassGetName</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListKlass">xmlSecPtrListKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrList">xmlSecPtrList</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListRemoveAndReturn">xmlSecPtrListRemoveAndReturn</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListRemove">xmlSecPtrListRemove</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListSetDefaultAllocMode">xmlSecPtrListSetDefaultAllocMode</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtrListSet">xmlSecPtrListSet</link></para></listitem>
-<listitem><para><link linkend="xmlSecPtr">xmlSecPtr</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-PTR-TO-FUNC-IMPL-CAPS">XMLSEC-PTR-TO-FUNC-IMPL</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-PTR-TO-FUNC-CAPS">XMLSEC-PTR-TO-FUNC</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2BitMaskDebugDump">xmlSecQName2BitMaskDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2BitMaskDebugXmlDump">xmlSecQName2BitMaskDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2BitMaskGetBitMaskFromString">xmlSecQName2BitMaskGetBitMaskFromString</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2BitMaskGetBitMask">xmlSecQName2BitMaskGetBitMask</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2BitMaskGetInfo">xmlSecQName2BitMaskGetInfo</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2BitMaskGetStringFromBitMask">xmlSecQName2BitMaskGetStringFromBitMask</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2BitMaskInfoConstPtr">xmlSecQName2BitMaskInfoConstPtr</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2BitMaskInfo">xmlSecQName2BitMaskInfo</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2BitMaskNodesRead">xmlSecQName2BitMaskNodesRead</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2BitMaskNodesWrite">xmlSecQName2BitMaskNodesWrite</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2IntegerAttributeRead">xmlSecQName2IntegerAttributeRead</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2IntegerAttributeWrite">xmlSecQName2IntegerAttributeWrite</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2IntegerDebugDump">xmlSecQName2IntegerDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2IntegerDebugXmlDump">xmlSecQName2IntegerDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2IntegerGetInfo">xmlSecQName2IntegerGetInfo</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2IntegerGetIntegerFromString">xmlSecQName2IntegerGetIntegerFromString</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2IntegerGetInteger">xmlSecQName2IntegerGetInteger</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2IntegerGetStringFromInteger">xmlSecQName2IntegerGetStringFromInteger</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2IntegerInfoConstPtr">xmlSecQName2IntegerInfoConstPtr</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2IntegerInfo">xmlSecQName2IntegerInfo</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2IntegerNodeRead">xmlSecQName2IntegerNodeRead</link></para></listitem>
-<listitem><para><link linkend="xmlSecQName2IntegerNodeWrite">xmlSecQName2IntegerNodeWrite</link></para></listitem>
-<listitem><para><link linkend="xmlSecReplaceContentAndReturn">xmlSecReplaceContentAndReturn</link></para></listitem>
-<listitem><para><link linkend="xmlSecReplaceContent">xmlSecReplaceContent</link></para></listitem>
-<listitem><para><link linkend="xmlSecReplaceNodeAndReturn">xmlSecReplaceNodeAndReturn</link></para></listitem>
-<listitem><para><link linkend="xmlSecReplaceNodeBufferAndReturn">xmlSecReplaceNodeBufferAndReturn</link></para></listitem>
-<listitem><para><link linkend="xmlSecReplaceNodeBuffer">xmlSecReplaceNodeBuffer</link></para></listitem>
-<listitem><para><link linkend="xmlSecReplaceNode">xmlSecReplaceNode</link></para></listitem>
-<listitem><para><link linkend="xmlSecShutdown">xmlSecShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecSimpleKeysStoreAdoptKey">xmlSecSimpleKeysStoreAdoptKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecSimpleKeysStoreGetKeys">xmlSecSimpleKeysStoreGetKeys</link></para></listitem>
-<listitem><para><link linkend="xmlSecSimpleKeysStoreGetKlass">xmlSecSimpleKeysStoreGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecSimpleKeysStoreId">xmlSecSimpleKeysStoreId</link></para></listitem>
-<listitem><para><link linkend="xmlSecSimpleKeysStoreLoad">xmlSecSimpleKeysStoreLoad</link></para></listitem>
-<listitem><para><link linkend="xmlSecSimpleKeysStoreSave">xmlSecSimpleKeysStoreSave</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-SIZE-BAD-CAST-CAPS">XMLSEC-SIZE-BAD-CAST</link></para></listitem>
-<listitem><para><link linkend="xmlSecSize">xmlSecSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap11AddBodyEntry">xmlSecSoap11AddBodyEntry</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap11AddFaultEntry">xmlSecSoap11AddFaultEntry</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap11CheckEnvelope">xmlSecSoap11CheckEnvelope</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap11CreateEnvelope">xmlSecSoap11CreateEnvelope</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap11EnsureHeader">xmlSecSoap11EnsureHeader</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap11GetBodyEntriesNumber">xmlSecSoap11GetBodyEntriesNumber</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap11GetBodyEntry">xmlSecSoap11GetBodyEntry</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap11GetBody">xmlSecSoap11GetBody</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap11GetFaultEntry">xmlSecSoap11GetFaultEntry</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap11GetHeader">xmlSecSoap11GetHeader</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap12AddBodyEntry">xmlSecSoap12AddBodyEntry</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap12AddFaultDetailEntry">xmlSecSoap12AddFaultDetailEntry</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap12AddFaultEntry">xmlSecSoap12AddFaultEntry</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap12AddFaultReasonText">xmlSecSoap12AddFaultReasonText</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap12AddFaultSubcode">xmlSecSoap12AddFaultSubcode</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap12CheckEnvelope">xmlSecSoap12CheckEnvelope</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap12CreateEnvelope">xmlSecSoap12CreateEnvelope</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap12EnsureHeader">xmlSecSoap12EnsureHeader</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap12FaultCode">xmlSecSoap12FaultCode</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap12GetBodyEntriesNumber">xmlSecSoap12GetBodyEntriesNumber</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap12GetBodyEntry">xmlSecSoap12GetBodyEntry</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap12GetBody">xmlSecSoap12GetBody</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap12GetFaultEntry">xmlSecSoap12GetFaultEntry</link></para></listitem>
-<listitem><para><link linkend="xmlSecSoap12GetHeader">xmlSecSoap12GetHeader</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-STACK-OF-X509-CRL-CAPS">XMLSEC-STACK-OF-X509-CRL</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-STACK-OF-X509-CAPS">XMLSEC-STACK-OF-X509</link></para></listitem>
-<listitem><para><link linkend="xmlSecStringListGetKlass">xmlSecStringListGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecStringListId">xmlSecStringListId</link></para></listitem>
-<listitem><para><link linkend="xmlSecStrPrintf">xmlSecStrPrintf</link></para></listitem>
-<listitem><para><link linkend="xmlSecStrVPrintf">xmlSecStrVPrintf</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplCipherReferenceAddTransform">xmlSecTmplCipherReferenceAddTransform</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplEncDataAddEncProperty">xmlSecTmplEncDataAddEncProperty</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplEncDataCreate">xmlSecTmplEncDataCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplEncDataEnsureCipherReference">xmlSecTmplEncDataEnsureCipherReference</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplEncDataEnsureCipherValue">xmlSecTmplEncDataEnsureCipherValue</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplEncDataEnsureEncProperties">xmlSecTmplEncDataEnsureEncProperties</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplEncDataEnsureKeyInfo">xmlSecTmplEncDataEnsureKeyInfo</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplEncDataGetEncMethodNode">xmlSecTmplEncDataGetEncMethodNode</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplKeyInfoAddEncryptedKey">xmlSecTmplKeyInfoAddEncryptedKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplKeyInfoAddKeyName">xmlSecTmplKeyInfoAddKeyName</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplKeyInfoAddKeyValue">xmlSecTmplKeyInfoAddKeyValue</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplKeyInfoAddRetrievalMethod">xmlSecTmplKeyInfoAddRetrievalMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplKeyInfoAddX509Data">xmlSecTmplKeyInfoAddX509Data</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplManifestAddReference">xmlSecTmplManifestAddReference</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplObjectAddManifest">xmlSecTmplObjectAddManifest</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplObjectAddSignProperties">xmlSecTmplObjectAddSignProperties</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplReferenceAddTransform">xmlSecTmplReferenceAddTransform</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplReferenceListAddDataReference">xmlSecTmplReferenceListAddDataReference</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplReferenceListAddKeyReference">xmlSecTmplReferenceListAddKeyReference</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplRetrievalMethodAddTransform">xmlSecTmplRetrievalMethodAddTransform</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplSignatureAddObject">xmlSecTmplSignatureAddObject</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplSignatureAddReference">xmlSecTmplSignatureAddReference</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplSignatureCreate">xmlSecTmplSignatureCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplSignatureCreateNsPref">xmlSecTmplSignatureCreateNsPref</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplSignatureEnsureKeyInfo">xmlSecTmplSignatureEnsureKeyInfo</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplSignatureGetC14NMethodNode">xmlSecTmplSignatureGetC14NMethodNode</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplSignatureGetSignMethodNode">xmlSecTmplSignatureGetSignMethodNode</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplTransformAddC14NInclNamespaces">xmlSecTmplTransformAddC14NInclNamespaces</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplTransformAddHmacOutputLength">xmlSecTmplTransformAddHmacOutputLength</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplTransformAddRsaOaepParam">xmlSecTmplTransformAddRsaOaepParam</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplTransformAddXPath2">xmlSecTmplTransformAddXPath2</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplTransformAddXPath">xmlSecTmplTransformAddXPath</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplTransformAddXPointer">xmlSecTmplTransformAddXPointer</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplTransformAddXsltStylesheet">xmlSecTmplTransformAddXsltStylesheet</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplX509DataAddCertificate">xmlSecTmplX509DataAddCertificate</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplX509DataAddCRL">xmlSecTmplX509DataAddCRL</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplX509DataAddIssuerSerial">xmlSecTmplX509DataAddIssuerSerial</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplX509DataAddSKI">xmlSecTmplX509DataAddSKI</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplX509DataAddSubjectName">xmlSecTmplX509DataAddSubjectName</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplX509IssuerSerialAddIssuerName">xmlSecTmplX509IssuerSerialAddIssuerName</link></para></listitem>
-<listitem><para><link linkend="xmlSecTmplX509IssuerSerialAddSerialNumber">xmlSecTmplX509IssuerSerialAddSerialNumber</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformAes128CbcGetKlass">xmlSecTransformAes128CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformAes128CbcId">xmlSecTransformAes128CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformAes192CbcGetKlass">xmlSecTransformAes192CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformAes192CbcId">xmlSecTransformAes192CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformAes256CbcGetKlass">xmlSecTransformAes256CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformAes256CbcId">xmlSecTransformAes256CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformBase64GetKlass">xmlSecTransformBase64GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformBase64Id">xmlSecTransformBase64Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformBase64SetLineSize">xmlSecTransformBase64SetLineSize</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-TRANSFORM-BINARY-CHUNK-CAPS">XMLSEC-TRANSFORM-BINARY-CHUNK</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCheckId">xmlSecTransformCheckId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCheckSize">xmlSecTransformCheckSize</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformConnect">xmlSecTransformConnect</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCreateInputBuffer">xmlSecTransformCreateInputBuffer</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCreate">xmlSecTransformCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCreateOutputBuffer">xmlSecTransformCreateOutputBuffer</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxAppend">xmlSecTransformCtxAppend</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxBinaryExecute">xmlSecTransformCtxBinaryExecute</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxCopyUserPref">xmlSecTransformCtxCopyUserPref</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxCreateAndAppend">xmlSecTransformCtxCreateAndAppend</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxCreateAndPrepend">xmlSecTransformCtxCreateAndPrepend</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxCreate">xmlSecTransformCtxCreate</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxDebugDump">xmlSecTransformCtxDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxDebugXmlDump">xmlSecTransformCtxDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxDestroy">xmlSecTransformCtxDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxExecute">xmlSecTransformCtxExecute</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxFinalize">xmlSecTransformCtxFinalize</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-TRANSFORMCTX-FLAGS-USE-VISA3D-HACK-CAPS">XMLSEC-TRANSFORMCTX-FLAGS-USE-VISA3D-HACK</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxInitialize">xmlSecTransformCtxInitialize</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtx">xmlSecTransformCtx</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxNodeRead">xmlSecTransformCtxNodeRead</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxNodesListRead">xmlSecTransformCtxNodesListRead</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxPreExecuteCallback">xmlSecTransformCtxPreExecuteCallback</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxPrepare">xmlSecTransformCtxPrepare</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxPrepend">xmlSecTransformCtxPrepend</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxReset">xmlSecTransformCtxReset</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxSetUri">xmlSecTransformCtxSetUri</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxUriExecute">xmlSecTransformCtxUriExecute</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformCtxXmlExecute">xmlSecTransformCtxXmlExecute</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDataTypeBin">xmlSecTransformDataTypeBin</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDataType">xmlSecTransformDataType</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDataTypeUnknown">xmlSecTransformDataTypeUnknown</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDataTypeXml">xmlSecTransformDataTypeXml</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDebugDump">xmlSecTransformDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDebugXmlDump">xmlSecTransformDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDefaultGetDataType">xmlSecTransformDefaultGetDataType</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDefaultPopBin">xmlSecTransformDefaultPopBin</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDefaultPopXml">xmlSecTransformDefaultPopXml</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDefaultPushBin">xmlSecTransformDefaultPushBin</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDefaultPushXml">xmlSecTransformDefaultPushXml</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDes3CbcGetKlass">xmlSecTransformDes3CbcGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDes3CbcId">xmlSecTransformDes3CbcId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDestroy">xmlSecTransformDestroy</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDsaSha1GetKlass">xmlSecTransformDsaSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDsaSha1Id">xmlSecTransformDsaSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDsaSha256GetKlass">xmlSecTransformDsaSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformDsaSha256Id">xmlSecTransformDsaSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformEcdsaSha1GetKlass">xmlSecTransformEcdsaSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformEcdsaSha1Id">xmlSecTransformEcdsaSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformEcdsaSha224GetKlass">xmlSecTransformEcdsaSha224GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformEcdsaSha224Id">xmlSecTransformEcdsaSha224Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformEcdsaSha256GetKlass">xmlSecTransformEcdsaSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformEcdsaSha256Id">xmlSecTransformEcdsaSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformEcdsaSha384GetKlass">xmlSecTransformEcdsaSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformEcdsaSha384Id">xmlSecTransformEcdsaSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformEcdsaSha512GetKlass">xmlSecTransformEcdsaSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformEcdsaSha512Id">xmlSecTransformEcdsaSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformEnvelopedGetKlass">xmlSecTransformEnvelopedGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformEnvelopedId">xmlSecTransformEnvelopedId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformExclC14NGetKlass">xmlSecTransformExclC14NGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformExclC14NId">xmlSecTransformExclC14NId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformExclC14NWithCommentsGetKlass">xmlSecTransformExclC14NWithCommentsGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformExclC14NWithCommentsId">xmlSecTransformExclC14NWithCommentsId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformExecuteMethod">xmlSecTransformExecuteMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformExecute">xmlSecTransformExecute</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformFinalizeMethod">xmlSecTransformFinalizeMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformGetDataTypeMethod">xmlSecTransformGetDataTypeMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformGetDataType">xmlSecTransformGetDataType</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformGetName">xmlSecTransformGetName</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformGost2001GostR3411-94GetKlass-CAPS">xmlSecTransformGost2001GostR3411-94GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformGost2001GostR3411-94Id-CAPS">xmlSecTransformGost2001GostR3411-94Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformGostR3411-94GetKlass-CAPS">xmlSecTransformGostR3411-94GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformGostR3411-94Id-CAPS">xmlSecTransformGostR3411-94Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformHmacMd5GetKlass">xmlSecTransformHmacMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformHmacMd5Id">xmlSecTransformHmacMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformHmacRipemd160GetKlass">xmlSecTransformHmacRipemd160GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformHmacRipemd160Id">xmlSecTransformHmacRipemd160Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformHmacSha1GetKlass">xmlSecTransformHmacSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformHmacSha1Id">xmlSecTransformHmacSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformHmacSha224GetKlass">xmlSecTransformHmacSha224GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformHmacSha224Id">xmlSecTransformHmacSha224Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformHmacSha256GetKlass">xmlSecTransformHmacSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformHmacSha256Id">xmlSecTransformHmacSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformHmacSha384GetKlass">xmlSecTransformHmacSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformHmacSha384Id">xmlSecTransformHmacSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformHmacSha512GetKlass">xmlSecTransformHmacSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformHmacSha512Id">xmlSecTransformHmacSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformIdListDebugDump">xmlSecTransformIdListDebugDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformIdListDebugXmlDump">xmlSecTransformIdListDebugXmlDump</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformIdListFindByHref">xmlSecTransformIdListFindByHref</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformIdListFindByName">xmlSecTransformIdListFindByName</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformIdListFind">xmlSecTransformIdListFind</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformIdListGetKlass">xmlSecTransformIdListGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformIdListId">xmlSecTransformIdListId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformIdsGet">xmlSecTransformIdsGet</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformIdsInit">xmlSecTransformIdsInit</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformIdsRegisterDefault">xmlSecTransformIdsRegisterDefault</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformIdsRegister">xmlSecTransformIdsRegister</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformIdsShutdown">xmlSecTransformIdsShutdown</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformIdUnknown">xmlSecTransformIdUnknown</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformInclC14N11GetKlass">xmlSecTransformInclC14N11GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformInclC14N11Id">xmlSecTransformInclC14N11Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformInclC14N11WithCommentsGetKlass">xmlSecTransformInclC14N11WithCommentsGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformInclC14N11WithCommentsId">xmlSecTransformInclC14N11WithCommentsId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformInclC14NGetKlass">xmlSecTransformInclC14NGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformInclC14NId">xmlSecTransformInclC14NId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformInclC14NWithCommentsGetKlass">xmlSecTransformInclC14NWithCommentsGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformInclC14NWithCommentsId">xmlSecTransformInclC14NWithCommentsId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformInitializeMethod">xmlSecTransformInitializeMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformInputURIGetKlass">xmlSecTransformInputURIGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformInputURIId">xmlSecTransformInputURIId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformInputURIOpen">xmlSecTransformInputURIOpen</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformIsValid">xmlSecTransformIsValid</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformKlassGetName">xmlSecTransformKlassGetName</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformKlass">xmlSecTransformKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformKWAes128GetKlass">xmlSecTransformKWAes128GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformKWAes128Id">xmlSecTransformKWAes128Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformKWAes192GetKlass">xmlSecTransformKWAes192GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformKWAes192Id">xmlSecTransformKWAes192Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformKWAes256GetKlass">xmlSecTransformKWAes256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformKWAes256Id">xmlSecTransformKWAes256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformKWDes3GetKlass">xmlSecTransformKWDes3GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformKWDes3Id">xmlSecTransformKWDes3Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformMd5GetKlass">xmlSecTransformMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformMd5Id">xmlSecTransformMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformMemBufGetBuffer">xmlSecTransformMemBufGetBuffer</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformMemBufGetKlass">xmlSecTransformMemBufGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformMemBufId">xmlSecTransformMemBufId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformMode">xmlSecTransformMode</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransform">xmlSecTransform</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformNodeReadMethod">xmlSecTransformNodeReadMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformNodeRead">xmlSecTransformNodeRead</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformNodeWriteMethod">xmlSecTransformNodeWriteMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformOperation">xmlSecTransformOperation</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformPopBinMethod">xmlSecTransformPopBinMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformPopBin">xmlSecTransformPopBin</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformPopXmlMethod">xmlSecTransformPopXmlMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformPopXml">xmlSecTransformPopXml</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformPump">xmlSecTransformPump</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformPushBinMethod">xmlSecTransformPushBinMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformPushBin">xmlSecTransformPushBin</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformPushXmlMethod">xmlSecTransformPushXmlMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformPushXml">xmlSecTransformPushXml</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRemove">xmlSecTransformRemove</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRemoveXmlTagsC14NGetKlass">xmlSecTransformRemoveXmlTagsC14NGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRemoveXmlTagsC14NId">xmlSecTransformRemoveXmlTagsC14NId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRipemd160GetKlass">xmlSecTransformRipemd160GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRipemd160Id">xmlSecTransformRipemd160Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaMd5GetKlass">xmlSecTransformRsaMd5GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaMd5Id">xmlSecTransformRsaMd5Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaOaepGetKlass">xmlSecTransformRsaOaepGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaOaepId">xmlSecTransformRsaOaepId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaPkcs1GetKlass">xmlSecTransformRsaPkcs1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaPkcs1Id">xmlSecTransformRsaPkcs1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaRipemd160GetKlass">xmlSecTransformRsaRipemd160GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaRipemd160Id">xmlSecTransformRsaRipemd160Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaSha1GetKlass">xmlSecTransformRsaSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaSha1Id">xmlSecTransformRsaSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaSha224GetKlass">xmlSecTransformRsaSha224GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaSha224Id">xmlSecTransformRsaSha224Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaSha256GetKlass">xmlSecTransformRsaSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaSha256Id">xmlSecTransformRsaSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaSha384GetKlass">xmlSecTransformRsaSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaSha384Id">xmlSecTransformRsaSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaSha512GetKlass">xmlSecTransformRsaSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformRsaSha512Id">xmlSecTransformRsaSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformSetKeyMethod">xmlSecTransformSetKeyMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformSetKey">xmlSecTransformSetKey</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformSetKeyReq">xmlSecTransformSetKeyReq</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformSetKeyRequirementsMethod">xmlSecTransformSetKeyRequirementsMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformSha1GetKlass">xmlSecTransformSha1GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformSha1Id">xmlSecTransformSha1Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformSha224GetKlass">xmlSecTransformSha224GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformSha224Id">xmlSecTransformSha224Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformSha256GetKlass">xmlSecTransformSha256GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformSha256Id">xmlSecTransformSha256Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformSha384GetKlass">xmlSecTransformSha384GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformSha384Id">xmlSecTransformSha384Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformSha512GetKlass">xmlSecTransformSha512GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformSha512Id">xmlSecTransformSha512Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformStatus">xmlSecTransformStatus</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUriTypeAny">xmlSecTransformUriTypeAny</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUriTypeCheck">xmlSecTransformUriTypeCheck</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUriTypeEmpty">xmlSecTransformUriTypeEmpty</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUriTypeLocal">xmlSecTransformUriTypeLocal</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUriType">xmlSecTransformUriType</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUriTypeNone">xmlSecTransformUriTypeNone</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUriTypeRemote">xmlSecTransformUriTypeRemote</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUriTypeSameDocument">xmlSecTransformUriTypeSameDocument</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUsageAny">xmlSecTransformUsageAny</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUsageC14NMethod">xmlSecTransformUsageC14NMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUsageDigestMethod">xmlSecTransformUsageDigestMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUsageDSigTransform">xmlSecTransformUsageDSigTransform</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUsageEncryptionMethod">xmlSecTransformUsageEncryptionMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUsage">xmlSecTransformUsage</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUsageSignatureMethod">xmlSecTransformUsageSignatureMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformUsageUnknown">xmlSecTransformUsageUnknown</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformVerifyMethod">xmlSecTransformVerifyMethod</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformVerify">xmlSecTransformVerify</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformVerifyNodeContent">xmlSecTransformVerifyNodeContent</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformVisa3DHackGetKlass">xmlSecTransformVisa3DHackGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformVisa3DHackId">xmlSecTransformVisa3DHackId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformVisa3DHackSetID">xmlSecTransformVisa3DHackSetID</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformXmlParserGetKlass">xmlSecTransformXmlParserGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformXmlParserId">xmlSecTransformXmlParserId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformXPath2GetKlass">xmlSecTransformXPath2GetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformXPath2Id">xmlSecTransformXPath2Id</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformXPathGetKlass">xmlSecTransformXPathGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformXPathId">xmlSecTransformXPathId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformXPointerGetKlass">xmlSecTransformXPointerGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformXPointerId">xmlSecTransformXPointerId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformXPointerSetExpr">xmlSecTransformXPointerSetExpr</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformXsltGetKlass">xmlSecTransformXsltGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformXsltId">xmlSecTransformXsltId</link></para></listitem>
-<listitem><para><link linkend="xmlSecTransformXsltSetDefaultSecurityPrefs">xmlSecTransformXsltSetDefaultSecurityPrefs</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-VERSION-INFO-CAPS">XMLSEC-VERSION-INFO</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-VERSION-MAJOR-CAPS">XMLSEC-VERSION-MAJOR</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-VERSION-MINOR-CAPS">XMLSEC-VERSION-MINOR</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-VERSION-CAPS">XMLSEC-VERSION</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-VERSION-SUBMINOR-CAPS">XMLSEC-VERSION-SUBMINOR</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-X509DATA-CERTIFICATE-NODE-CAPS">XMLSEC-X509DATA-CERTIFICATE-NODE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-X509DATA-CRL-NODE-CAPS">XMLSEC-X509DATA-CRL-NODE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-X509DATA-DEFAULT-CAPS">XMLSEC-X509DATA-DEFAULT</link></para></listitem>
-<listitem><para><link linkend="xmlSecX509DataGetNodeContent">xmlSecX509DataGetNodeContent</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-X509DATA-ISSUERSERIAL-NODE-CAPS">XMLSEC-X509DATA-ISSUERSERIAL-NODE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-X509DATA-SKI-NODE-CAPS">XMLSEC-X509DATA-SKI-NODE</link></para></listitem>
-<listitem><para><link linkend="XMLSEC-X509DATA-SUBJECTNAME-NODE-CAPS">XMLSEC-X509DATA-SUBJECTNAME-NODE</link></para></listitem>
-<listitem><para><link linkend="xmlSecX509StoreGetKlass">xmlSecX509StoreGetKlass</link></para></listitem>
-<listitem><para><link linkend="xmlSecX509StoreId">xmlSecX509StoreId</link></para></listitem>
diff --git a/docs/api/xmlsec-io.html b/docs/api/xmlsec-io.html
index 40b4cc8..9782a92 100644
--- a/docs/api/xmlsec-io.html
+++ b/docs/api/xmlsec-io.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="errors" href="xmlsec-errors.html">
<link rel="NEXT" title="keyinfo" href="xmlsec-keyinfo.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,151 +101,268 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-errors.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-errors.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-keyinfo.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-keyinfo.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-IO"></a>io</h1>
<div class="REFNAMEDIV">
-<a name="AEN5436"></a><h2>Name</h2>io -- Input/output support.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-IO.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>int</font> <a href="xmlsec-io.html#XMLSECIOINIT">xmlSecIOInit</a> (void);
-<font>void</font> <a href="xmlsec-io.html#XMLSECIOSHUTDOWN">xmlSecIOShutdown</a> (void);
-<font>void</font> <a href="xmlsec-io.html#XMLSECIOCLEANUPCALLBACKS">xmlSecIOCleanupCallbacks</a> (void);
-<font>int</font> <a href="xmlsec-io.html#XMLSECIOREGISTERDEFAULTCALLBACKS">xmlSecIORegisterDefaultCallbacks</a> (void);
-<font>int</font> <a href="xmlsec-io.html#XMLSECIOREGISTERCALLBACKS">xmlSecIORegisterCallbacks</a> (<font>xmlInputMatchCallback</font> matchFunc,
- <font>xmlInputOpenCallback</font> openFunc,
- <font>xmlInputReadCallback</font> readFunc,
- <font>xmlInputCloseCallback</font> closeFunc);
-#define <a href="xmlsec-io.html#XMLSECTRANSFORMINPUTURIID">xmlSecTransformInputURIId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-io.html#XMLSECTRANSFORMINPUTURIGETKLASS">xmlSecTransformInputURIGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-io.html#XMLSECTRANSFORMINPUTURIOPEN">xmlSecTransformInputURIOpen</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <font>xmlChar</font> *uri);</pre>
+<a name="AEN7144"></a><h2>Name</h2>io -- Input/output support.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-IO.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN7149"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-io.html#XMLSECIOINIT">xmlSecIOInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-io.html#XMLSECIOSHUTDOWN">xmlSecIOShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-io.html#XMLSECIOCLEANUPCALLBACKS">xmlSecIOCleanupCallbacks</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-io.html#XMLSECIOREGISTERDEFAULTCALLBACKS">xmlSecIORegisterDefaultCallbacks</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-io.html#XMLSECIOREGISTERCALLBACKS">xmlSecIORegisterCallbacks</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-io.html#XMLSECTRANSFORMINPUTURIGETKLASS">xmlSecTransformInputURIGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-io.html#XMLSECTRANSFORMINPUTURIOPEN">xmlSecTransformInputURIOpen</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-io.html#XMLSECTRANSFORMINPUTURICLOSE">xmlSecTransformInputURIClose</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-IO.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN7210"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody><tr>
+<td>#define</td>
+<td><a href="xmlsec-io.html#XMLSECTRANSFORMINPUTURIID">xmlSecTransformInputURIId</a></td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-IO.DESCRIPTION"></a><h2>Description</h2>
<p>Input/output support.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-IO.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-IO.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECIOINIT"></a><h3>xmlSecIOInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecIOInit (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecIOInit (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The IO initialization (called from <a href="xmlsec-xmlsec.html#XMLSECINIT"><span class="TYPE">xmlSecInit</span></a> function).
Applications should not call this function directly.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN5479"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN7234"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECIOSHUTDOWN"></a><h3>xmlSecIOShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecIOShutdown (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecIOShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The IO clenaup (called from <a href="xmlsec-xmlsec.html#XMLSECSHUTDOWN"><span class="TYPE">xmlSecShutdown</span></a> function).
Applications should not call this function directly.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECIOCLEANUPCALLBACKS"></a><h3>xmlSecIOCleanupCallbacks ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecIOCleanupCallbacks (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecIOCleanupCallbacks (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Clears the entire input callback table. this includes the
compiled-in I/O.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECIOREGISTERDEFAULTCALLBACKS"></a><h3>xmlSecIORegisterDefaultCallbacks ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecIORegisterDefaultCallbacks (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecIORegisterDefaultCallbacks (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Registers the default compiled-in I/O handlers.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN5511"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN7269"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECIOREGISTERCALLBACKS"></a><h3>xmlSecIORegisterCallbacks ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecIORegisterCallbacks (<font>xmlInputMatchCallback</font> matchFunc,
- <font>xmlInputOpenCallback</font> openFunc,
- <font>xmlInputReadCallback</font> readFunc,
- <font>xmlInputCloseCallback</font> closeFunc);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecIORegisterCallbacks (<code class="PARAMETER"><font><span class="TYPE">xmlInputMatchCallback</span></font> matchFunc</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlInputOpenCallback</span></font> openFunc</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlInputReadCallback</span></font> readFunc</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlInputCloseCallback</span></font> closeFunc</code>);</pre>
<p>Register a new set of I/O callback for handling parser input.</p>
+<div class="REFSECT3">
+<a name="AEN7292"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN7294"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5529"><span style="white-space: nowrap"><code class="PARAMETER">matchFunc</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the protocol match callback.</p></td>
+<td><p>matchFunc</p></td>
+<td><p>the protocol match callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5534"><span style="white-space: nowrap"><code class="PARAMETER">openFunc</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the open stream callback.</p></td>
+<td><p>openFunc</p></td>
+<td><p>the open stream callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5539"><span style="white-space: nowrap"><code class="PARAMETER">readFunc</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the read from stream callback.</p></td>
+<td><p>readFunc</p></td>
+<td><p>the read from stream callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5544"><span style="white-space: nowrap"><code class="PARAMETER">closeFunc</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the close stream callback.</p></td>
+<td><p>closeFunc</p></td>
+<td><p>the close stream callback.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5549"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMINPUTURIID"></a><h3>xmlSecTransformInputURIId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformInputURIId</pre>
-<p>The Input URI transform id.</p>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN7321"></a><h4>Returns</h4>
+<p> the 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMINPUTURIGETKLASS"></a><h3>xmlSecTransformInputURIGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformInputURIGetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformInputURIGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The input uri transform klass. Reads binary data from an uri.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN5570"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> input URI transform id.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN7334"></a><h4>Returns</h4>
+<p> input URI transform id.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMINPUTURIOPEN"></a><h3>xmlSecTransformInputURIOpen ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformInputURIOpen (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <font>xmlChar</font> *uri);</pre>
-<p>Opens the given <code class="PARAMETER">uri</code> for reading.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformInputURIOpen (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *uri</code>);</pre>
+<p>Opens the given <code class="PARAMETER">uri</code>
+ for reading.</p>
+<div class="REFSECT3">
+<a name="AEN7352"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5587"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to IO transform.</p></td>
-</tr>
+<a name="AEN7354"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5592"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the URL to open.</p></td>
+<td><p>transform</p></td>
+<td><p>the pointer to IO transform.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5597"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>uri</p></td>
+<td><p>the URL to open.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN7369"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMINPUTURICLOSE"></a><h3>xmlSecTransformInputURIClose ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformInputURIClose (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>);</pre>
+<p>Closes the given <code class="PARAMETER">transform</code>
+ and frees up resourses.</p>
+<div class="REFSECT3">
+<a name="AEN7384"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN7386"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>transform</p></td>
+<td><p>the pointer to IO transform.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN7395"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-IO.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMINPUTURIID"></a><h3>xmlSecTransformInputURIId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformInputURIId</pre>
+<p>The Input URI transform id.</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-keyinfo.html b/docs/api/xmlsec-keyinfo.html
index 465d6e8..a8ad3cd 100644
--- a/docs/api/xmlsec-keyinfo.html
+++ b/docs/api/xmlsec-keyinfo.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="io" href="xmlsec-io.html">
<link rel="NEXT" title="keysdata" href="xmlsec-keysdata.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,248 +101,773 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-io.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-io.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-keysdata.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-keysdata.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-KEYINFO"></a>keyinfo</h1>
<div class="REFNAMEDIV">
-<a name="AEN5607"></a><h2>Name</h2>keyinfo -- <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node parser.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-KEYINFO.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>int</font> <a href="xmlsec-keyinfo.html#XMLSECKEYINFONODEREAD">xmlSecKeyInfoNodeRead</a> (<font>xmlNodePtr</font> keyInfoNode,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>int</font> <a href="xmlsec-keyinfo.html#XMLSECKEYINFONODEWRITE">xmlSecKeyInfoNodeWrite</a> (<font>xmlNodePtr</font> keyInfoNode,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-enum <a href="xmlsec-keyinfo.html#XMLSECKEYINFOMODE">xmlSecKeyInfoMode</a>;
-#define <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-DONT-STOP-ON-KEY-FOUND--CAPS">XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND</a>
-#define <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-STOP-ON-UNKNOWN-CHILD--CAPS">XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD</a>
-#define <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-KEYNAME-STOP-ON-UNKNOWN--CAPS">XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN</a>
-#define <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-KEYVALUE-STOP-ON-UNKNOWN-CHILD--CAPS">XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD</a>
-#define <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-UNKNOWN-HREF--CAPS">XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF</a>
-#define <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-MISMATCH-HREF--CAPS">XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF</a>
-#define <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CHILD--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD</a>
-#define <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-DONT-VERIFY-CERTS--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS</a>
-#define <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CERT--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT</a>
-#define <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-INVALID-CERT--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT</a>
-#define <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-ENCKEY-DONT-STOP-ON-FAILED-DECRYPTION--CAPS">XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION</a>
-#define <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-STOP-ON-EMPTY-NODE--CAPS">XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE</a>
-#define <a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-STRICT-CHECKS--CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS</a>
-struct <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a>;
-<font>xmlSecKeyInfoCtxPtr</font> <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXCREATE">xmlSecKeyInfoCtxCreate</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);
-<font>void</font> <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXDESTROY">xmlSecKeyInfoCtxDestroy</a> (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>int</font> <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXINITIALIZE">xmlSecKeyInfoCtxInitialize</a> (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx,
- <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);
-<font>void</font> <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXFINALIZE">xmlSecKeyInfoCtxFinalize</a> (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>void</font> <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXRESET">xmlSecKeyInfoCtxReset</a> (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>int</font> <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXCOPYUSERPREF">xmlSecKeyInfoCtxCopyUserPref</a> (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> dst,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> src);
-<font>int</font> <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXCREATEENCCTX">xmlSecKeyInfoCtxCreateEncCtx</a> (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>void</font> <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXDEBUGDUMP">xmlSecKeyInfoCtxDebugDump</a> (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXDEBUGXMLDUMP">xmlSecKeyInfoCtxDebugXmlDump</a> (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx,
- <font>FILE</font> *output);
-#define <a href="xmlsec-keyinfo.html#XMLSECKEYDATANAMEID">xmlSecKeyDataNameId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-keyinfo.html#XMLSECKEYDATANAMEGETKLASS">xmlSecKeyDataNameGetKlass</a> (void);
-#define <a href="xmlsec-keyinfo.html#XMLSECKEYDATAVALUEID">xmlSecKeyDataValueId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-keyinfo.html#XMLSECKEYDATAVALUEGETKLASS">xmlSecKeyDataValueGetKlass</a> (void);
-#define <a href="xmlsec-keyinfo.html#XMLSECKEYDATARETRIEVALMETHODID">xmlSecKeyDataRetrievalMethodId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-keyinfo.html#XMLSECKEYDATARETRIEVALMETHODGETKLASS">xmlSecKeyDataRetrievalMethodGetKlass</a>
- (void);
-#define <a href="xmlsec-keyinfo.html#XMLSECKEYDATAENCRYPTEDKEYID">xmlSecKeyDataEncryptedKeyId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-keyinfo.html#XMLSECKEYDATAENCRYPTEDKEYGETKLASS">xmlSecKeyDataEncryptedKeyGetKlass</a> (void);</pre>
+<a name="AEN7411"></a><h2>Name</h2>keyinfo -- <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node parser.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-KEYINFO.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN7417"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYINFONODEREAD">xmlSecKeyInfoNodeRead</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYINFONODEWRITE">xmlSecKeyInfoNodeWrite</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="RETURNVALUE">xmlSecKeyInfoCtxPtr</span></a></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXCREATE">xmlSecKeyInfoCtxCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXDESTROY">xmlSecKeyInfoCtxDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXINITIALIZE">xmlSecKeyInfoCtxInitialize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXFINALIZE">xmlSecKeyInfoCtxFinalize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXRESET">xmlSecKeyInfoCtxReset</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXCOPYUSERPREF">xmlSecKeyInfoCtxCopyUserPref</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXCREATEENCCTX">xmlSecKeyInfoCtxCreateEncCtx</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXDEBUGDUMP">xmlSecKeyInfoCtxDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXDEBUGXMLDUMP">xmlSecKeyInfoCtxDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYDATANAMEGETKLASS">xmlSecKeyDataNameGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYDATAVALUEGETKLASS">xmlSecKeyDataValueGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYDATARETRIEVALMETHODGETKLASS">xmlSecKeyDataRetrievalMethodGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-keyinfo.html#XMLSECKEYDATAENCRYPTEDKEYGETKLASS">xmlSecKeyDataEncryptedKeyGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-KEYINFO.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN7527"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>enum</td>
+<td><a href="xmlsec-keyinfo.html#XMLSECKEYINFOMODE">xmlSecKeyInfoMode</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-DONT-STOP-ON-KEY-FOUND:CAPS">XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-STOP-ON-UNKNOWN-CHILD:CAPS">XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-KEYNAME-STOP-ON-UNKNOWN:CAPS">XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-KEYVALUE-STOP-ON-UNKNOWN-CHILD:CAPS">XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-UNKNOWN-HREF:CAPS">XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-MISMATCH-HREF:CAPS">XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CHILD:CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-DONT-VERIFY-CERTS:CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CERT:CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-INVALID-CERT:CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-ENCKEY-DONT-STOP-ON-FAILED-DECRYPTION:CAPS">XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-STOP-ON-EMPTY-NODE:CAPS">XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-STRICT-CHECKS:CAPS">XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS</a></td>
+</tr>
+<tr>
+<td>struct</td>
+<td><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSECKEYDATANAMEID">xmlSecKeyDataNameId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSECKEYDATAVALUEID">xmlSecKeyDataValueId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSECKEYDATARETRIEVALMETHODID">xmlSecKeyDataRetrievalMethodId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keyinfo.html#XMLSECKEYDATAENCRYPTEDKEYID">xmlSecKeyDataEncryptedKeyId</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-KEYINFO.DESCRIPTION"></a><h2>Description</h2>
<p><a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node parser.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-KEYINFO.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-KEYINFO.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECKEYINFONODEREAD"></a><h3>xmlSecKeyInfoNodeRead ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyInfoNodeRead (<font>xmlNodePtr</font> keyInfoNode,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Parses the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element <code class="PARAMETER">keyInfoNode</code>, extracts the key data
-and stores into <code class="PARAMETER">key</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyInfoNodeRead (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> keyInfoNode</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Parses the <dsig:KeyInfo/> element <code class="PARAMETER">keyInfoNode</code>
+, extracts the key data
+and stores into <code class="PARAMETER">key</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN7631"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN7633"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>keyInfoNode</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to result key object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN7654"></a><h4>Returns</h4>
+<p> 0 on success or -1 if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYINFONODEWRITE"></a><h3>xmlSecKeyInfoNodeWrite ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyInfoNodeWrite (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> keyInfoNode</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Writes the <code class="PARAMETER">key</code>
+ into the <dsig:KeyInfo/> element template <code class="PARAMETER">keyInfoNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN7676"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN7678"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>keyInfoNode</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> node.</p></td>
+<td> </td>
+</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5703"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5709"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to result key object.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN7699"></a><h4>Returns</h4>
+<p> 0 on success or -1 if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYINFOCTXCREATE"></a><h3>xmlSecKeyInfoCtxCreate ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="RETURNVALUE">xmlSecKeyInfoCtxPtr</span></a>
+xmlSecKeyInfoCtxCreate (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> keysMngr</code>);</pre>
+<p>Allocates and initializes <dsig:KeyInfo/> element processing context.
+Caller is responsible for freeing it by calling <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXDESTROY"><span class="TYPE">xmlSecKeyInfoCtxDestroy</span></a>
+function.</p>
+<div class="REFSECT3">
+<a name="AEN7715"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN7717"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keysMngr</p></td>
+<td><p>the pointer to keys manager (may be NULL).</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN7726"></a><h4>Returns</h4>
+<p> pointer to newly allocated object or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYINFOCTXDESTROY"></a><h3>xmlSecKeyInfoCtxDestroy ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyInfoCtxDestroy (<code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Destroys <code class="PARAMETER">keyInfoCtx</code>
+ object created with <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXCREATE"><span class="TYPE">xmlSecKeyInfoCtxCreate</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN7743"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN7745"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYINFOCTXINITIALIZE"></a><h3>xmlSecKeyInfoCtxInitialize ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyInfoCtxInitialize (<code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> keysMngr</code>);</pre>
+<p>Initializes <dsig:KeyInfo/> element processing context. Caller is
+responsible for cleaning it up by <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXFINALIZE"><span class="TYPE">xmlSecKeyInfoCtxFinalize</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN7770"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN7772"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5714"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5720"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or -1 if an error occurs.</p></td>
+<td><p>keysMngr</p></td>
+<td><p>the pointer to keys manager (may be NULL).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN7787"></a><h4>Returns</h4>
+<p> 0 on success and a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYINFONODEWRITE"></a><h3>xmlSecKeyInfoNodeWrite ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyInfoNodeWrite (<font>xmlNodePtr</font> keyInfoNode,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Writes the <code class="PARAMETER">key</code> into the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element template <code class="PARAMETER">keyInfoNode</code>.</p>
+<a name="XMLSECKEYINFOCTXFINALIZE"></a><h3>xmlSecKeyInfoCtxFinalize ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyInfoCtxFinalize (<code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Cleans up the <code class="PARAMETER">keyInfoCtx</code>
+ initialized with <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXINITIALIZE"><span class="TYPE">xmlSecKeyInfoCtxInitialize</span></a>
+function.</p>
+<div class="REFSECT3">
+<a name="AEN7804"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN7806"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYINFOCTXRESET"></a><h3>xmlSecKeyInfoCtxReset ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyInfoCtxReset (<code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Resets the <code class="PARAMETER">keyInfoCtx</code>
+ state. User settings are not changed.</p>
+<div class="REFSECT3">
+<a name="AEN7827"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN7829"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYINFOCTXCOPYUSERPREF"></a><h3>xmlSecKeyInfoCtxCopyUserPref ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyInfoCtxCopyUserPref (<code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> dst</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> src</code>);</pre>
+<p>Copies user preferences from <code class="PARAMETER">src</code>
+ context to <code class="PARAMETER">dst</code>
+ context.</p>
+<div class="REFSECT3">
+<a name="AEN7854"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN7856"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5740"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node.</p></td>
+<td><p>dst</p></td>
+<td><p>the pointer to destination context object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5746"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key object.</p></td>
+<td><p>src</p></td>
+<td><p>the pointer to source context object.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN7871"></a><h4>Returns</h4>
+<p> 0 on success and a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYINFOCTXCREATEENCCTX"></a><h3>xmlSecKeyInfoCtxCreateEncCtx ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyInfoCtxCreateEncCtx (<code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Creates encryption context form processing <enc:EncryptedKey/> child
+of <dsig:KeyInfo/> element.</p>
+<div class="REFSECT3">
+<a name="AEN7885"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN7887"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN7896"></a><h4>Returns</h4>
+<p> 0 on success and a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYINFOCTXDEBUGDUMP"></a><h3>xmlSecKeyInfoCtxDebugDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyInfoCtxDebugDump (<code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints user settings and current context state to <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN7914"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN7916"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5751"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5757"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or -1 if an error occurs.</p></td>
+<td><p>output</p></td>
+<td><p>the output file pointer.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYINFOMODE"></a><h3>enum xmlSecKeyInfoMode</h3>
-<pre class="PROGRAMLISTING">typedef enum {
- xmlSecKeyInfoModeRead = 0,
- xmlSecKeyInfoModeWrite
-} xmlSecKeyInfoMode;</pre>
-<p>The <code class="PARAMETER">xmlSecKeyInfoCtx</code> operation mode (read or write).</p>
+<a name="XMLSECKEYINFOCTXDEBUGXMLDUMP"></a><h3>xmlSecKeyInfoCtxDebugXmlDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyInfoCtxDebugXmlDump (<code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints user settings and current context state in XML format to <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN7946"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN7948"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the output file pointer.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATANAMEGETKLASS"></a><h3>xmlSecKeyDataNameGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataNameGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The <dsig:KeyName/> element key data klass
+(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-KeyName</span></font>):</p>
+<p>The KeyName element contains a string value (in which white space is
+significant) which may be used by the signer to communicate a key
+identifier to the recipient. Typically, KeyName contains an identifier
+related to the key pair used to sign the message, but it may contain
+other protocol-related information that indirectly identifies a key pair.
+(Common uses of KeyName include simple string names for keys, a key index,
+a distinguished name (DN), an email address, etc.)</p>
+<div class="REFSECT3">
+<a name="AEN7976"></a><h4>Returns</h4>
+<p> the <dsig:KeyName/> element processing key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAVALUEGETKLASS"></a><h3>xmlSecKeyDataValueGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataValueGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The <dsig:KeyValue/> element key data klass
+(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-KeyValue</span></font>):</p>
+<p>The KeyValue element contains a single public key that may be useful in
+validating the signature.</p>
+<div class="REFSECT3">
+<a name="AEN7992"></a><h4>Returns</h4>
+<p> the <dsig:KeyValue/> element processing key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATARETRIEVALMETHODGETKLASS"></a><h3>xmlSecKeyDataRetrievalMethodGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataRetrievalMethodGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The <dsig:RetrievalMethod/> element key data klass
+(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-RetrievalMethod</span></font>):
+A RetrievalMethod element within KeyInfo is used to convey a reference to
+KeyInfo information that is stored at another location. For example,
+several signatures in a document might use a key verified by an X.509v3
+certificate chain appearing once in the document or remotely outside the
+document; each signature's KeyInfo can reference this chain using a single
+RetrievalMethod element instead of including the entire chain with a
+sequence of X509Certificate elements.</p>
+<p>RetrievalMethod uses the same syntax and dereferencing behavior as
+Reference's URI and The Reference Processing Model.</p>
+<div class="REFSECT3">
+<a name="AEN8008"></a><h4>Returns</h4>
+<p> the <dsig:RetrievalMethod/> element processing key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAENCRYPTEDKEYGETKLASS"></a><h3>xmlSecKeyDataEncryptedKeyGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataEncryptedKeyGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The <enc:EncryptedKey/> element key data klass
+(http://www.w3.org/TR/xmlenc-core/<font><span class="TYPE">sec-EncryptedKey</span></font>):</p>
+<p>The EncryptedKey element is used to transport encryption keys from
+the originator to a known recipient(s). It may be used as a stand-alone
+XML document, be placed within an application document, or appear inside
+an EncryptedData element as a child of a ds:KeyInfo element. The key value
+is always encrypted to the recipient(s). When EncryptedKey is decrypted the
+resulting octets are made available to the EncryptionMethod algorithm
+without any additional processing.</p>
+<div class="REFSECT3">
+<a name="AEN8024"></a><h4>Returns</h4>
+<p> the <enc:EncryptedKey/> element processing key data klass.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-KEYINFO.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECKEYINFOMODE"></a><h3>enum xmlSecKeyInfoMode</h3>
+<p>The <code class="PARAMETER">xmlSecKeyInfoCtx</code>
+ operation mode (read or write).</p>
+<div class="REFSECT3">
+<a name="AEN8035"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN8037"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECKEYINFOMODEREAD"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecKeyInfoModeRead</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> read <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top"><dsig:KeyInfo /></a> element.</p></td>
+<td><p>xmlSecKeyInfoModeRead</p></td>
+<td><p>read <dsig:KeyInfo /> element.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECKEYINFOMODEWRITE"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecKeyInfoModeWrite</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> write <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top"><dsig:KeyInfo /></a> element.</p></td>
+<td><p>xmlSecKeyInfoModeWrite</p></td>
+<td><p>write <dsig:KeyInfo /> element.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-KEYINFO-FLAGS-DONT-STOP-ON-KEY-FOUND--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND</h3>
+<a name="XMLSEC-KEYINFO-FLAGS-DONT-STOP-ON-KEY-FOUND:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND 0x00000001</pre>
-<p>If flag is set then we will continue reading <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top"><dsig:KeyInfo /></a>
+<p>If flag is set then we will continue reading <dsig:KeyInfo />
element even when key is already found.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-KEYINFO-FLAGS-STOP-ON-UNKNOWN-CHILD--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD</h3>
+<a name="XMLSEC-KEYINFO-FLAGS-STOP-ON-UNKNOWN-CHILD:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_STOP_ON_UNKNOWN_CHILD 0x00000002</pre>
-<p>If flag is set then we abort if an unknown <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top"><dsig:KeyInfo /></a>
+<p>If flag is set then we abort if an unknown <dsig:KeyInfo />
child is found.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-KEYINFO-FLAGS-KEYNAME-STOP-ON-UNKNOWN--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN</h3>
+<a name="XMLSEC-KEYINFO-FLAGS-KEYNAME-STOP-ON-UNKNOWN:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_KEYNAME_STOP_ON_UNKNOWN 0x00000004</pre>
<p>If flags is set then we abort if an unknown key name
-(content of <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName%20" target="_top"><dsig:KeyName /></a> element) is found.</p>
-<p></p>
+(content of <dsig:KeyName /> element) is found.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-KEYINFO-FLAGS-KEYVALUE-STOP-ON-UNKNOWN-CHILD--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD</h3>
+<a name="XMLSEC-KEYINFO-FLAGS-KEYVALUE-STOP-ON-UNKNOWN-CHILD:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_KEYVALUE_STOP_ON_UNKNOWN_CHILD 0x00000008</pre>
-<p>If flags is set then we abort if an unknown <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue%20" target="_top"><dsig:KeyValue /></a>
+<p>If flags is set then we abort if an unknown <dsig:KeyValue />
child is found.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-UNKNOWN-HREF--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF</h3>
+<a name="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-UNKNOWN-HREF:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_UNKNOWN_HREF 0x00000010</pre>
<p>If flag is set then we abort if an unknown href attribute
-of <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top"><dsig:RetrievalMethod /></a> element is found.</p>
-<p></p>
+of <dsig:RetrievalMethod /> element is found.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-MISMATCH-HREF--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF</h3>
+<a name="XMLSEC-KEYINFO-FLAGS-RETRMETHOD-STOP-ON-MISMATCH-HREF:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_RETRMETHOD_STOP_ON_MISMATCH_HREF 0x00000020</pre>
-<p>If flag is set then we abort if an href attribute <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top"><dsig:RetrievalMethod /></a>
+<p>If flag is set then we abort if an href attribute <dsig:RetrievalMethod />
element does not match the real key data type.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CHILD--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD</h3>
+<a name="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CHILD:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CHILD 0x00000100</pre>
-<p>If flags is set then we abort if an unknown <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data%20" target="_top"><dsig:X509Data /></a>
+<p>If flags is set then we abort if an unknown <dsig:X509Data />
child is found.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-KEYINFO-FLAGS-X509DATA-DONT-VERIFY-CERTS--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS</h3>
+<a name="XMLSEC-KEYINFO-FLAGS-X509DATA-DONT-VERIFY-CERTS:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS 0x00000200</pre>
-<p>If flag is set then we'll load certificates from <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data%20" target="_top"><dsig:X509Data /></a>
+<p>If flag is set then we'll load certificates from <dsig:X509Data />
element without verification.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CERT--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT</h3>
+<a name="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-UNKNOWN-CERT:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_UNKNOWN_CERT 0x00000400</pre>
<p>If flag is set then we'll stop when we could not resolve reference
-to certificate from <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509IssuerSerial%20" target="_top"><dsig:X509IssuerSerial /></a>, <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509SKI%20" target="_top"><dsig:X509SKI /></a> or
-<a href="http://www.w3.org/TR/xmldsig-core/#sec-X509SubjectName%20" target="_top"><dsig:X509SubjectName /></a> elements.</p>
-<p></p>
+to certificate from <dsig:X509IssuerSerial />, <dsig:X509SKI /> or
+<dsig:X509SubjectName /> elements.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-INVALID-CERT--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT</h3>
+<a name="XMLSEC-KEYINFO-FLAGS-X509DATA-STOP-ON-INVALID-CERT:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_X509DATA_STOP_ON_INVALID_CERT 0x00000800</pre>
-<p>If the flag is set then we'll stop when <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data%20" target="_top"><dsig:X509Data /></a> element
+<p>If the flag is set then we'll stop when <dsig:X509Data /> element
processing does not return a verified certificate.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-KEYINFO-FLAGS-ENCKEY-DONT-STOP-ON-FAILED-DECRYPTION--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION</h3>
+<a name="XMLSEC-KEYINFO-FLAGS-ENCKEY-DONT-STOP-ON-FAILED-DECRYPTION:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_ENCKEY_DONT_STOP_ON_FAILED_DECRYPTION 0x00001000</pre>
-<p>If the flag is set then we'll stop when <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey%20" target="_top"><enc:EncryptedKey /></a> element
+<p>If the flag is set then we'll stop when <enc:EncryptedKey /> element
processing fails.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-KEYINFO-FLAGS-STOP-ON-EMPTY-NODE--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE</h3>
+<a name="XMLSEC-KEYINFO-FLAGS-STOP-ON-EMPTY-NODE:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_STOP_ON_EMPTY_NODE 0x00002000</pre>
<p>If the flag is set then we'll stop when we found an empty node.
Otherwise we just ignore it.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-STRICT-CHECKS--CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS</h3>
+<a name="XMLSEC-KEYINFO-FLAGS-X509DATA-SKIP-STRICT-CHECKS:CAPS"></a><h3>XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS 0x00004000</pre>
<p>If the flag is set then we'll skip strict checking of certs and CRLs</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
@@ -362,368 +909,160 @@ Otherwise we just ignore it.</p>
void* reserved0;
void* reserved1;
};</pre>
-<p>The <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top"><dsig:KeyInfo /></a> reading or writing context.</p>
+<p>The <dsig:KeyInfo /> reading or writing context.</p>
+<div class="REFSECT3">
+<a name="AEN8136"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5896"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">userData</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to user data (xmlsec and xmlsec-crypto
- never touch this).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5902"><span style="white-space: nowrap">unsigned <font>int</font> <code class="STRUCTFIELD">flags</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the bit mask for flags that control processin.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5908"><span style="white-space: nowrap">unsigned <font>int</font> <code class="STRUCTFIELD">flags2</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for future.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5914"><span style="white-space: nowrap"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> <code class="STRUCTFIELD">keysMngr</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to current keys manager.</p></td>
-</tr>
+<a name="AEN8138"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5920"><span style="white-space: nowrap"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOMODE">xmlSecKeyInfoMode</a> <code class="STRUCTFIELD">mode</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> do we read or write <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top"><dsig:KeyInfo /></a> element.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">userData</code>;</p></td>
+<td><p>the pointer to user data (xmlsec and xmlsec-crypto
+never touch this).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5927"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrList</a> <code class="STRUCTFIELD">enabledKeyData</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list of enabled <code class="PARAMETER">xmlSecKeyDataId</code> (if list is
- empty then all data ids are enabled).</p></td>
+<td><p>unsigned <font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">flags</code>;</p></td>
+<td><p>the bit mask for flags that control processin.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5934"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">base64LineSize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the max columns size for base64 encoding.</p></td>
+<td><p>unsigned <font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">flags2</code>;</p></td>
+<td><p>reserved for future.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5940"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtx</a> <code class="STRUCTFIELD">retrievalMethodCtx</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transforms context for <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top"><dsig:RetrievalMethod /></a>
- element processing.</p></td>
+<td><p><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> <code class="STRUCTFIELD">keysMngr</code>;</p></td>
+<td><p>the pointer to current keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5947"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">maxRetrievalMethodLevel</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the max recursion level when processing
- <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top"><dsig:RetrievalMethod /></a> element; default level is 1
- (see also <code class="PARAMETER">curRetrievalMethodLevel</code>).</p></td>
+<td><p><a href="xmlsec-keyinfo.html#XMLSECKEYINFOMODE"><span class="TYPE">xmlSecKeyInfoMode</span></a> <code class="STRUCTFIELD">mode</code>;</p></td>
+<td><p>do we read or write <dsig:KeyInfo /> element.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5955"><span style="white-space: nowrap"><a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> <code class="STRUCTFIELD">encCtx</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the encryption context for <a href="http://www.w3.org/TR/xmldsig-core/#sec-EncryptedKey%20" target="_top"><dsig:EncryptedKey /></a> element
- processing.</p></td>
+<td><p><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrList</span></a> <code class="STRUCTFIELD">enabledKeyData</code>;</p></td>
+<td><p>the list of enabled <code class="PARAMETER">xmlSecKeyDataId</code>
+(if list is
+empty then all data ids are enabled).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5962"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">maxEncryptedKeyLevel</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the max recursion level when processing
- <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey%20" target="_top"><enc:EncryptedKey /></a> element; default level is 1
- (see <code class="PARAMETER">curEncryptedKeyLevel</code>).</p></td>
+<td><p><font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">base64LineSize</code>;</p></td>
+<td><p>the max columns size for base64 encoding.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5970"><span style="white-space: nowrap"><font>time_t</font> <code class="STRUCTFIELD">certsVerificationTime</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the time to use for X509 certificates verification
- ("not valid before" and "not valid after" checks);
- if <code class="PARAMETER">certsVerificationTime</code> is equal to 0 (default)
- then we verify certificates against the system's
- clock "now".</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtx</span></a> <code class="STRUCTFIELD">retrievalMethodCtx</code>;</p></td>
+<td><p>the transforms context for <dsig:RetrievalMethod />
+element processing.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5977"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">certsVerificationDepth</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the max certifications chain length (default is 9).</p></td>
+<td><p><font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">maxRetrievalMethodLevel</code>;</p></td>
+<td><p>the max recursion level when processing
+<dsig:RetrievalMethod /> element; default level is 1
+(see also <code class="PARAMETER">curRetrievalMethodLevel</code>
+).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5983"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">pgpReserved</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for PGP.</p></td>
+<td><p><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtxPtr</span></a> <code class="STRUCTFIELD">encCtx</code>;</p></td>
+<td><p>the encryption context for <dsig:EncryptedKey /> element
+processing.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5989"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">curRetrievalMethodLevel</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the current <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top"><dsig:RetrievalMethod /></a> element
- processing level (see <code class="PARAMETER">maxRetrievalMethodLevel</code>).</p></td>
+<td><p><font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">maxEncryptedKeyLevel</code>;</p></td>
+<td><p>the max recursion level when processing
+<enc:EncryptedKey /> element; default level is 1
+(see <code class="PARAMETER">curEncryptedKeyLevel</code>
+).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN5997"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">curEncryptedKeyLevel</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the current <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey%20" target="_top"><enc:EncryptedKey /></a> element
- processing level (see <code class="PARAMETER">maxEncryptedKeyLevel</code>).</p></td>
+<td><p><font><span class="TYPE">time_t</span></font> <code class="STRUCTFIELD">certsVerificationTime</code>;</p></td>
+<td><p>the time to use for X509 certificates verification
+("not valid before" and "not valid after" checks);
+if <code class="PARAMETER">certsVerificationTime</code>
+is equal to 0 (default)
+then we verify certificates against the system's
+clock "now".</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6005"><span style="white-space: nowrap"><a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReq</a> <code class="STRUCTFIELD">keyReq</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the current key requirements.</p></td>
+<td><p><font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">certsVerificationDepth</code>;</p></td>
+<td><p>the max certifications chain length (default is 9).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6011"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6017"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYINFOCTXCREATE"></a><h3>xmlSecKeyInfoCtxCreate ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyInfoCtxPtr</font> xmlSecKeyInfoCtxCreate (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);</pre>
-<p>Allocates and initializes <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.
-Caller is responsible for freeing it by calling <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXDESTROY"><span class="TYPE">xmlSecKeyInfoCtxDestroy</span></a>
-function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6036"><span style="white-space: nowrap"><code class="PARAMETER">keysMngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager (may be NULL).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6041"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly allocated object or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYINFOCTXDESTROY"></a><h3>xmlSecKeyInfoCtxDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyInfoCtxDestroy (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Destroys <code class="PARAMETER">keyInfoCtx</code> object created with <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXCREATE"><span class="TYPE">xmlSecKeyInfoCtxCreate</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN6059"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYINFOCTXINITIALIZE"></a><h3>xmlSecKeyInfoCtxInitialize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyInfoCtxInitialize (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx,
- <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);</pre>
-<p>Initializes <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context. Caller is
-responsible for cleaning it up by <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXFINALIZE"><span class="TYPE">xmlSecKeyInfoCtxFinalize</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6079"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">pgpReserved</code>;</p></td>
+<td><p>reserved for PGP.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6085"><span style="white-space: nowrap"><code class="PARAMETER">keysMngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager (may be NULL).</p></td>
+<td><p><font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">curRetrievalMethodLevel</code>;</p></td>
+<td><p>the current <dsig:RetrievalMethod /> element
+processing level (see <code class="PARAMETER">maxRetrievalMethodLevel</code>
+).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6090"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success and a negative value if an error occurs.</p></td>
+<td><p><font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">curEncryptedKeyLevel</code>;</p></td>
+<td><p>the current <enc:EncryptedKey /> element
+processing level (see <code class="PARAMETER">maxEncryptedKeyLevel</code>
+).</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYINFOCTXFINALIZE"></a><h3>xmlSecKeyInfoCtxFinalize ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyInfoCtxFinalize (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Cleans up the <code class="PARAMETER">keyInfoCtx</code> initialized with <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTXINITIALIZE"><span class="TYPE">xmlSecKeyInfoCtxInitialize</span></a>
-function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN6108"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYINFOCTXRESET"></a><h3>xmlSecKeyInfoCtxReset ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyInfoCtxReset (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Resets the <code class="PARAMETER">keyInfoCtx</code> state. User settings are not changed.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN6125"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYINFOCTXCOPYUSERPREF"></a><h3>xmlSecKeyInfoCtxCopyUserPref ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyInfoCtxCopyUserPref (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> dst,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> src);</pre>
-<p>Copies user preferences from <code class="PARAMETER">src</code> context to <code class="PARAMETER">dst</code> context.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6144"><span style="white-space: nowrap"><code class="PARAMETER">dst</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to destination context object.</p></td>
+<td><p><a href="xmlsec-keys.html#XMLSECKEYREQ"><span class="TYPE">xmlSecKeyReq</span></a> <code class="STRUCTFIELD">keyReq</code>;</p></td>
+<td><p>the current key requirements.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6149"><span style="white-space: nowrap"><code class="PARAMETER">src</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to source context object.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved0</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6154"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success and a negative value if an error occurs.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYINFOCTXCREATEENCCTX"></a><h3>xmlSecKeyInfoCtxCreateEncCtx ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyInfoCtxCreateEncCtx (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Creates encryption context form processing <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> child
-of <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element.</p>
-<p></p>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6171"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6177"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success and a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYINFOCTXDEBUGDUMP"></a><h3>xmlSecKeyInfoCtxDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyInfoCtxDebugDump (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx,
- <font>FILE</font> *output);</pre>
-<p>Prints user settings and current context state to <code class="PARAMETER">output</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6194"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6200"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output file pointer.</p></td>
-</tr>
-</tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYINFOCTXDEBUGXMLDUMP"></a><h3>xmlSecKeyInfoCtxDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyInfoCtxDebugXmlDump (<a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx,
- <font>FILE</font> *output);</pre>
-<p>Prints user settings and current context state in XML format to <code class="PARAMETER">output</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6217"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6223"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output file pointer.</p></td>
-</tr>
-</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYDATANAMEID"></a><h3>xmlSecKeyDataNameId</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataNameId xmlSecKeyDataNameGetKlass()</pre>
<p>The <dsig:KeyName> processing class.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATANAMEGETKLASS"></a><h3>xmlSecKeyDataNameGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataNameGetKlass (void);</pre>
-<p>The <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName" target="_top"><dsig:KeyName/></a> element key data klass
-(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-KeyName</span></font>):</p>
-<p>The KeyName element contains a string value (in which white space is
-significant) which may be used by the signer to communicate a key
-identifier to the recipient. Typically, KeyName contains an identifier
-related to the key pair used to sign the message, but it may contain
-other protocol-related information that indirectly identifies a key pair.
-(Common uses of KeyName include simple string names for keys, a key index,
-a distinguished name (DN), an email address, etc.)</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN6248"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName" target="_top"><dsig:KeyName/></a> element processing key data klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYDATAVALUEID"></a><h3>xmlSecKeyDataValueId</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataValueId xmlSecKeyDataValueGetKlass()</pre>
<p>The <dsig:KeyValue> processing class.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAVALUEGETKLASS"></a><h3>xmlSecKeyDataValueGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataValueGetKlass (void);</pre>
-<p>The <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue" target="_top"><dsig:KeyValue/></a> element key data klass
-(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-KeyValue</span></font>):</p>
-<p>The KeyValue element contains a single public key that may be useful in
-validating the signature.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN6274"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue" target="_top"><dsig:KeyValue/></a> element processing key data klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYDATARETRIEVALMETHODID"></a><h3>xmlSecKeyDataRetrievalMethodId</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataRetrievalMethodId xmlSecKeyDataRetrievalMethodGetKlass()</pre>
<p>The <dsig:RetrievalMethod> processing class.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATARETRIEVALMETHODGETKLASS"></a><h3>xmlSecKeyDataRetrievalMethodGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataRetrievalMethodGetKlass
- (void);</pre>
-<p>The <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod" target="_top"><dsig:RetrievalMethod/></a> element key data klass
-(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-RetrievalMethod</span></font>):
-A RetrievalMethod element within KeyInfo is used to convey a reference to
-KeyInfo information that is stored at another location. For example,
-several signatures in a document might use a key verified by an X.509v3
-certificate chain appearing once in the document or remotely outside the
-document; each signature's KeyInfo can reference this chain using a single
-RetrievalMethod element instead of including the entire chain with a
-sequence of X509Certificate elements.</p>
-<p>RetrievalMethod uses the same syntax and dereferencing behavior as
-Reference's URI and The Reference Processing Model.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN6300"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod" target="_top"><dsig:RetrievalMethod/></a> element processing key data klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYDATAENCRYPTEDKEYID"></a><h3>xmlSecKeyDataEncryptedKeyId</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataEncryptedKeyId xmlSecKeyDataEncryptedKeyGetKlass()</pre>
<p>The <enc:EncryptedKey> processing class.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAENCRYPTEDKEYGETKLASS"></a><h3>xmlSecKeyDataEncryptedKeyGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataEncryptedKeyGetKlass (void);</pre>
-<p>The <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> element key data klass
-(http://www.w3.org/TR/xmlenc-core/<font><span class="TYPE">sec-EncryptedKey</span></font>):</p>
-<p>The EncryptedKey element is used to transport encryption keys from
-the originator to a known recipient(s). It may be used as a stand-alone
-XML document, be placed within an application document, or appear inside
-an EncryptedData element as a child of a ds:KeyInfo element. The key value
-is always encrypted to the recipient(s). When EncryptedKey is decrypted the
-resulting octets are made available to the EncryptionMethod algorithm
-without any additional processing.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN6326"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> element processing key data klass.</p></td>
-</tr></tbody></table>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-keys.html b/docs/api/xmlsec-keys.html
index dc4f516..3c49c84 100644
--- a/docs/api/xmlsec-keys.html
+++ b/docs/api/xmlsec-keys.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="keysdata" href="xmlsec-keysdata.html">
<link rel="NEXT" title="keysmngr" href="xmlsec-keysmngr.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,1132 +101,1966 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-keysdata.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-keysdata.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-keysmngr.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-keysmngr.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-KEYS"></a>keys</h1>
<div class="REFNAMEDIV">
-<a name="AEN8770"></a><h2>Name</h2>keys -- Crypto key object definition.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-KEYS.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">typedef <a href="xmlsec-keys.html#XMLSECKEYUSAGE">xmlSecKeyUsage</a>;
-#define <a href="xmlsec-keys.html#XMLSECKEYUSAGESIGN">xmlSecKeyUsageSign</a>
-#define <a href="xmlsec-keys.html#XMLSECKEYUSAGEVERIFY">xmlSecKeyUsageVerify</a>
-#define <a href="xmlsec-keys.html#XMLSECKEYUSAGEENCRYPT">xmlSecKeyUsageEncrypt</a>
-#define <a href="xmlsec-keys.html#XMLSECKEYUSAGEDECRYPT">xmlSecKeyUsageDecrypt</a>
-#define <a href="xmlsec-keys.html#XMLSECKEYUSAGEKEYEXCHANGE">xmlSecKeyUsageKeyExchange</a>
-#define <a href="xmlsec-keys.html#XMLSECKEYUSAGEANY">xmlSecKeyUsageAny</a>
-<font>int</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHINITIALIZE">xmlSecKeyUseWithInitialize</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);
-<font>void</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHFINALIZE">xmlSecKeyUseWithFinalize</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);
-<font>void</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHRESET">xmlSecKeyUseWithReset</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);
-<font>int</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHCOPY">xmlSecKeyUseWithCopy</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> dst,
- <a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> src);
-<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHCREATE">xmlSecKeyUseWithCreate</a> (const <font>xmlChar</font> *application,
- const <font>xmlChar</font> *identifier);
-<font>xmlSecKeyUseWithPtr</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHDUPLICATE">xmlSecKeyUseWithDuplicate</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);
-<font>void</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHDESTROY">xmlSecKeyUseWithDestroy</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);
-<font>int</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHSET">xmlSecKeyUseWithSet</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith,
- const <font>xmlChar</font> *application,
- const <font>xmlChar</font> *identifier);
-<font>void</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHDEBUGDUMP">xmlSecKeyUseWithDebugDump</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHDEBUGXMLDUMP">xmlSecKeyUseWithDebugXmlDump</a> (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith,
- <font>FILE</font> *output);
-struct <a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWith</a>;
-#define <a href="xmlsec-keys.html#XMLSECKEYUSEWITHPTRLISTID">xmlSecKeyUseWithPtrListId</a>
-<font>xmlSecPtrListId</font> <a href="xmlsec-keys.html#XMLSECKEYUSEWITHPTRLISTGETKLASS">xmlSecKeyUseWithPtrListGetKlass</a> (void);
-struct <a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReq</a>;
-<font>int</font> <a href="xmlsec-keys.html#XMLSECKEYREQINITIALIZE">xmlSecKeyReqInitialize</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);
-<font>void</font> <a href="xmlsec-keys.html#XMLSECKEYREQFINALIZE">xmlSecKeyReqFinalize</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);
-<font>void</font> <a href="xmlsec-keys.html#XMLSECKEYREQRESET">xmlSecKeyReqReset</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);
-<font>int</font> <a href="xmlsec-keys.html#XMLSECKEYREQCOPY">xmlSecKeyReqCopy</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> dst,
- <a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> src);
-<font>int</font> <a href="xmlsec-keys.html#XMLSECKEYREQMATCHKEY">xmlSecKeyReqMatchKey</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> <a href="xmlsec-keys.html#XMLSECKEYREQMATCHKEYVALUE">xmlSecKeyReqMatchKeyValue</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> value);
-<font>void</font> <a href="xmlsec-keys.html#XMLSECKEYREQDEBUGDUMP">xmlSecKeyReqDebugDump</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-keys.html#XMLSECKEYREQDEBUGXMLDUMP">xmlSecKeyReqDebugXmlDump</a> (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq,
- <font>FILE</font> *output);
-struct <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKey</a>;
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-keys.html#XMLSECKEYCREATE">xmlSecKeyCreate</a> (void);
-<font>void</font> <a href="xmlsec-keys.html#XMLSECKEYDESTROY">xmlSecKeyDestroy</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>void</font> <a href="xmlsec-keys.html#XMLSECKEYEMPTY">xmlSecKeyEmpty</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>xmlSecKeyPtr</font> <a href="xmlsec-keys.html#XMLSECKEYDUPLICATE">xmlSecKeyDuplicate</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> <a href="xmlsec-keys.html#XMLSECKEYCOPY">xmlSecKeyCopy</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> keyDst,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> keySrc);
-const <font>xmlChar</font>* <a href="xmlsec-keys.html#XMLSECKEYGETNAME">xmlSecKeyGetName</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> <a href="xmlsec-keys.html#XMLSECKEYSETNAME">xmlSecKeySetName</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>xmlChar</font> *name);
-<a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> <a href="xmlsec-keys.html#XMLSECKEYGETTYPE">xmlSecKeyGetType</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>xmlSecKeyDataPtr</font> <a href="xmlsec-keys.html#XMLSECKEYGETVALUE">xmlSecKeyGetValue</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> <a href="xmlsec-keys.html#XMLSECKEYSETVALUE">xmlSecKeySetValue</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> value);
-<font>xmlSecKeyDataPtr</font> <a href="xmlsec-keys.html#XMLSECKEYGETDATA">xmlSecKeyGetData</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlSecKeyDataId</font> dataId);
-<font>xmlSecKeyDataPtr</font> <a href="xmlsec-keys.html#XMLSECKEYENSUREDATA">xmlSecKeyEnsureData</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlSecKeyDataId</font> dataId);
-<font>int</font> <a href="xmlsec-keys.html#XMLSECKEYADOPTDATA">xmlSecKeyAdoptData</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>void</font> <a href="xmlsec-keys.html#XMLSECKEYDEBUGDUMP">xmlSecKeyDebugDump</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-keys.html#XMLSECKEYDEBUGXMLDUMP">xmlSecKeyDebugXmlDump</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>FILE</font> *output);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-keys.html#XMLSECKEYGENERATE">xmlSecKeyGenerate</a> (<font>xmlSecKeyDataId</font> dataId,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-keys.html#XMLSECKEYGENERATEBYNAME">xmlSecKeyGenerateByName</a> (const <font>xmlChar</font> *name,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-keys.html#XMLSECKEYMATCH">xmlSecKeyMatch</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>xmlChar</font> *name,
- <a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-keys.html#XMLSECKEYREADBUFFER">xmlSecKeyReadBuffer</a> (<font>xmlSecKeyDataId</font> dataId,
- <a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBuffer</a> *buffer);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-keys.html#XMLSECKEYREADBINARYFILE">xmlSecKeyReadBinaryFile</a> (<font>xmlSecKeyDataId</font> dataId,
- const <font>char</font> *filename);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-keys.html#XMLSECKEYREADMEMORY">xmlSecKeyReadMemory</a> (<font>xmlSecKeyDataId</font> dataId,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize);
-#define <a href="xmlsec-keys.html#XMLSECKEYISVALID">xmlSecKeyIsValid</a> (key)
-#define <a href="xmlsec-keys.html#XMLSECKEYCHECKID">xmlSecKeyCheckId</a> (key, keyId)
-#define <a href="xmlsec-keys.html#XMLSECKEYPTRLISTID">xmlSecKeyPtrListId</a>
-<font>xmlSecPtrListId</font> <a href="xmlsec-keys.html#XMLSECKEYPTRLISTGETKLASS">xmlSecKeyPtrListGetKlass</a> (void);</pre>
-</div>
-<div class="REFSECT1">
-<a name="XMLSEC-KEYS.DESCRIPTION"></a><h2>Description</h2>
-<p>Crypto key object definition.</p>
-</div>
+<a name="AEN11732"></a><h2>Name</h2>keys -- Crypto key object definition.</div>
<div class="REFSECT1">
-<a name="XMLSEC-KEYS.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSAGE"></a><h3>xmlSecKeyUsage</h3>
-<pre class="PROGRAMLISTING">typedef unsigned int xmlSecKeyUsage;</pre>
-<p>The key usage.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSAGESIGN"></a><h3>xmlSecKeyUsageSign</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyUsageSign 0x00000001</pre>
-<p>Key can be used in any way.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSAGEVERIFY"></a><h3>xmlSecKeyUsageVerify</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyUsageVerify 0x00000002</pre>
-<p>Key for signing.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSAGEENCRYPT"></a><h3>xmlSecKeyUsageEncrypt</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyUsageEncrypt 0x00000004</pre>
-<p>Key for signature verification.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSAGEDECRYPT"></a><h3>xmlSecKeyUsageDecrypt</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyUsageDecrypt 0x00000008</pre>
-<p>An encryption key.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSAGEKEYEXCHANGE"></a><h3>xmlSecKeyUsageKeyExchange</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyUsageKeyExchange 0x00000010</pre>
-<p>The key is used for key exchange.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSAGEANY"></a><h3>xmlSecKeyUsageAny</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyUsageAny 0xFFFFFFFF</pre>
-<p>A decryption key.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSEWITHINITIALIZE"></a><h3>xmlSecKeyUseWithInitialize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyUseWithInitialize (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);</pre>
-<p>Initializes <code class="PARAMETER">keyUseWith</code> object.</p>
+<a name="XMLSEC-KEYS.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN11737"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9004"><span style="white-space: nowrap"><code class="PARAMETER">keyUseWith</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYUSEWITHINITIALIZE">xmlSecKeyUseWithInitialize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9009"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYUSEWITHFINALIZE">xmlSecKeyUseWithFinalize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSEWITHFINALIZE"></a><h3>xmlSecKeyUseWithFinalize ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyUseWithFinalize (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);</pre>
-<p>Finalizes <code class="PARAMETER">keyUseWith</code> object.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN9025"><span style="white-space: nowrap"><code class="PARAMETER">keyUseWith</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSEWITHRESET"></a><h3>xmlSecKeyUseWithReset ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyUseWithReset (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);</pre>
-<p>Resets the <code class="PARAMETER">keyUseWith</code> to its state after initialization.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN9041"><span style="white-space: nowrap"><code class="PARAMETER">keyUseWith</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSEWITHCOPY"></a><h3>xmlSecKeyUseWithCopy ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyUseWithCopy (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> dst,
- <a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> src);</pre>
-<p>Copies information from <code class="PARAMETER">dst</code> to <code class="PARAMETER">src</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9059"><span style="white-space: nowrap"><code class="PARAMETER">dst</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to destination object.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYUSEWITHRESET">xmlSecKeyUseWithReset</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9064"><span style="white-space: nowrap"><code class="PARAMETER">src</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to source object.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYUSEWITHCOPY">xmlSecKeyUseWithCopy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9069"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><a href="xmlsec-keys.html#XMLSECKEYUSEWITH"><span class="RETURNVALUE">xmlSecKeyUseWithPtr</span></a></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYUSEWITHCREATE">xmlSecKeyUseWithCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSEWITHCREATE"></a><h3>xmlSecKeyUseWithCreate ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> xmlSecKeyUseWithCreate (const <font>xmlChar</font> *application,
- const <font>xmlChar</font> *identifier);</pre>
-<p>Creates new xmlSecKeyUseWith object. The caller is responsible for destroying
-returned object with <code class="PARAMETER">xmlSecKeyUseWithDestroy</code> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9086"><span style="white-space: nowrap"><code class="PARAMETER">application</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the application value.</p></td>
+<td><a href="xmlsec-keys.html#XMLSECKEYUSEWITH"><span class="RETURNVALUE">xmlSecKeyUseWithPtr</span></a></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYUSEWITHDUPLICATE">xmlSecKeyUseWithDuplicate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9091"><span style="white-space: nowrap"><code class="PARAMETER">identifier</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the identifier value.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYUSEWITHDESTROY">xmlSecKeyUseWithDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9096"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created object or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYUSEWITHSET">xmlSecKeyUseWithSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSEWITHDUPLICATE"></a><h3>xmlSecKeyUseWithDuplicate ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyUseWithPtr</font> xmlSecKeyUseWithDuplicate (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);</pre>
-<p>Duplicates <code class="PARAMETER">keyUseWith</code> object. The caller is responsible for destroying
-returned object with <code class="PARAMETER">xmlSecKeyUseWithDestroy</code> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9113"><span style="white-space: nowrap"><code class="PARAMETER">keyUseWith</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYUSEWITHDEBUGDUMP">xmlSecKeyUseWithDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9118"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created object or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYUSEWITHDEBUGXMLDUMP">xmlSecKeyUseWithDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSEWITHDESTROY"></a><h3>xmlSecKeyUseWithDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyUseWithDestroy (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith);</pre>
-<p>Destroys <code class="PARAMETER">keyUseWith</code> created with <code class="PARAMETER">xmlSecKeyUseWithCreate</code> or <code class="PARAMETER">xmlSecKeyUseWithDuplicate</code>
-functions.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN9136"><span style="white-space: nowrap"><code class="PARAMETER">keyUseWith</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSEWITHSET"></a><h3>xmlSecKeyUseWithSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyUseWithSet (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith,
- const <font>xmlChar</font> *application,
- const <font>xmlChar</font> *identifier);</pre>
-<p>Sets <code class="PARAMETER">application</code> and <code class="PARAMETER">identifier</code> in the <code class="PARAMETER">keyUseWith</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9156"><span style="white-space: nowrap"><code class="PARAMETER">keyUseWith</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecPtrListId</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYUSEWITHPTRLISTGETKLASS">xmlSecKeyUseWithPtrListGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9161"><span style="white-space: nowrap"><code class="PARAMETER">application</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new application value.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYREQINITIALIZE">xmlSecKeyReqInitialize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9166"><span style="white-space: nowrap"><code class="PARAMETER">identifier</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new identifier value.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYREQFINALIZE">xmlSecKeyReqFinalize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9171"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYREQRESET">xmlSecKeyReqReset</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSEWITHDEBUGDUMP"></a><h3>xmlSecKeyUseWithDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyUseWithDebugDump (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith,
- <font>FILE</font> *output);</pre>
-<p>Prints xmlSecKeyUseWith debug information to a file <code class="PARAMETER">output</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9188"><span style="white-space: nowrap"><code class="PARAMETER">keyUseWith</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYREQCOPY">xmlSecKeyReqCopy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9193"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYREQMATCHKEY">xmlSecKeyReqMatchKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSEWITHDEBUGXMLDUMP"></a><h3>xmlSecKeyUseWithDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyUseWithDebugXmlDump (<a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWithPtr</a> keyUseWith,
- <font>FILE</font> *output);</pre>
-<p>Prints xmlSecKeyUseWith debug information to a file <code class="PARAMETER">output</code> in XML format.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9210"><span style="white-space: nowrap"><code class="PARAMETER">keyUseWith</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to information about key application/user.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYREQMATCHKEYVALUE">xmlSecKeyReqMatchKeyValue</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9215"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYREQDEBUGDUMP">xmlSecKeyReqDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSEWITH"></a><h3>struct xmlSecKeyUseWith</h3>
-<pre class="PROGRAMLISTING">struct xmlSecKeyUseWith {
- xmlChar* application;
- xmlChar* identifier;
-
- void* reserved1;
- void* reserved2;
-};</pre>
-<p>Information about application and user of the key.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9228"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">application</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the application.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYREQDEBUGXMLDUMP">xmlSecKeyReqDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9234"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">identifier</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the identifier.</p></td>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYCREATE">xmlSecKeyCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9240"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for future use.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYDESTROY">xmlSecKeyDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9246"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved2</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for future use.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYEMPTY">xmlSecKeyEmpty</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSEWITHPTRLISTID"></a><h3>xmlSecKeyUseWithPtrListId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyUseWithPtrListId xmlSecKeyUseWithPtrListGetKlass()</pre>
-<p>The keys list klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYUSEWITHPTRLISTGETKLASS"></a><h3>xmlSecKeyUseWithPtrListGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecPtrListId</font> xmlSecKeyUseWithPtrListGetKlass (void);</pre>
-<p>The key data list klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN9268"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key data list klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYREQ"></a><h3>struct xmlSecKeyReq</h3>
-<pre class="PROGRAMLISTING">struct xmlSecKeyReq {
- xmlSecKeyDataId keyId;
- xmlSecKeyDataType keyType;
- xmlSecKeyUsage keyUsage;
- xmlSecSize keyBitsSize;
- xmlSecPtrList keyUseWithList;
-
- void* reserved1;
- void* reserved2;
-};</pre>
-<p>The key requirements information.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9281"><span style="white-space: nowrap"><font>xmlSecKeyDataId</font> <code class="STRUCTFIELD">keyId</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key value klass.</p></td>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYDUPLICATE">xmlSecKeyDuplicate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9287"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> <code class="STRUCTFIELD">keyType</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key type.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYCOPY">xmlSecKeyCopy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9293"><span style="white-space: nowrap"><a href="xmlsec-keys.html#XMLSECKEYUSAGE">xmlSecKeyUsage</a> <code class="STRUCTFIELD">keyUsage</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key usage.</p></td>
+<td>const <font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYGETNAME">xmlSecKeyGetName</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9299"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">keyBitsSize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key size (in bits!).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYSETNAME">xmlSecKeySetName</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9305"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrList</a> <code class="STRUCTFIELD">keyUseWithList</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key use with application/identifier information.</p></td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="RETURNVALUE">xmlSecKeyDataType</span></a></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYGETTYPE">xmlSecKeyGetType</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9311"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for future use.</p></td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYGETVALUE">xmlSecKeyGetValue</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9317"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved2</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for future use.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYSETVALUE">xmlSecKeySetValue</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYREQINITIALIZE"></a><h3>xmlSecKeyReqInitialize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyReqInitialize (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);</pre>
-<p>Initialize key requirements object. Caller is responsible for
-cleaning it with <a href="xmlsec-keys.html#XMLSECKEYREQFINALIZE"><span class="TYPE">xmlSecKeyReqFinalize</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9335"><span style="white-space: nowrap"><code class="PARAMETER">keyReq</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key requirements object.</p></td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYGETDATA">xmlSecKeyGetData</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9340"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYENSUREDATA">xmlSecKeyEnsureData</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYREQFINALIZE"></a><h3>xmlSecKeyReqFinalize ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyReqFinalize (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);</pre>
-<p>Cleans the key requirements object initialized with <a href="xmlsec-keys.html#XMLSECKEYREQINITIALIZE"><span class="TYPE">xmlSecKeyReqInitialize</span></a>
-function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN9357"><span style="white-space: nowrap"><code class="PARAMETER">keyReq</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key requirements object.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYREQRESET"></a><h3>xmlSecKeyReqReset ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyReqReset (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);</pre>
-<p>Resets key requirements object for new key search.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN9372"><span style="white-space: nowrap"><code class="PARAMETER">keyReq</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key requirements object.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYREQCOPY"></a><h3>xmlSecKeyReqCopy ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyReqCopy (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> dst,
- <a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> src);</pre>
-<p>Copies key requirements from <code class="PARAMETER">src</code> object to <code class="PARAMETER">dst</code> object.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9390"><span style="white-space: nowrap"><code class="PARAMETER">dst</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to destination object.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYADOPTDATA">xmlSecKeyAdoptData</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9395"><span style="white-space: nowrap"><code class="PARAMETER">src</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to source object.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYDEBUGDUMP">xmlSecKeyDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9400"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success and a negative value if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYDEBUGXMLDUMP">xmlSecKeyDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYREQMATCHKEY"></a><h3>xmlSecKeyReqMatchKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyReqMatchKey (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Checks whether <code class="PARAMETER">key</code> matches key requirements <code class="PARAMETER">keyReq</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9418"><span style="white-space: nowrap"><code class="PARAMETER">keyReq</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key requirements object.</p></td>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYGENERATE">xmlSecKeyGenerate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9423"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYGENERATEBYNAME">xmlSecKeyGenerateByName</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9428"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 1 if key matches requirements, 0 if not and a negative value
-if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYMATCH">xmlSecKeyMatch</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYREQMATCHKEYVALUE"></a><h3>xmlSecKeyReqMatchKeyValue ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyReqMatchKeyValue (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> value);</pre>
-<p>Checks whether <code class="PARAMETER">keyValue</code> matches key requirements <code class="PARAMETER">keyReq</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9446"><span style="white-space: nowrap"><code class="PARAMETER">keyReq</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key requirements.</p></td>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYREADBUFFER">xmlSecKeyReadBuffer</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9451"><span style="white-space: nowrap"><code class="PARAMETER">value</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYREADBINARYFILE">xmlSecKeyReadBinaryFile</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9456"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 1 if key value matches requirements, 0 if not and a negative value
-if an error occurs.</p></td>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYREADMEMORY">xmlSecKeyReadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYREQDEBUGDUMP"></a><h3>xmlSecKeyReqDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyReqDebugDump (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq,
- <font>FILE</font> *output);</pre>
-<p>Prints debug information about <code class="PARAMETER">keyReq</code> into <code class="PARAMETER">output</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9474"><span style="white-space: nowrap"><code class="PARAMETER">keyReq</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key requirements object.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYISVALID">xmlSecKeyIsValid</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9479"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYCHECKID">xmlSecKeyCheckId</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYREQDEBUGXMLDUMP"></a><h3>xmlSecKeyReqDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyReqDebugXmlDump (<a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq,
- <font>FILE</font> *output);</pre>
-<p>Prints debug information about <code class="PARAMETER">keyReq</code> into <code class="PARAMETER">output</code> in XML format.</p>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecPtrListId</span></font></td>
+<td>
+<a href="xmlsec-keys.html#XMLSECKEYPTRLISTGETKLASS">xmlSecKeyPtrListGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-KEYS.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN12039"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9497"><span style="white-space: nowrap"><code class="PARAMETER">keyReq</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key requirements object.</p></td>
+<td>typedef</td>
+<td><a href="xmlsec-keys.html#XMLSECKEYUSAGE">xmlSecKeyUsage</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9502"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keys.html#XMLSECKEYUSAGESIGN">xmlSecKeyUsageSign</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keys.html#XMLSECKEYUSAGEVERIFY">xmlSecKeyUsageVerify</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keys.html#XMLSECKEYUSAGEENCRYPT">xmlSecKeyUsageEncrypt</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keys.html#XMLSECKEYUSAGEDECRYPT">xmlSecKeyUsageDecrypt</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEY"></a><h3>struct xmlSecKey</h3>
-<pre class="PROGRAMLISTING">struct xmlSecKey {
- xmlChar* name;
- xmlSecKeyDataPtr value;
- xmlSecPtrListPtr dataList;
- xmlSecKeyUsage usage;
- time_t notValidBefore;
- time_t notValidAfter;
-};</pre>
-<p>The key.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9515"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">name</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key name.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keys.html#XMLSECKEYUSAGEKEYEXCHANGE">xmlSecKeyUsageKeyExchange</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9521"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> <code class="STRUCTFIELD">value</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keys.html#XMLSECKEYUSAGEANY">xmlSecKeyUsageAny</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9527"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> <code class="STRUCTFIELD">dataList</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key data list.</p></td>
+<td>struct</td>
+<td><a href="xmlsec-keys.html#XMLSECKEYUSEWITH">xmlSecKeyUseWith</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9533"><span style="white-space: nowrap"><a href="xmlsec-keys.html#XMLSECKEYUSAGE">xmlSecKeyUsage</a> <code class="STRUCTFIELD">usage</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key usage.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keys.html#XMLSECKEYUSEWITHPTRLISTID">xmlSecKeyUseWithPtrListId</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9539"><span style="white-space: nowrap"><font>time_t</font> <code class="STRUCTFIELD">notValidBefore</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the start key validity interval.</p></td>
+<td>struct</td>
+<td><a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReq</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9545"><span style="white-space: nowrap"><font>time_t</font> <code class="STRUCTFIELD">notValidAfter</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the end key validity interval.</p></td>
+<td>struct</td>
+<td><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKey</a></td>
</tr>
-</tbody></table>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keys.html#XMLSECKEYPTRLISTID">xmlSecKeyPtrListId</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-KEYS.DESCRIPTION"></a><h2>Description</h2>
+<p>Crypto key object definition.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-KEYS.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
+<div class="REFSECT2">
+<a name="XMLSECKEYUSEWITHINITIALIZE"></a><h3>xmlSecKeyUseWithInitialize ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyUseWithInitialize (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH"><span class="TYPE">xmlSecKeyUseWithPtr</span></a> keyUseWith</code>);</pre>
+<p>Initializes <code class="PARAMETER">keyUseWith</code>
+ object.</p>
+<div class="REFSECT3">
+<a name="AEN12107"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12109"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keyUseWith</p></td>
+<td><p>the pointer to information about key application/user.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12118"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYUSEWITHFINALIZE"></a><h3>xmlSecKeyUseWithFinalize ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyUseWithFinalize (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH"><span class="TYPE">xmlSecKeyUseWithPtr</span></a> keyUseWith</code>);</pre>
+<p>Finalizes <code class="PARAMETER">keyUseWith</code>
+ object.</p>
+<div class="REFSECT3">
+<a name="AEN12133"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12135"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keyUseWith</p></td>
+<td><p>the pointer to information about key application/user.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYUSEWITHRESET"></a><h3>xmlSecKeyUseWithReset ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyUseWithReset (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH"><span class="TYPE">xmlSecKeyUseWithPtr</span></a> keyUseWith</code>);</pre>
+<p>Resets the <code class="PARAMETER">keyUseWith</code>
+ to its state after initialization.</p>
+<div class="REFSECT3">
+<a name="AEN12156"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12158"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keyUseWith</p></td>
+<td><p>the pointer to information about key application/user.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYUSEWITHCOPY"></a><h3>xmlSecKeyUseWithCopy ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyUseWithCopy (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH"><span class="TYPE">xmlSecKeyUseWithPtr</span></a> dst</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH"><span class="TYPE">xmlSecKeyUseWithPtr</span></a> src</code>);</pre>
+<p>Copies information from <code class="PARAMETER">dst</code>
+ to <code class="PARAMETER">src</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN12183"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12185"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>dst</p></td>
+<td><p>the pointer to destination object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>src</p></td>
+<td><p>the pointer to source object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12200"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYUSEWITHCREATE"></a><h3>xmlSecKeyUseWithCreate ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH"><span class="RETURNVALUE">xmlSecKeyUseWithPtr</span></a>
+xmlSecKeyUseWithCreate (<code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *application</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *identifier</code>);</pre>
+<p>Creates new xmlSecKeyUseWith object. The caller is responsible for destroying
+returned object with <code class="PARAMETER">xmlSecKeyUseWithDestroy</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN12218"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12220"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>application</p></td>
+<td><p>the application value.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>identifier</p></td>
+<td><p>the identifier value.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12235"></a><h4>Returns</h4>
+<p> pointer to newly created object or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYUSEWITHDUPLICATE"></a><h3>xmlSecKeyUseWithDuplicate ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH"><span class="RETURNVALUE">xmlSecKeyUseWithPtr</span></a>
+xmlSecKeyUseWithDuplicate (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH"><span class="TYPE">xmlSecKeyUseWithPtr</span></a> keyUseWith</code>);</pre>
+<p>Duplicates <code class="PARAMETER">keyUseWith</code>
+ object. The caller is responsible for destroying
+returned object with <code class="PARAMETER">xmlSecKeyUseWithDestroy</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN12251"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12253"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keyUseWith</p></td>
+<td><p>the pointer to information about key application/user.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12262"></a><h4>Returns</h4>
+<p> pointer to newly created object or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYUSEWITHDESTROY"></a><h3>xmlSecKeyUseWithDestroy ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyUseWithDestroy (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH"><span class="TYPE">xmlSecKeyUseWithPtr</span></a> keyUseWith</code>);</pre>
+<p>Destroys <code class="PARAMETER">keyUseWith</code>
+ created with <code class="PARAMETER">xmlSecKeyUseWithCreate</code>
+ or <code class="PARAMETER">xmlSecKeyUseWithDuplicate</code>
+
+functions.</p>
+<div class="REFSECT3">
+<a name="AEN12279"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12281"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keyUseWith</p></td>
+<td><p>the pointer to information about key application/user.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYUSEWITHSET"></a><h3>xmlSecKeyUseWithSet ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyUseWithSet (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH"><span class="TYPE">xmlSecKeyUseWithPtr</span></a> keyUseWith</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *application</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *identifier</code>);</pre>
+<p>Sets <code class="PARAMETER">application</code>
+ and <code class="PARAMETER">identifier</code>
+ in the <code class="PARAMETER">keyUseWith</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN12310"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12312"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>keyUseWith</p></td>
+<td><p>the pointer to information about key application/user.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>application</p></td>
+<td><p>the new application value.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>identifier</p></td>
+<td><p>the new identifier value.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12333"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYUSEWITHDEBUGDUMP"></a><h3>xmlSecKeyUseWithDebugDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyUseWithDebugDump (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH"><span class="TYPE">xmlSecKeyUseWithPtr</span></a> keyUseWith</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints xmlSecKeyUseWith debug information to a file <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN12351"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12353"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>keyUseWith</p></td>
+<td><p>the pointer to information about key application/user.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYUSEWITHDEBUGXMLDUMP"></a><h3>xmlSecKeyUseWithDebugXmlDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyUseWithDebugXmlDump (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYUSEWITH"><span class="TYPE">xmlSecKeyUseWithPtr</span></a> keyUseWith</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints xmlSecKeyUseWith debug information to a file <code class="PARAMETER">output</code>
+ in XML format.</p>
+<div class="REFSECT3">
+<a name="AEN12383"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12385"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>keyUseWith</p></td>
+<td><p>the pointer to information about key application/user.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYUSEWITHPTRLISTGETKLASS"></a><h3>xmlSecKeyUseWithPtrListGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecPtrListId</span></font>
+xmlSecKeyUseWithPtrListGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The key data list klass.</p>
+<div class="REFSECT3">
+<a name="AEN12410"></a><h4>Returns</h4>
+<p> pointer to the key data list klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYREQINITIALIZE"></a><h3>xmlSecKeyReqInitialize ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyReqInitialize (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYREQ"><span class="TYPE">xmlSecKeyReqPtr</span></a> keyReq</code>);</pre>
+<p>Initialize key requirements object. Caller is responsible for
+cleaning it with <a href="xmlsec-keys.html#XMLSECKEYREQFINALIZE"><span class="TYPE">xmlSecKeyReqFinalize</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN12426"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12428"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keyReq</p></td>
+<td><p>the pointer to key requirements object.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12437"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYREQFINALIZE"></a><h3>xmlSecKeyReqFinalize ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyReqFinalize (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYREQ"><span class="TYPE">xmlSecKeyReqPtr</span></a> keyReq</code>);</pre>
+<p>Cleans the key requirements object initialized with <a href="xmlsec-keys.html#XMLSECKEYREQINITIALIZE"><span class="TYPE">xmlSecKeyReqInitialize</span></a>
+function.</p>
+<div class="REFSECT3">
+<a name="AEN12453"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12455"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keyReq</p></td>
+<td><p>the pointer to key requirements object.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYREQRESET"></a><h3>xmlSecKeyReqReset ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyReqReset (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYREQ"><span class="TYPE">xmlSecKeyReqPtr</span></a> keyReq</code>);</pre>
+<p>Resets key requirements object for new key search.</p>
+<div class="REFSECT3">
+<a name="AEN12475"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12477"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keyReq</p></td>
+<td><p>the pointer to key requirements object.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYREQCOPY"></a><h3>xmlSecKeyReqCopy ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyReqCopy (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYREQ"><span class="TYPE">xmlSecKeyReqPtr</span></a> dst</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYREQ"><span class="TYPE">xmlSecKeyReqPtr</span></a> src</code>);</pre>
+<p>Copies key requirements from <code class="PARAMETER">src</code>
+ object to <code class="PARAMETER">dst</code>
+ object.</p>
+<div class="REFSECT3">
+<a name="AEN12502"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12504"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>dst</p></td>
+<td><p>the pointer to destination object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>src</p></td>
+<td><p>the pointer to source object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12519"></a><h4>Returns</h4>
+<p> 0 on success and a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYREQMATCHKEY"></a><h3>xmlSecKeyReqMatchKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyReqMatchKey (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYREQ"><span class="TYPE">xmlSecKeyReqPtr</span></a> keyReq</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Checks whether <code class="PARAMETER">key</code>
+ matches key requirements <code class="PARAMETER">keyReq</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN12538"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12540"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>keyReq</p></td>
+<td><p>the pointer to key requirements object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12555"></a><h4>Returns</h4>
+<p> 1 if key matches requirements, 0 if not and a negative value
+if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYREQMATCHKEYVALUE"></a><h3>xmlSecKeyReqMatchKeyValue ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyReqMatchKeyValue (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYREQ"><span class="TYPE">xmlSecKeyReqPtr</span></a> keyReq</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> value</code>);</pre>
+<p>Checks whether <code class="PARAMETER">keyValue</code>
+ matches key requirements <code class="PARAMETER">keyReq</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN12574"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12576"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>keyReq</p></td>
+<td><p>the pointer to key requirements.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>value</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12591"></a><h4>Returns</h4>
+<p> 1 if key value matches requirements, 0 if not and a negative value
+if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYREQDEBUGDUMP"></a><h3>xmlSecKeyReqDebugDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyReqDebugDump (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYREQ"><span class="TYPE">xmlSecKeyReqPtr</span></a> keyReq</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints debug information about <code class="PARAMETER">keyReq</code>
+ into <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN12610"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12612"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>keyReq</p></td>
+<td><p>the pointer to key requirements object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYREQDEBUGXMLDUMP"></a><h3>xmlSecKeyReqDebugXmlDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyReqDebugXmlDump (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYREQ"><span class="TYPE">xmlSecKeyReqPtr</span></a> keyReq</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints debug information about <code class="PARAMETER">keyReq</code>
+ into <code class="PARAMETER">output</code>
+ in XML format.</p>
+<div class="REFSECT3">
+<a name="AEN12643"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12645"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>keyReq</p></td>
+<td><p>the pointer to key requirements object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYCREATE"></a><h3>xmlSecKeyCreate ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecKeyCreate (void);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecKeyCreate (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Allocates and initializes new key. Caller is responsible for
freeing returned object with <a href="xmlsec-keys.html#XMLSECKEYDESTROY"><span class="TYPE">xmlSecKeyDestroy</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN9562"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly allocated <code class="PARAMETER">xmlSecKey</code> structure
-or NULL if an error occurs.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN12672"></a><h4>Returns</h4>
+<p> the pointer to newly allocated <code class="PARAMETER">xmlSecKey</code>
+structure
+or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYDESTROY"></a><h3>xmlSecKeyDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDestroy (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyDestroy (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
<p>Destroys the key created using <a href="xmlsec-keys.html#XMLSECKEYCREATE"><span class="TYPE">xmlSecKeyCreate</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN12689"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12691"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN9580"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYEMPTY"></a><h3>xmlSecKeyEmpty ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyEmpty (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Clears the <code class="PARAMETER">key</code> data.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyEmpty (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Clears the <code class="PARAMETER">key</code>
+ data.</p>
+<div class="REFSECT3">
+<a name="AEN12712"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12714"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN9596"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYDUPLICATE"></a><h3>xmlSecKeyDuplicate ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyPtr</font> xmlSecKeyDuplicate (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Creates a duplicate of the given <code class="PARAMETER">key</code>.</p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecKeyDuplicate (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Creates a duplicate of the given <code class="PARAMETER">key</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN12735"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12737"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>key</p></td>
+<td><p>the pointer to the <a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKey</span></a> structure.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12748"></a><h4>Returns</h4>
+<p> the pointer to newly allocated <a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKey</span></a> structure
+or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYCOPY"></a><h3>xmlSecKeyCopy ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyCopy (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> keyDst</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> keySrc</code>);</pre>
+<p>Copies key data from <code class="PARAMETER">keySrc</code>
+ to <code class="PARAMETER">keyDst</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN12769"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12771"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>keyDst</p></td>
+<td><p>the destination key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>keySrc</p></td>
+<td><p>the source key.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12786"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYGETNAME"></a><h3>xmlSecKeyGetName ()</h3>
+<pre class="PROGRAMLISTING">const <font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecKeyGetName (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Gets key name (see also <a href="xmlsec-keys.html#XMLSECKEYSETNAME"><span class="TYPE">xmlSecKeySetName</span></a> function).</p>
+<div class="REFSECT3">
+<a name="AEN12802"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12804"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12813"></a><h4>Returns</h4>
+<p> key name.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYSETNAME"></a><h3>xmlSecKeySetName ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeySetName (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>);</pre>
+<p>Sets key name (see also <a href="xmlsec-keys.html#XMLSECKEYGETNAME"><span class="TYPE">xmlSecKeyGetName</span></a> function).</p>
+<div class="REFSECT3">
+<a name="AEN12832"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12834"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>name</p></td>
+<td><p>the new key name.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12849"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYGETTYPE"></a><h3>xmlSecKeyGetType ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="RETURNVALUE">xmlSecKeyDataType</span></a>
+xmlSecKeyGetType (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Gets <code class="PARAMETER">key</code>
+ type.</p>
+<div class="REFSECT3">
+<a name="AEN12864"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12866"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12875"></a><h4>Returns</h4>
+<p> key type.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYGETVALUE"></a><h3>xmlSecKeyGetValue ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a>
+xmlSecKeyGetValue (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Gets key value (see also <a href="xmlsec-keys.html#XMLSECKEYSETVALUE"><span class="TYPE">xmlSecKeySetValue</span></a> function).</p>
+<div class="REFSECT3">
+<a name="AEN12891"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12893"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12902"></a><h4>Returns</h4>
+<p> key value (crypto material).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYSETVALUE"></a><h3>xmlSecKeySetValue ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeySetValue (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> value</code>);</pre>
+<p>Sets key value (see also <a href="xmlsec-keys.html#XMLSECKEYGETVALUE"><span class="TYPE">xmlSecKeyGetValue</span></a> function).</p>
+<div class="REFSECT3">
+<a name="AEN12921"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12923"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>value</p></td>
+<td><p>the new value.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12938"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYGETDATA"></a><h3>xmlSecKeyGetData ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a>
+xmlSecKeyGetData (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> dataId</code>);</pre>
+<p>Gets key's data.</p>
+<div class="REFSECT3">
+<a name="AEN12955"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN12957"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9612"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the <a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKey</span></a> structure.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9619"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly allocated <a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKey</span></a> structure
-or NULL if an error occurs.</p></td>
+<td><p>dataId</p></td>
+<td><p>the requested data klass.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN12972"></a><h4>Returns</h4>
+<p> additional data associated with the <code class="PARAMETER">key</code>
+(see also
+<a href="xmlsec-keys.html#XMLSECKEYADOPTDATA"><span class="TYPE">xmlSecKeyAdoptData</span></a> function).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYENSUREDATA"></a><h3>xmlSecKeyEnsureData ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a>
+xmlSecKeyEnsureData (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> dataId</code>);</pre>
+<p>If necessary, creates key data of <code class="PARAMETER">dataId</code>
+ klass and adds to <code class="PARAMETER">key</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN12994"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN12996"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataId</p></td>
+<td><p>the requested data klass.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN13011"></a><h4>Returns</h4>
+<p> pointer to key data or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYADOPTDATA"></a><h3>xmlSecKeyAdoptData ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyAdoptData (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Adds <code class="PARAMETER">data</code>
+ to the <code class="PARAMETER">key</code>
+. The <code class="PARAMETER">data</code>
+ object will be destroyed
+by <code class="PARAMETER">key</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN13032"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN13034"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to key data.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN13049"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDEBUGDUMP"></a><h3>xmlSecKeyDebugDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyDebugDump (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints the information about the <code class="PARAMETER">key</code>
+ to the <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN13068"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN13070"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDEBUGXMLDUMP"></a><h3>xmlSecKeyDebugXmlDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyDebugXmlDump (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints the information about the <code class="PARAMETER">key</code>
+ to the <code class="PARAMETER">output</code>
+ in XML format.</p>
+<div class="REFSECT3">
+<a name="AEN13101"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN13103"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYGENERATE"></a><h3>xmlSecKeyGenerate ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecKeyGenerate (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> dataId</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> sizeBits</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Generates new key of requested klass <code class="PARAMETER">dataId</code>
+ and <code class="PARAMETER">type</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN13137"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN13139"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>dataId</p></td>
+<td><p>the requested key klass (rsa, dsa, aes, ...).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>sizeBits</p></td>
+<td><p>the new key size (in bits!).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>type</p></td>
+<td><p>the new key type (session, permanent, ...).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN13160"></a><h4>Returns</h4>
+<p> pointer to newly created key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYCOPY"></a><h3>xmlSecKeyCopy ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyCopy (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> keyDst,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> keySrc);</pre>
-<p>Copies key data from <code class="PARAMETER">keySrc</code> to <code class="PARAMETER">keyDst</code>.</p>
+<a name="XMLSECKEYGENERATEBYNAME"></a><h3>xmlSecKeyGenerateByName ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecKeyGenerateByName (<code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> sizeBits</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Generates new key of requested <code class="PARAMETER">klass</code>
+ and <code class="PARAMETER">type</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN13182"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN13184"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>name</p></td>
+<td><p>the requested key klass name (rsa, dsa, aes, ...).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>sizeBits</p></td>
+<td><p>the new key size (in bits!).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>type</p></td>
+<td><p>the new key type (session, permanent, ...).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN13205"></a><h4>Returns</h4>
+<p> pointer to newly created key or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYMATCH"></a><h3>xmlSecKeyMatch ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyMatch (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYREQ"><span class="TYPE">xmlSecKeyReqPtr</span></a> keyReq</code>);</pre>
+<p>Checks whether the <code class="PARAMETER">key</code>
+ matches the given criteria.</p>
+<div class="REFSECT3">
+<a name="AEN13226"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN13228"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9639"><span style="white-space: nowrap"><code class="PARAMETER">keyDst</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination key.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9644"><span style="white-space: nowrap"><code class="PARAMETER">keySrc</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the source key.</p></td>
+<td><p>name</p></td>
+<td><p>the pointer to key name (may be NULL).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9649"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>keyReq</p></td>
+<td><p>the pointer to key requirements.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN13249"></a><h4>Returns</h4>
+<p> 1 if the key satisfies the given criteria or 0 otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYGETNAME"></a><h3>xmlSecKeyGetName ()</h3>
-<pre class="PROGRAMLISTING">const <font>xmlChar</font>* xmlSecKeyGetName (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Gets key name (see also <a href="xmlsec-keys.html#XMLSECKEYSETNAME"><span class="TYPE">xmlSecKeySetName</span></a> function).</p>
-<p></p>
+<a name="XMLSECKEYREADBUFFER"></a><h3>xmlSecKeyReadBuffer ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecKeyReadBuffer (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> dataId</code>,
+ <code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBuffer</span></a> *buffer</code>);</pre>
+<p>Reads the key value of klass <code class="PARAMETER">dataId</code>
+ from a buffer.</p>
+<div class="REFSECT3">
+<a name="AEN13267"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN13269"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>dataId</p></td>
+<td><p>the key value data klass.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buffer</p></td>
+<td><p>the buffer that contains the binary data.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9666"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9671"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> key name.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN13284"></a><h4>Returns</h4>
+<p> pointer to newly created key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYSETNAME"></a><h3>xmlSecKeySetName ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeySetName (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>xmlChar</font> *name);</pre>
-<p>Sets key name (see also <a href="xmlsec-keys.html#XMLSECKEYGETNAME"><span class="TYPE">xmlSecKeyGetName</span></a> function).</p>
-<p></p>
+<a name="XMLSECKEYREADBINARYFILE"></a><h3>xmlSecKeyReadBinaryFile ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecKeyReadBinaryFile (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> dataId</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>);</pre>
+<p>Reads the key value of klass <code class="PARAMETER">dataId</code>
+ from a binary file <code class="PARAMETER">filename</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN13303"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN13305"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>dataId</p></td>
+<td><p>the key value data klass.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>filename</p></td>
+<td><p>the key binary filename.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9689"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9694"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new key name.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9699"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN13320"></a><h4>Returns</h4>
+<p> pointer to newly created key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYGETTYPE"></a><h3>xmlSecKeyGetType ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> xmlSecKeyGetType (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Gets <code class="PARAMETER">key</code> type.</p>
-<p></p>
+<a name="XMLSECKEYREADMEMORY"></a><h3>xmlSecKeyReadMemory ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecKeyReadMemory (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> dataId</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>);</pre>
+<p>Reads the key value of klass <code class="PARAMETER">dataId</code>
+ from a memory block <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN13342"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN13344"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>dataId</p></td>
+<td><p>the key value data klass.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>data</p></td>
+<td><p>the memory containing the key</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataSize</p></td>
+<td><p>the size of the memory block</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9715"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9720"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> key type.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN13365"></a><h4>Returns</h4>
+<p> pointer to newly created key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYGETVALUE"></a><h3>xmlSecKeyGetValue ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataPtr</font> xmlSecKeyGetValue (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Gets key value (see also <a href="xmlsec-keys.html#XMLSECKEYSETVALUE"><span class="TYPE">xmlSecKeySetValue</span></a> function).</p>
-<p></p>
+<a name="XMLSECKEYISVALID"></a><h3>xmlSecKeyIsValid()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyIsValid(key)</pre>
+<p>Macro. Returns 1 if <code class="PARAMETER">key</code>
+ is not NULL and <code class="PARAMETER">key->id</code>
+ is not NULL
+or 0 otherwise.</p>
+<div class="REFSECT3">
+<a name="AEN13376"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN13378"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9737"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9742"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> key value (crypto material).</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYSETVALUE"></a><h3>xmlSecKeySetValue ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeySetValue (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> value);</pre>
-<p>Sets key value (see also <a href="xmlsec-keys.html#XMLSECKEYGETVALUE"><span class="TYPE">xmlSecKeyGetValue</span></a> function).</p>
-<p></p>
+<a name="XMLSECKEYCHECKID"></a><h3>xmlSecKeyCheckId()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyCheckId(key, keyId)</pre>
+<p>Macro. Returns 1 if <code class="PARAMETER">key</code>
+ is valid and <code class="PARAMETER">key</code>
+'s id is equal to <code class="PARAMETER">keyId</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN13396"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN13398"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>keyId</p></td>
+<td><p>the key Id.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9760"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9765"><span style="white-space: nowrap"><code class="PARAMETER">value</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9770"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYGETDATA"></a><h3>xmlSecKeyGetData ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataPtr</font> xmlSecKeyGetData (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlSecKeyDataId</font> dataId);</pre>
-<p>Gets key's data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9786"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9791"><span style="white-space: nowrap"><code class="PARAMETER">dataId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the requested data klass.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9796"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> additional data associated with the <code class="PARAMETER">key</code> (see also
-<a href="xmlsec-keys.html#XMLSECKEYADOPTDATA"><span class="TYPE">xmlSecKeyAdoptData</span></a> function).</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECKEYPTRLISTGETKLASS"></a><h3>xmlSecKeyPtrListGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecPtrListId</span></font>
+xmlSecKeyPtrListGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The keys list klass.</p>
+<div class="REFSECT3">
+<a name="AEN13423"></a><h4>Returns</h4>
+<p> keys list id.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-KEYS.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECKEYUSAGE"></a><h3>xmlSecKeyUsage</h3>
+<pre class="PROGRAMLISTING">typedef unsigned int xmlSecKeyUsage;</pre>
+<p>The key usage.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYENSUREDATA"></a><h3>xmlSecKeyEnsureData ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataPtr</font> xmlSecKeyEnsureData (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlSecKeyDataId</font> dataId);</pre>
-<p>If necessary, creates key data of <code class="PARAMETER">dataId</code> klass and adds to <code class="PARAMETER">key</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9817"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9822"><span style="white-space: nowrap"><code class="PARAMETER">dataId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the requested data klass.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9827"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to key data or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECKEYUSAGESIGN"></a><h3>xmlSecKeyUsageSign</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyUsageSign 0x00000001</pre>
+<p>Key can be used in any way.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYADOPTDATA"></a><h3>xmlSecKeyAdoptData ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyAdoptData (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Adds <code class="PARAMETER">data</code> to the <code class="PARAMETER">key</code>. The <code class="PARAMETER">data</code> object will be destroyed
-by <code class="PARAMETER">key</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9847"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9852"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9857"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECKEYUSAGEVERIFY"></a><h3>xmlSecKeyUsageVerify</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyUsageVerify 0x00000002</pre>
+<p>Key for signing.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDEBUGDUMP"></a><h3>xmlSecKeyDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDebugDump (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>FILE</font> *output);</pre>
-<p>Prints the information about the <code class="PARAMETER">key</code> to the <code class="PARAMETER">output</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9875"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9880"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECKEYUSAGEENCRYPT"></a><h3>xmlSecKeyUsageEncrypt</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyUsageEncrypt 0x00000004</pre>
+<p>Key for signature verification.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDEBUGXMLDUMP"></a><h3>xmlSecKeyDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDebugXmlDump (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>FILE</font> *output);</pre>
-<p>Prints the information about the <code class="PARAMETER">key</code> to the <code class="PARAMETER">output</code> in XML format.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9898"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9903"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECKEYUSAGEDECRYPT"></a><h3>xmlSecKeyUsageDecrypt</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyUsageDecrypt 0x00000008</pre>
+<p>An encryption key.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYGENERATE"></a><h3>xmlSecKeyGenerate ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecKeyGenerate (<font>xmlSecKeyDataId</font> dataId,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Generates new key of requested klass <code class="PARAMETER">dataId</code> and <code class="PARAMETER">type</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9922"><span style="white-space: nowrap"><code class="PARAMETER">dataId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the requested key klass (rsa, dsa, aes, ...).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9927"><span style="white-space: nowrap"><code class="PARAMETER">sizeBits</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new key size (in bits!).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9932"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new key type (session, permanent, ...).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9937"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECKEYUSAGEKEYEXCHANGE"></a><h3>xmlSecKeyUsageKeyExchange</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyUsageKeyExchange 0x00000010</pre>
+<p>The key is used for key exchange.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYGENERATEBYNAME"></a><h3>xmlSecKeyGenerateByName ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecKeyGenerateByName (const <font>xmlChar</font> *name,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Generates new key of requested <code class="PARAMETER">klass</code> and <code class="PARAMETER">type</code>.</p>
-<p></p>
+<a name="XMLSECKEYUSAGEANY"></a><h3>xmlSecKeyUsageAny</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyUsageAny 0xFFFFFFFF</pre>
+<p>A decryption key.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYUSEWITH"></a><h3>struct xmlSecKeyUseWith</h3>
+<pre class="PROGRAMLISTING">struct xmlSecKeyUseWith {
+ xmlChar* application;
+ xmlChar* identifier;
+
+ void* reserved1;
+ void* reserved2;
+};</pre>
+<p>Information about application and user of the key.</p>
+<div class="REFSECT3">
+<a name="AEN13476"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN13478"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9956"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the requested key klass name (rsa, dsa, aes, ...).</p></td>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">application</code>;</p></td>
+<td><p>the application.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9961"><span style="white-space: nowrap"><code class="PARAMETER">sizeBits</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new key size (in bits!).</p></td>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">identifier</code>;</p></td>
+<td><p>the identifier.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9966"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new key type (session, permanent, ...).</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for future use.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9971"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created key or NULL if an error occurs.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved2</code>;</p></td>
+<td><p>reserved for future use.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYMATCH"></a><h3>xmlSecKeyMatch ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyMatch (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>xmlChar</font> *name,
- <a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);</pre>
-<p>Checks whether the <code class="PARAMETER">key</code> matches the given criteria.</p>
-<p></p>
+<a name="XMLSECKEYUSEWITHPTRLISTID"></a><h3>xmlSecKeyUseWithPtrListId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyUseWithPtrListId xmlSecKeyUseWithPtrListGetKlass()</pre>
+<p>The keys list klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYREQ"></a><h3>struct xmlSecKeyReq</h3>
+<pre class="PROGRAMLISTING">struct xmlSecKeyReq {
+ xmlSecKeyDataId keyId;
+ xmlSecKeyDataType keyType;
+ xmlSecKeyUsage keyUsage;
+ xmlSecSize keyBitsSize;
+ xmlSecPtrList keyUseWithList;
+
+ void* reserved1;
+ void* reserved2;
+};</pre>
+<p>The key requirements information.</p>
+<div class="REFSECT3">
+<a name="AEN13529"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN13531"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9989"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
+<td><p><font><span class="TYPE">xmlSecKeyDataId</span></font> <code class="STRUCTFIELD">keyId</code>;</p></td>
+<td><p>the desired key value klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9994"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key name (may be NULL).</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> <code class="STRUCTFIELD">keyType</code>;</p></td>
+<td><p>the desired key type.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN9999"><span style="white-space: nowrap"><code class="PARAMETER">keyReq</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key requirements.</p></td>
+<td><p><a href="xmlsec-keys.html#XMLSECKEYUSAGE"><span class="TYPE">xmlSecKeyUsage</span></a> <code class="STRUCTFIELD">keyUsage</code>;</p></td>
+<td><p>the desired key usage.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10004"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 1 if the key satisfies the given criteria or 0 otherwise.</p></td>
+<td><p><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> <code class="STRUCTFIELD">keyBitsSize</code>;</p></td>
+<td><p>the desired key size (in bits!).</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYREADBUFFER"></a><h3>xmlSecKeyReadBuffer ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecKeyReadBuffer (<font>xmlSecKeyDataId</font> dataId,
- <a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBuffer</a> *buffer);</pre>
-<p>Reads the key value of klass <code class="PARAMETER">dataId</code> from a buffer.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10021"><span style="white-space: nowrap"><code class="PARAMETER">dataId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value data klass.</p></td>
+<td><p><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrList</span></a> <code class="STRUCTFIELD">keyUseWithList</code>;</p></td>
+<td><p>the desired key use with application/identifier information.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10026"><span style="white-space: nowrap"><code class="PARAMETER">buffer</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the buffer that contains the binary data.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for future use.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10031"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created key or NULL if an error occurs.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved2</code>;</p></td>
+<td><p>reserved for future use.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYREADBINARYFILE"></a><h3>xmlSecKeyReadBinaryFile ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecKeyReadBinaryFile (<font>xmlSecKeyDataId</font> dataId,
- const <font>char</font> *filename);</pre>
-<p>Reads the key value of klass <code class="PARAMETER">dataId</code> from a binary file <code class="PARAMETER">filename</code>.</p>
-<p></p>
+<a name="XMLSECKEY"></a><h3>struct xmlSecKey</h3>
+<pre class="PROGRAMLISTING">struct xmlSecKey {
+ xmlChar* name;
+ xmlSecKeyDataPtr value;
+ xmlSecPtrListPtr dataList;
+ xmlSecKeyUsage usage;
+ time_t notValidBefore;
+ time_t notValidAfter;
+};</pre>
+<p>The key.</p>
+<div class="REFSECT3">
+<a name="AEN13603"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10049"><span style="white-space: nowrap"><code class="PARAMETER">dataId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value data klass.</p></td>
-</tr>
+<a name="AEN13605"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10054"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key binary filename.</p></td>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">name</code>;</p></td>
+<td><p>the key name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10059"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created key or NULL if an error occurs.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> <code class="STRUCTFIELD">value</code>;</p></td>
+<td><p>the key value.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYREADMEMORY"></a><h3>xmlSecKeyReadMemory ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecKeyReadMemory (<font>xmlSecKeyDataId</font> dataId,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize);</pre>
-<p>Reads the key value of klass <code class="PARAMETER">dataId</code> from a memory block <code class="PARAMETER">data</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10078"><span style="white-space: nowrap"><code class="PARAMETER">dataId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value data klass.</p></td>
+<td><p><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> <code class="STRUCTFIELD">dataList</code>;</p></td>
+<td><p>the key data list.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10083"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the memory containing the key</p></td>
+<td><p><a href="xmlsec-keys.html#XMLSECKEYUSAGE"><span class="TYPE">xmlSecKeyUsage</span></a> <code class="STRUCTFIELD">usage</code>;</p></td>
+<td><p>the key usage.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10088"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of the memory block</p></td>
+<td><p><font><span class="TYPE">time_t</span></font> <code class="STRUCTFIELD">notValidBefore</code>;</p></td>
+<td><p>the start key validity interval.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10093"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created key or NULL if an error occurs.</p></td>
+<td><p><font><span class="TYPE">time_t</span></font> <code class="STRUCTFIELD">notValidAfter</code>;</p></td>
+<td><p>the end key validity interval.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYISVALID"></a><h3>xmlSecKeyIsValid()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyIsValid(key)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">key</code> is not NULL and <code class="PARAMETER">key</code>->id is not NULL
-or 0 otherwise.</p>
-<p></p>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN10108"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr></tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYCHECKID"></a><h3>xmlSecKeyCheckId()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyCheckId(key, keyId)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">key</code> is valid and <code class="PARAMETER">key</code>'s id is equal to <code class="PARAMETER">keyId</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10124"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10129"><span style="white-space: nowrap"><code class="PARAMETER">keyId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key Id.</p></td>
-</tr>
-</tbody></table>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYPTRLISTID"></a><h3>xmlSecKeyPtrListId</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyPtrListId xmlSecKeyPtrListGetKlass()</pre>
<p>The keys list klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYPTRLISTGETKLASS"></a><h3>xmlSecKeyPtrListGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecPtrListId</font> xmlSecKeyPtrListGetKlass (void);</pre>
-<p>The keys list klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN10150"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> keys list id.</p></td>
-</tr></tbody></table>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-keysdata.html b/docs/api/xmlsec-keysdata.html
index ee0822b..01f8428 100644
--- a/docs/api/xmlsec-keysdata.html
+++ b/docs/api/xmlsec-keysdata.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="keyinfo" href="xmlsec-keyinfo.html">
<link rel="NEXT" title="keys" href="xmlsec-keys.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,1833 +101,3192 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-keyinfo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-keyinfo.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-keys.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-keys.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-KEYSDATA"></a>keysdata</h1>
<div class="REFNAMEDIV">
-<a name="AEN6337"></a><h2>Name</h2>keysdata -- Crypto key data object definition.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-KEYSDATA.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">typedef <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a>;
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEUNKNOWN">xmlSecKeyDataUsageUnknown</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYINFONODEREAD">xmlSecKeyDataUsageKeyInfoNodeRead</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYINFONODEWRITE">xmlSecKeyDataUsageKeyInfoNodeWrite</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYVALUENODEREAD">xmlSecKeyDataUsageKeyValueNodeRead</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYVALUENODEWRITE">xmlSecKeyDataUsageKeyValueNodeWrite</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGERETRIEVALMETHODNODEXML">xmlSecKeyDataUsageRetrievalMethodNodeXml</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGERETRIEVALMETHODNODEBIN">xmlSecKeyDataUsageRetrievalMethodNodeBin</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEANY">xmlSecKeyDataUsageAny</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYINFONODE">xmlSecKeyDataUsageKeyInfoNode</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYVALUENODE">xmlSecKeyDataUsageKeyValueNode</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGERETRIEVALMETHODNODE">xmlSecKeyDataUsageRetrievalMethodNode</a>
-typedef <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a>;
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEUNKNOWN">xmlSecKeyDataTypeUnknown</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPENONE">xmlSecKeyDataTypeNone</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEPUBLIC">xmlSecKeyDataTypePublic</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEPRIVATE">xmlSecKeyDataTypePrivate</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPESYMMETRIC">xmlSecKeyDataTypeSymmetric</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPESESSION">xmlSecKeyDataTypeSession</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEPERMANENT">xmlSecKeyDataTypePermanent</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPETRUSTED">xmlSecKeyDataTypeTrusted</a>
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEANY">xmlSecKeyDataTypeAny</a>
-enum <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a>;
-<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSGET">xmlSecKeyDataIdsGet</a> (void);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSINIT">xmlSecKeyDataIdsInit</a> (void);
-<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSSHUTDOWN">xmlSecKeyDataIdsShutdown</a> (void);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSREGISTERDEFAULT">xmlSecKeyDataIdsRegisterDefault</a> (void);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSREGISTER">xmlSecKeyDataIdsRegister</a> (<font>xmlSecKeyDataId</font> id);
-struct <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyData</a>;
-<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> <a href="xmlsec-keysdata.html#XMLSECKEYDATACREATE">xmlSecKeyDataCreate</a> (<font>xmlSecKeyDataId</font> id);
-<font>xmlSecKeyDataPtr</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATADUPLICATE">xmlSecKeyDataDuplicate</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATADESTROY">xmlSecKeyDataDestroy</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAGENERATE">xmlSecKeyDataGenerate</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> <a href="xmlsec-keysdata.html#XMLSECKEYDATAGETTYPE">xmlSecKeyDataGetType</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-keysdata.html#XMLSECKEYDATAGETSIZE">xmlSecKeyDataGetSize</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-const <font>xmlChar</font>* <a href="xmlsec-keysdata.html#XMLSECKEYDATAGETIDENTIFIER">xmlSecKeyDataGetIdentifier</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGDUMP">xmlSecKeyDataDebugDump</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGXMLDUMP">xmlSecKeyDataDebugXmlDump</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>FILE</font> *output);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLREAD">xmlSecKeyDataXmlRead</a> (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLWRITE">xmlSecKeyDataXmlWrite</a> (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINREAD">xmlSecKeyDataBinRead</a> (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINWRITE">xmlSecKeyDataBinWrite</a> (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> **buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *bufSize,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAGETNAME">xmlSecKeyDataGetName</a> (data)
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAISVALID">xmlSecKeyDataIsValid</a> (data)
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATACHECKID">xmlSecKeyDataCheckId</a> (data, dataId)
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATACHECKUSAGE">xmlSecKeyDataCheckUsage</a> (data, usg)
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATACHECKSIZE">xmlSecKeyDataCheckSize</a> (data, size)
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDUNKNOWN">xmlSecKeyDataIdUnknown</a>
-<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATAINITMETHOD">*xmlSecKeyDataInitMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATADUPLICATEMETHOD">*xmlSecKeyDataDuplicateMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> dst,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> src);
-<font>void</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATAFINALIZEMETHOD">*xmlSecKeyDataFinalizeMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLREADMETHOD">*xmlSecKeyDataXmlReadMethod</a>) (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLWRITEMETHOD">*xmlSecKeyDataXmlWriteMethod</a>) (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATABINREADMETHOD">*xmlSecKeyDataBinReadMethod</a>) (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATABINWRITEMETHOD">*xmlSecKeyDataBinWriteMethod</a>) (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> **buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *bufSize,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATAGENERATEMETHOD">*xmlSecKeyDataGenerateMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATAGETTYPEMETHOD">*xmlSecKeyDataGetTypeMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATAGETSIZEMETHOD">*xmlSecKeyDataGetSizeMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-const <font>xmlChar</font> * (<a href="xmlsec-keysdata.html#XMLSECKEYDATAGETIDENTIFIERMETHOD">*xmlSecKeyDataGetIdentifierMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>void</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGDUMPMETHOD">*xmlSecKeyDataDebugDumpMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>FILE</font> *output);
-struct <a href="xmlsec-keysdata.html#XMLSECKEYDATAKLASS">xmlSecKeyDataKlass</a>;
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAKLASSGETNAME">xmlSecKeyDataKlassGetName</a> (klass)
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATALISTID">xmlSecKeyDataListId</a>
-<font>xmlSecPtrListId</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATALISTGETKLASS">xmlSecKeyDataListGetKlass</a> (void);
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTID">xmlSecKeyDataIdListId</a>
-<font>xmlSecPtrListId</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTGETKLASS">xmlSecKeyDataIdListGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTFIND">xmlSecKeyDataIdListFind</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>xmlSecKeyDataId</font> dataId);
-<font>xmlSecKeyDataId</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTFINDBYNODE">xmlSecKeyDataIdListFindByNode</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- const <font>xmlChar</font> *nodeName,
- const <font>xmlChar</font> *nodeNs,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a> usage);
-<font>xmlSecKeyDataId</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTFINDBYHREF">xmlSecKeyDataIdListFindByHref</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- const <font>xmlChar</font> *href,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a> usage);
-<font>xmlSecKeyDataId</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTFINDBYNAME">xmlSecKeyDataIdListFindByName</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- const <font>xmlChar</font> *name,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a> usage);
-<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTDEBUGDUMP">xmlSecKeyDataIdListDebugDump</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTDEBUGXMLDUMP">xmlSecKeyDataIdListDebugXmlDump</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>FILE</font> *output);
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYSIZE">xmlSecKeyDataBinarySize</a>
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEINITIALIZE">xmlSecKeyDataBinaryValueInitialize</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEDUPLICATE">xmlSecKeyDataBinaryValueDuplicate</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> dst,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> src);
-<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEFINALIZE">xmlSecKeyDataBinaryValueFinalize</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEXMLREAD">xmlSecKeyDataBinaryValueXmlRead</a> (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEXMLWRITE">xmlSecKeyDataBinaryValueXmlWrite</a> (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEBINREAD">xmlSecKeyDataBinaryValueBinRead</a> (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEBINWRITE">xmlSecKeyDataBinaryValueBinWrite</a> (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> **buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *bufSize,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEDEBUGDUMP">xmlSecKeyDataBinaryValueDebugDump</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEDEBUGXMLDUMP">xmlSecKeyDataBinaryValueDebugXmlDump</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>FILE</font> *output);
-<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEGETSIZE">xmlSecKeyDataBinaryValueGetSize</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>xmlSecBufferPtr</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEGETBUFFER">xmlSecKeyDataBinaryValueGetBuffer</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUESETBUFFER">xmlSecKeyDataBinaryValueSetBuffer</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-struct <a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStore</a>;
-<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> <a href="xmlsec-keysdata.html#XMLSECKEYDATASTORECREATE">xmlSecKeyDataStoreCreate</a> (<font>xmlSecKeyDataStoreId</font> id);
-<font>void</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREDESTROY">xmlSecKeyDataStoreDestroy</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store);
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREGETNAME">xmlSecKeyDataStoreGetName</a> (store)
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREISVALID">xmlSecKeyDataStoreIsValid</a> (store)
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATASTORECHECKID">xmlSecKeyDataStoreCheckId</a> (store, storeId)
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATASTORECHECKSIZE">xmlSecKeyDataStoreCheckSize</a> (store, size)
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREIDUNKNOWN">xmlSecKeyDataStoreIdUnknown</a>
-<font>int</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREINITIALIZEMETHOD">*xmlSecKeyDataStoreInitializeMethod</a>)
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store);
-<font>void</font> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREFINALIZEMETHOD">*xmlSecKeyDataStoreFinalizeMethod</a>) (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store);
-struct <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREKLASS">xmlSecKeyDataStoreKlass</a>;
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREKLASSGETNAME">xmlSecKeyDataStoreKlassGetName</a> (klass)
-#define <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREPTRLISTID">xmlSecKeyDataStorePtrListId</a>
-<font>xmlSecPtrListId</font> <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREPTRLISTGETKLASS">xmlSecKeyDataStorePtrListGetKlass</a> (void);</pre>
-</div>
-<div class="REFSECT1">
-<a name="XMLSEC-KEYSDATA.DESCRIPTION"></a><h2>Description</h2>
-<p>Crypto key data object definition.</p>
-</div>
+<a name="AEN8347"></a><h2>Name</h2>keysdata -- Crypto key data object definition.</div>
<div class="REFSECT1">
-<a name="XMLSEC-KEYSDATA.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAUSAGE"></a><h3>xmlSecKeyDataUsage</h3>
-<pre class="PROGRAMLISTING">typedef unsigned int xmlSecKeyDataUsage;</pre>
-<p>The bits mask that determines possible keys data usage.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAUSAGEUNKNOWN"></a><h3>xmlSecKeyDataUsageUnknown</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageUnknown 0x00000</pre>
-<p>The key data usage is unknown.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAUSAGEKEYINFONODEREAD"></a><h3>xmlSecKeyDataUsageKeyInfoNodeRead</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyInfoNodeRead 0x00001</pre>
-<p>The key data could be read from a <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> child.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAUSAGEKEYINFONODEWRITE"></a><h3>xmlSecKeyDataUsageKeyInfoNodeWrite</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyInfoNodeWrite 0x00002</pre>
-<p>The key data could be written to a <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top"><dsig:KeyInfo /></a> child.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAUSAGEKEYVALUENODEREAD"></a><h3>xmlSecKeyDataUsageKeyValueNodeRead</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyValueNodeRead 0x00004</pre>
-<p>The key data could be read from a <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue%20" target="_top"><dsig:KeyValue /></a> child.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAUSAGEKEYVALUENODEWRITE"></a><h3>xmlSecKeyDataUsageKeyValueNodeWrite</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyValueNodeWrite 0x00008</pre>
-<p>The key data could be written to a <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue%20" target="_top"><dsig:KeyValue /></a> child.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAUSAGERETRIEVALMETHODNODEXML"></a><h3>xmlSecKeyDataUsageRetrievalMethodNodeXml</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageRetrievalMethodNodeXml 0x00010</pre>
-<p>The key data could be retrieved using <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top"><dsig:RetrievalMethod /></a> node
-in XML format.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAUSAGERETRIEVALMETHODNODEBIN"></a><h3>xmlSecKeyDataUsageRetrievalMethodNodeBin</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageRetrievalMethodNodeBin 0x00020</pre>
-<p>The key data could be retrieved using <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top"><dsig:RetrievalMethod /></a> node
-in binary format.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAUSAGEANY"></a><h3>xmlSecKeyDataUsageAny</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageAny 0xFFFFF</pre>
-<p>Any key data usage.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAUSAGEKEYINFONODE"></a><h3>xmlSecKeyDataUsageKeyInfoNode</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyInfoNode</pre>
-<p>The key data could be read and written from/to a <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo%20" target="_top"><dsig:KeyInfo /></a> child.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAUSAGEKEYVALUENODE"></a><h3>xmlSecKeyDataUsageKeyValueNode</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyValueNode</pre>
-<p>The key data could be read and written from/to a <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue%20" target="_top"><dsig:KeyValue /></a> child.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAUSAGERETRIEVALMETHODNODE"></a><h3>xmlSecKeyDataUsageRetrievalMethodNode</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageRetrievalMethodNode</pre>
-<p>The key data could be retrieved using <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod%20" target="_top"><dsig:RetrievalMethod /></a> node
-in any format.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATATYPE"></a><h3>xmlSecKeyDataType</h3>
-<pre class="PROGRAMLISTING">typedef unsigned int xmlSecKeyDataType;</pre>
-<p>The key data type (public/private, session/permanet, etc.).</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATATYPEUNKNOWN"></a><h3>xmlSecKeyDataTypeUnknown</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeUnknown 0x0000</pre>
-<p>The key data type is unknown (same as <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPENONE"><span class="TYPE">xmlSecKeyDataTypeNone</span></a>).</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATATYPENONE"></a><h3>xmlSecKeyDataTypeNone</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeNone xmlSecKeyDataTypeUnknown</pre>
-<p>The key data type is unknown (same as <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEUNKNOWN"><span class="TYPE">xmlSecKeyDataTypeUnknown</span></a>).</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATATYPEPUBLIC"></a><h3>xmlSecKeyDataTypePublic</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypePublic 0x0001</pre>
-<p>The key data contain a public key.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATATYPEPRIVATE"></a><h3>xmlSecKeyDataTypePrivate</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypePrivate 0x0002</pre>
-<p>The key data contain a private key.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATATYPESYMMETRIC"></a><h3>xmlSecKeyDataTypeSymmetric</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeSymmetric 0x0004</pre>
-<p>The key data contain a symmetric key.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATATYPESESSION"></a><h3>xmlSecKeyDataTypeSession</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeSession 0x0008</pre>
-<p>The key data contain session key (one time key, not stored in keys manager).</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATATYPEPERMANENT"></a><h3>xmlSecKeyDataTypePermanent</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypePermanent 0x0010</pre>
-<p>The key data contain permanent key (stored in keys manager).</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATATYPETRUSTED"></a><h3>xmlSecKeyDataTypeTrusted</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeTrusted 0x0100</pre>
-<p>The key data is trusted.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATATYPEANY"></a><h3>xmlSecKeyDataTypeAny</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeAny 0xFFFF</pre>
-<p>Any key data.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAFORMAT"></a><h3>enum xmlSecKeyDataFormat</h3>
-<pre class="PROGRAMLISTING">typedef enum {
- xmlSecKeyDataFormatUnknown = 0,
- xmlSecKeyDataFormatBinary,
- xmlSecKeyDataFormatPem,
- xmlSecKeyDataFormatDer,
- xmlSecKeyDataFormatPkcs8Pem,
- xmlSecKeyDataFormatPkcs8Der,
- xmlSecKeyDataFormatPkcs12,
- xmlSecKeyDataFormatCertPem,
- xmlSecKeyDataFormatCertDer
-} xmlSecKeyDataFormat;</pre>
-<p>The key data format (binary, der, pem, etc.).</p>
+<a name="XMLSEC-KEYSDATA.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN8352"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECKEYDATAFORMATUNKNOWN"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecKeyDataFormatUnknown</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the key data format is unknown.</p></td>
+<td><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="RETURNVALUE">xmlSecPtrListPtr</span></a></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSGET">xmlSecKeyDataIdsGet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECKEYDATAFORMATBINARY"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecKeyDataFormatBinary</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the binary key data.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSINIT">xmlSecKeyDataIdsInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECKEYDATAFORMATPEM"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecKeyDataFormatPem</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the PEM key data (cert or public/private key).</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSSHUTDOWN">xmlSecKeyDataIdsShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECKEYDATAFORMATDER"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecKeyDataFormatDer</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the DER key data (cert or public/private key).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSREGISTERDEFAULT">xmlSecKeyDataIdsRegisterDefault</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECKEYDATAFORMATPKCS8PEM"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecKeyDataFormatPkcs8Pem</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS8 PEM private key.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAIDSREGISTER">xmlSecKeyDataIdsRegister</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECKEYDATAFORMATPKCS8DER"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecKeyDataFormatPkcs8Der</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS8 DER private key.</p></td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATACREATE">xmlSecKeyDataCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECKEYDATAFORMATPKCS12"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecKeyDataFormatPkcs12</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 format (bag of keys and certs)</p></td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATADUPLICATE">xmlSecKeyDataDuplicate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECKEYDATAFORMATCERTPEM"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecKeyDataFormatCertPem</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the PEM cert.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATADESTROY">xmlSecKeyDataDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECKEYDATAFORMATCERTDER"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecKeyDataFormatCertDer</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the DER cert.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAGENERATE">xmlSecKeyDataGenerate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAIDSGET"></a><h3>xmlSecKeyDataIdsGet ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> xmlSecKeyDataIdsGet (void);</pre>
-<p>Gets global registered key data klasses list.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN6844"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list of all registered key data klasses.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAIDSINIT"></a><h3>xmlSecKeyDataIdsInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataIdsInit (void);</pre>
-<p>Initializes the key data klasses. This function is called from the
-<a href="xmlsec-xmlsec.html#XMLSECINIT"><span class="TYPE">xmlSecInit</span></a> function and the application should not call it directly.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN6860"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAIDSSHUTDOWN"></a><h3>xmlSecKeyDataIdsShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataIdsShutdown (void);</pre>
-<p>Shuts down the keys data klasses. This function is called from the
-<a href="xmlsec-xmlsec.html#XMLSECSHUTDOWN"><span class="TYPE">xmlSecShutdown</span></a> function and the application should not call it directly.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAIDSREGISTERDEFAULT"></a><h3>xmlSecKeyDataIdsRegisterDefault ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataIdsRegisterDefault (void);</pre>
-<p>Registers default (implemented by XML Security Library)
-key data klasses: <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName" target="_top"><dsig:KeyName/></a> element processing klass,
-<a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue" target="_top"><dsig:KeyValue/></a> element processing klass, ...</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN6886"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAIDSREGISTER"></a><h3>xmlSecKeyDataIdsRegister ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataIdsRegister (<font>xmlSecKeyDataId</font> id);</pre>
-<p>Registers <code class="PARAMETER">id</code> in the global list of key data klasses.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6902"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key data klass.</p></td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="RETURNVALUE">xmlSecKeyDataType</span></a></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAGETTYPE">xmlSecKeyDataGetType</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6907"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAGETSIZE">xmlSecKeyDataGetSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATA"></a><h3>struct xmlSecKeyData</h3>
-<pre class="PROGRAMLISTING">struct xmlSecKeyData {
- xmlSecKeyDataId id;
- void* reserved0;
- void* reserved1;
-};</pre>
-<p>The key data: key value (crypto material), x509 data, pgp data, etc.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6920"><span style="white-space: nowrap"><font>xmlSecKeyDataId</font> <code class="STRUCTFIELD">id</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data id (<font><span class="TYPE">xmlSecKeyDataId</span></font>).</p></td>
+<td>const <font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAGETIDENTIFIER">xmlSecKeyDataGetIdentifier</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6928"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGDUMP">xmlSecKeyDataDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6934"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGXMLDUMP">xmlSecKeyDataDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATACREATE"></a><h3>xmlSecKeyDataCreate ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> xmlSecKeyDataCreate (<font>xmlSecKeyDataId</font> id);</pre>
-<p>Allocates and initializes new key data of the specified type <code class="PARAMETER">id</code>.
-Caller is responsible for destroying returned object with
-<a href="xmlsec-keysdata.html#XMLSECKEYDATADESTROY"><span class="TYPE">xmlSecKeyDataDestroy</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6953"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data id.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLREAD">xmlSecKeyDataXmlRead</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6958"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly allocated key data structure
-or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLWRITE">xmlSecKeyDataXmlWrite</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATADUPLICATE"></a><h3>xmlSecKeyDataDuplicate ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataPtr</font> xmlSecKeyDataDuplicate (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Creates a duplicate of the given <code class="PARAMETER">data</code>. Caller is responsible for
-destroying returned object with <a href="xmlsec-keysdata.html#XMLSECKEYDATADESTROY"><span class="TYPE">xmlSecKeyDataDestroy</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6976"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the key data.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATABINREAD">xmlSecKeyDataBinRead</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN6981"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly allocated key data structure
-or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATABINWRITE">xmlSecKeyDataBinWrite</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATADESTROY"></a><h3>xmlSecKeyDataDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataDestroy (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Destroys the data and frees all allocated memory.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN6996"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the key data.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAGENERATE"></a><h3>xmlSecKeyDataGenerate ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataGenerate (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Generates new key data of given size and type.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7013"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAGETNAME">xmlSecKeyDataGetName</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7018"><span style="white-space: nowrap"><code class="PARAMETER">sizeBits</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key data size (in bits).</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAISVALID">xmlSecKeyDataIsValid</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7023"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key data type.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATACHECKID">xmlSecKeyDataCheckId</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7028"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATACHECKUSAGE">xmlSecKeyDataCheckUsage</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAGETTYPE"></a><h3>xmlSecKeyDataGetType ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> xmlSecKeyDataGetType (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets key data type.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7043"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATACHECKSIZE">xmlSecKeyDataCheckSize</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7048"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> key data type.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAIDUNKNOWN">xmlSecKeyDataIdUnknown</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAGETSIZE"></a><h3>xmlSecKeyDataGetSize ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecKeyDataGetSize (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets key data size.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7063"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysdata.html#XMLSECKEYDATAINITMETHOD">*xmlSecKeyDataInitMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7068"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> key data size (in bits).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysdata.html#XMLSECKEYDATADUPLICATEMETHOD">*xmlSecKeyDataDuplicateMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAGETIDENTIFIER"></a><h3>xmlSecKeyDataGetIdentifier ()</h3>
-<pre class="PROGRAMLISTING">const <font>xmlChar</font>* xmlSecKeyDataGetIdentifier (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets key data identifier string.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7083"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysdata.html#XMLSECKEYDATAFINALIZEMETHOD">*xmlSecKeyDataFinalizeMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7088"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> key data id string.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLREADMETHOD">*xmlSecKeyDataXmlReadMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATADEBUGDUMP"></a><h3>xmlSecKeyDataDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataDebugDump (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>FILE</font> *output);</pre>
-<p>Prints key data debug info.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7104"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLWRITEMETHOD">*xmlSecKeyDataXmlWriteMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7109"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysdata.html#XMLSECKEYDATABINREADMETHOD">*xmlSecKeyDataBinReadMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATADEBUGXMLDUMP"></a><h3>xmlSecKeyDataDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataDebugXmlDump (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>FILE</font> *output);</pre>
-<p>Prints key data debug info in XML format.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7125"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysdata.html#XMLSECKEYDATABINWRITEMETHOD">*xmlSecKeyDataBinWriteMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7130"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysdata.html#XMLSECKEYDATAGENERATEMETHOD">*xmlSecKeyDataGenerateMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAXMLREAD"></a><h3>xmlSecKeyDataXmlRead ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataXmlRead (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Reads the key data of klass <code class="PARAMETER">id</code> from XML <code class="PARAMETER">node</code> and adds them to <code class="PARAMETER">key</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7151"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="RETURNVALUE">xmlSecKeyDataType</span></a></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysdata.html#XMLSECKEYDATAGETTYPEMETHOD">*xmlSecKeyDataGetTypeMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7156"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination key.</p></td>
+<td><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysdata.html#XMLSECKEYDATAGETSIZEMETHOD">*xmlSecKeyDataGetSizeMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7161"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
+<td>const <font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysdata.html#XMLSECKEYDATAGETIDENTIFIERMETHOD">*xmlSecKeyDataGetIdentifierMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7166"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGDUMPMETHOD">*xmlSecKeyDataDebugDumpMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7172"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAKLASSGETNAME">xmlSecKeyDataKlassGetName</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAXMLWRITE"></a><h3>xmlSecKeyDataXmlWrite ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataXmlWrite (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Writes the key data of klass <code class="PARAMETER">id</code> from <code class="PARAMETER">key</code> to an XML <code class="PARAMETER">node</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7193"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecPtrListId</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATALISTGETKLASS">xmlSecKeyDataListGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7198"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the source key.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecPtrListId</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTGETKLASS">xmlSecKeyDataIdListGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7203"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTFIND">xmlSecKeyDataIdListFind</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7208"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTFINDBYNODE">xmlSecKeyDataIdListFindByNode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7214"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTFINDBYHREF">xmlSecKeyDataIdListFindByHref</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATABINREAD"></a><h3>xmlSecKeyDataBinRead ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinRead (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Reads the key data of klass <code class="PARAMETER">id</code> from binary buffer <code class="PARAMETER">buf</code> to <code class="PARAMETER">key</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7236"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTFINDBYNAME">xmlSecKeyDataIdListFindByName</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7241"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination key.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTDEBUGDUMP">xmlSecKeyDataIdListDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7246"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input binary buffer.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTDEBUGXMLDUMP">xmlSecKeyDataIdListDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7251"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input buffer size.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEINITIALIZE">xmlSecKeyDataBinaryValueInitialize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7256"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEDUPLICATE">xmlSecKeyDataBinaryValueDuplicate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7262"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEFINALIZE">xmlSecKeyDataBinaryValueFinalize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATABINWRITE"></a><h3>xmlSecKeyDataBinWrite ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinWrite (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> **buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *bufSize,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Writes the key data of klass <code class="PARAMETER">id</code> from the <code class="PARAMETER">key</code> to a binary buffer <code class="PARAMETER">buf</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7284"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEXMLREAD">xmlSecKeyDataBinaryValueXmlRead</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7289"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the source key.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEXMLWRITE">xmlSecKeyDataBinaryValueXmlWrite</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7294"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output binary buffer.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEBINREAD">xmlSecKeyDataBinaryValueBinRead</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7299"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output buffer size.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEBINWRITE">xmlSecKeyDataBinaryValueBinWrite</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7304"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEDEBUGDUMP">xmlSecKeyDataBinaryValueDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7310"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEDEBUGXMLDUMP">xmlSecKeyDataBinaryValueDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEGETSIZE">xmlSecKeyDataBinaryValueGetSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAGETNAME"></a><h3>xmlSecKeyDataGetName()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataGetName(data)</pre>
-<p>Macro. Returns the key data name.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN7323"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAISVALID"></a><h3>xmlSecKeyDataIsValid()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataIsValid(data)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">data</code> is not NULL and <code class="PARAMETER">data</code>->id is not NULL
-or 0 otherwise.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN7338"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to data.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATACHECKID"></a><h3>xmlSecKeyDataCheckId()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataCheckId(data, dataId)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">data</code> is valid and <code class="PARAMETER">data</code>'s id is equal to <code class="PARAMETER">dataId</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7354"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to data.</p></td>
+<td><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="RETURNVALUE">xmlSecBufferPtr</span></a></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUEGETBUFFER">xmlSecKeyDataBinaryValueGetBuffer</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7359"><span style="white-space: nowrap"><code class="PARAMETER">dataId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data Id.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYVALUESETBUFFER">xmlSecKeyDataBinaryValueSetBuffer</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATACHECKUSAGE"></a><h3>xmlSecKeyDataCheckUsage()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataCheckUsage(data, usg)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">data</code> is valid and could be used for <code class="PARAMETER">usg</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7374"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to data.</p></td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="RETURNVALUE">xmlSecKeyDataStorePtr</span></a></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORECREATE">xmlSecKeyDataStoreCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7379"><span style="white-space: nowrap"><code class="PARAMETER">usg</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data usage.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREDESTROY">xmlSecKeyDataStoreDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATACHECKSIZE"></a><h3>xmlSecKeyDataCheckSize()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataCheckSize(data, size)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">data</code> is valid and <code class="PARAMETER">data</code>'s object has at least <code class="PARAMETER">size</code> bytes.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7395"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to data.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREGETNAME">xmlSecKeyDataStoreGetName</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7400"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the expected size.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREISVALID">xmlSecKeyDataStoreIsValid</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAIDUNKNOWN"></a><h3>xmlSecKeyDataIdUnknown</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataIdUnknown ((xmlSecKeyDataId)NULL)</pre>
-<p>The "unknown" id.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAINITMETHOD"></a><h3>xmlSecKeyDataInitMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataInitMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Key data specific initialization method.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7422"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORECHECKID">xmlSecKeyDataStoreCheckId</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7427"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORECHECKSIZE">xmlSecKeyDataStoreCheckSize</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATADUPLICATEMETHOD"></a><h3>xmlSecKeyDataDuplicateMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataDuplicateMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> dst,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> src);</pre>
-<p>Key data specific duplication (copy) method.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7443"><span style="white-space: nowrap"><code class="PARAMETER">dst</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to destination key data.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREINITIALIZEMETHOD">*xmlSecKeyDataStoreInitializeMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7448"><span style="white-space: nowrap"><code class="PARAMETER">src</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the poiniter to source key data.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREFINALIZEMETHOD">*xmlSecKeyDataStoreFinalizeMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7453"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREKLASSGETNAME">xmlSecKeyDataStoreKlassGetName</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAFINALIZEMETHOD"></a><h3>xmlSecKeyDataFinalizeMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> (*xmlSecKeyDataFinalizeMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Key data specific finalization method. All the objects and resources allocated
-by the key data object must be freed inside this method.</p>
-<p></p>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecPtrListId</span></font></td>
+<td>
+<a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREPTRLISTGETKLASS">xmlSecKeyDataStorePtrListGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN7468"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data.</p></td>
-</tr></tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAXMLREADMETHOD"></a><h3>xmlSecKeyDataXmlReadMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataXmlReadMethod) (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Key data specific method for reading XML node.</p>
-<p></p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-KEYSDATA.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN8829"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7486"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data id.</p></td>
+<td>typedef</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7491"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEUNKNOWN">xmlSecKeyDataUsageUnknown</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7496"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to data's value XML node.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYINFONODEREAD">xmlSecKeyDataUsageKeyInfoNodeRead</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7501"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYINFONODEWRITE">xmlSecKeyDataUsageKeyInfoNodeWrite</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7507"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYVALUENODEREAD">xmlSecKeyDataUsageKeyValueNodeRead</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAXMLWRITEMETHOD"></a><h3>xmlSecKeyDataXmlWriteMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataXmlWriteMethod) (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Key data specific method for writing XML node.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7525"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data id.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYVALUENODEWRITE">xmlSecKeyDataUsageKeyValueNodeWrite</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7530"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGERETRIEVALMETHODNODEXML">xmlSecKeyDataUsageRetrievalMethodNodeXml</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7535"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to data's value XML node.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGERETRIEVALMETHODNODEBIN">xmlSecKeyDataUsageRetrievalMethodNodeBin</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7540"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <dsig:KeyInfo> node processing context.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEANY">xmlSecKeyDataUsageAny</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7545"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYINFONODE">xmlSecKeyDataUsageKeyInfoNode</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATABINREADMETHOD"></a><h3>xmlSecKeyDataBinReadMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataBinReadMethod) (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Key data specific method for reading binary buffer.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7564"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data id.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGEKEYVALUENODE">xmlSecKeyDataUsageKeyValueNode</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7569"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGERETRIEVALMETHODNODE">xmlSecKeyDataUsageRetrievalMethodNode</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7574"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input buffer.</p></td>
+<td>typedef</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7579"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the buffer size.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEUNKNOWN">xmlSecKeyDataTypeUnknown</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7584"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPENONE">xmlSecKeyDataTypeNone</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7590"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEPUBLIC">xmlSecKeyDataTypePublic</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATABINWRITEMETHOD"></a><h3>xmlSecKeyDataBinWriteMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataBinWriteMethod) (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> **buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *bufSize,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Key data specific method for reading binary buffer.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7609"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data id.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEPRIVATE">xmlSecKeyDataTypePrivate</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7614"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPESYMMETRIC">xmlSecKeyDataTypeSymmetric</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7619"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output buffer.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPESESSION">xmlSecKeyDataTypeSession</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7624"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the buffer size.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEPERMANENT">xmlSecKeyDataTypePermanent</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7629"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPETRUSTED">xmlSecKeyDataTypeTrusted</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7635"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEANY">xmlSecKeyDataTypeAny</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAGENERATEMETHOD"></a><h3>xmlSecKeyDataGenerateMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataGenerateMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> sizeBits,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Key data specific method for generating new key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7652"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
+<td>enum</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7657"><span style="white-space: nowrap"><code class="PARAMETER">sizeBits</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key data specific size.</p></td>
+<td>struct</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyData</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7662"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the required key type (session/permanent, etc.)</p></td>
+<td>struct</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAKLASS">xmlSecKeyDataKlass</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7667"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATALISTID">xmlSecKeyDataListId</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAGETTYPEMETHOD"></a><h3>xmlSecKeyDataGetTypeMethod ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> (*xmlSecKeyDataGetTypeMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Key data specific method to get the key type.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7682"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATAIDLISTID">xmlSecKeyDataIdListId</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7687"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key type.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATABINARYSIZE">xmlSecKeyDataBinarySize</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAGETSIZEMETHOD"></a><h3>xmlSecKeyDataGetSizeMethod ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> (*xmlSecKeyDataGetSizeMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Key data specific method to get the key size.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7702"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
+<td>struct</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStore</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7707"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key size in bits.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREIDUNKNOWN">xmlSecKeyDataStoreIdUnknown</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAGETIDENTIFIERMETHOD"></a><h3>xmlSecKeyDataGetIdentifierMethod ()</h3>
-<pre class="PROGRAMLISTING">const <font>xmlChar</font> * (*xmlSecKeyDataGetIdentifierMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Key data specific method to get the key data identifier string (for example,
-X509 data identifier is the subject of the verified cert).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7722"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data.</p></td>
+<td>struct</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREKLASS">xmlSecKeyDataStoreKlass</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7727"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the identifier string or NULL if an error occurs.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREPTRLISTID">xmlSecKeyDataStorePtrListId</a></td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-KEYSDATA.DESCRIPTION"></a><h2>Description</h2>
+<p>Crypto key data object definition.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-KEYSDATA.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAIDSGET"></a><h3>xmlSecKeyDataIdsGet ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="RETURNVALUE">xmlSecPtrListPtr</span></a>
+xmlSecKeyDataIdsGet (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Gets global registered key data klasses list.</p>
+<div class="REFSECT3">
+<a name="AEN8975"></a><h4>Returns</h4>
+<p> the pointer to list of all registered key data klasses.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATADEBUGDUMPMETHOD"></a><h3>xmlSecKeyDataDebugDumpMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> (*xmlSecKeyDataDebugDumpMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>FILE</font> *output);</pre>
-<p>Key data specific method for printing debug info.</p>
+<a name="XMLSECKEYDATAIDSINIT"></a><h3>xmlSecKeyDataIdsInit ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataIdsInit (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Initializes the key data klasses. This function is called from the
+<a href="xmlsec-xmlsec.html#XMLSECINIT"><span class="TYPE">xmlSecInit</span></a> function and the application should not call it directly.</p>
+<div class="REFSECT3">
+<a name="AEN8990"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAIDSSHUTDOWN"></a><h3>xmlSecKeyDataIdsShutdown ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyDataIdsShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Shuts down the keys data klasses. This function is called from the
+<a href="xmlsec-xmlsec.html#XMLSECSHUTDOWN"><span class="TYPE">xmlSecShutdown</span></a> function and the application should not call it directly.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAIDSREGISTERDEFAULT"></a><h3>xmlSecKeyDataIdsRegisterDefault ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataIdsRegisterDefault (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Registers default (implemented by XML Security Library)
+key data klasses: <dsig:KeyName/> element processing klass,
+<dsig:KeyValue/> element processing klass, ...</p>
+<div class="REFSECT3">
+<a name="AEN9015"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAIDSREGISTER"></a><h3>xmlSecKeyDataIdsRegister ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataIdsRegister (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> id</code>);</pre>
+<p>Registers <code class="PARAMETER">id</code>
+ in the global list of key data klasses.</p>
+<div class="REFSECT3">
+<a name="AEN9030"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9032"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>id</p></td>
+<td><p>the key data klass.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9041"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATACREATE"></a><h3>xmlSecKeyDataCreate ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a>
+xmlSecKeyDataCreate (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> id</code>);</pre>
+<p>Allocates and initializes new key data of the specified type <code class="PARAMETER">id</code>
+.
+Caller is responsible for destroying returned object with
+<a href="xmlsec-keysdata.html#XMLSECKEYDATADESTROY"><span class="TYPE">xmlSecKeyDataDestroy</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN9058"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9060"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>id</p></td>
+<td><p>the data id.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9069"></a><h4>Returns</h4>
+<p> the pointer to newly allocated key data structure
+or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATADUPLICATE"></a><h3>xmlSecKeyDataDuplicate ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a>
+xmlSecKeyDataDuplicate (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Creates a duplicate of the given <code class="PARAMETER">data</code>
+. Caller is responsible for
+destroying returned object with <a href="xmlsec-keysdata.html#XMLSECKEYDATADESTROY"><span class="TYPE">xmlSecKeyDataDestroy</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN9086"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9088"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to the key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9097"></a><h4>Returns</h4>
+<p> the pointer to newly allocated key data structure
+or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATADESTROY"></a><h3>xmlSecKeyDataDestroy ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyDataDestroy (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Destroys the data and frees all allocated memory.</p>
+<div class="REFSECT3">
+<a name="AEN9111"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9113"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to the key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAGENERATE"></a><h3>xmlSecKeyDataGenerate ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataGenerate (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> sizeBits</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Generates new key data of given size and type.</p>
+<div class="REFSECT3">
+<a name="AEN9139"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN9141"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to key data.</p></td>
+<td> </td>
+</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7743"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data.</p></td>
+<td><p>sizeBits</p></td>
+<td><p>the desired key data size (in bits).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7748"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the FILE to print debug info (should be open for writing).</p></td>
+<td><p>type</p></td>
+<td><p>the desired key data type.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9162"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATAKLASS"></a><h3>struct xmlSecKeyDataKlass</h3>
-<pre class="PROGRAMLISTING">struct xmlSecKeyDataKlass {
- xmlSecSize klassSize;
- xmlSecSize objSize;
-
- /* data */
- const xmlChar* name;
- xmlSecKeyDataUsage usage;
- const xmlChar* href;
- const xmlChar* dataNodeName;
- const xmlChar* dataNodeNs;
-
- /* constructors/destructor */
- xmlSecKeyDataInitMethod initialize;
- xmlSecKeyDataDuplicateMethod duplicate;
- xmlSecKeyDataFinalizeMethod finalize;
- xmlSecKeyDataGenerateMethod generate;
-
- /* get info */
- xmlSecKeyDataGetTypeMethod getType;
- xmlSecKeyDataGetSizeMethod getSize;
- xmlSecKeyDataGetIdentifierMethod getIdentifier;
-
- /* read/write */
- xmlSecKeyDataXmlReadMethod xmlRead;
- xmlSecKeyDataXmlWriteMethod xmlWrite;
- xmlSecKeyDataBinReadMethod binRead;
- xmlSecKeyDataBinWriteMethod binWrite;
-
- /* debug */
- xmlSecKeyDataDebugDumpMethod debugDump;
- xmlSecKeyDataDebugDumpMethod debugXmlDump;
-
- /* for the future */
- void* reserved0;
- void* reserved1;
-};</pre>
-<p>The data id (klass).</p>
+<a name="XMLSECKEYDATAGETTYPE"></a><h3>xmlSecKeyDataGetType ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="RETURNVALUE">xmlSecKeyDataType</span></a>
+xmlSecKeyDataGetType (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets key data type.</p>
+<div class="REFSECT3">
+<a name="AEN9176"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9178"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9187"></a><h4>Returns</h4>
+<p> key data type.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAGETSIZE"></a><h3>xmlSecKeyDataGetSize ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a>
+xmlSecKeyDataGetSize (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets key data size.</p>
+<div class="REFSECT3">
+<a name="AEN9201"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9203"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9212"></a><h4>Returns</h4>
+<p> key data size (in bits).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAGETIDENTIFIER"></a><h3>xmlSecKeyDataGetIdentifier ()</h3>
+<pre class="PROGRAMLISTING">const <font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecKeyDataGetIdentifier (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets key data identifier string.</p>
+<div class="REFSECT3">
+<a name="AEN9226"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9228"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9237"></a><h4>Returns</h4>
+<p> key data id string.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATADEBUGDUMP"></a><h3>xmlSecKeyDataDebugDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyDataDebugDump (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints key data debug info.</p>
+<div class="REFSECT3">
+<a name="AEN9254"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN9256"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7761"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">klassSize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the klass size.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7767"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">objSize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the object size.</p></td>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATADEBUGXMLDUMP"></a><h3>xmlSecKeyDataDebugXmlDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyDataDebugXmlDump (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints key data debug info in XML format.</p>
+<div class="REFSECT3">
+<a name="AEN9285"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9287"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7773"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">name</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the object name.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7779"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a> <code class="STRUCTFIELD">usage</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the allowed data usage.</p></td>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAXMLREAD"></a><h3>xmlSecKeyDataXmlRead ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataXmlRead (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> id</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Reads the key data of klass <code class="PARAMETER">id</code>
+ from XML <code class="PARAMETER">node</code>
+ and adds them to <code class="PARAMETER">key</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN9325"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9327"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7785"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">href</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the identification string (href).</p></td>
+<td><p>id</p></td>
+<td><p>the data klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7791"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">dataNodeName</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data's XML node name.</p></td>
+<td><p>key</p></td>
+<td><p>the destination key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7797"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">dataNodeNs</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data's XML node namespace.</p></td>
+<td><p>node</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7803"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAINITMETHOD">xmlSecKeyDataInitMethod</a> <code class="STRUCTFIELD">initialize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the initialization method.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9354"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAXMLWRITE"></a><h3>xmlSecKeyDataXmlWrite ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataXmlWrite (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> id</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Writes the key data of klass <code class="PARAMETER">id</code>
+ from <code class="PARAMETER">key</code>
+ to an XML <code class="PARAMETER">node</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN9380"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9382"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7809"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATADUPLICATEMETHOD">xmlSecKeyDataDuplicateMethod</a> <code class="STRUCTFIELD">duplicate</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the duplicate (copy) method.</p></td>
+<td><p>id</p></td>
+<td><p>the data klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7815"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFINALIZEMETHOD">xmlSecKeyDataFinalizeMethod</a> <code class="STRUCTFIELD">finalize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the finalization (destroy) method.</p></td>
+<td><p>key</p></td>
+<td><p>the source key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7821"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAGENERATEMETHOD">xmlSecKeyDataGenerateMethod</a> <code class="STRUCTFIELD">generate</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new data generation method.</p></td>
+<td><p>node</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7827"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAGETTYPEMETHOD">xmlSecKeyDataGetTypeMethod</a> <code class="STRUCTFIELD">getType</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the method to access data's type information.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9409"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINREAD"></a><h3>xmlSecKeyDataBinRead ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataBinRead (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> id</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Reads the key data of klass <code class="PARAMETER">id</code>
+ from binary buffer <code class="PARAMETER">buf</code>
+ to <code class="PARAMETER">key</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN9438"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9440"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7833"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAGETSIZEMETHOD">xmlSecKeyDataGetSizeMethod</a> <code class="STRUCTFIELD">getSize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the method to access data's size.</p></td>
+<td><p>id</p></td>
+<td><p>the data klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7839"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAGETIDENTIFIERMETHOD">xmlSecKeyDataGetIdentifierMethod</a> <code class="STRUCTFIELD">getIdentifier</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the method to access data's string identifier.</p></td>
+<td><p>key</p></td>
+<td><p>the destination key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7845"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLREADMETHOD">xmlSecKeyDataXmlReadMethod</a> <code class="STRUCTFIELD">xmlRead</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the method for reading data from XML node.</p></td>
+<td><p>buf</p></td>
+<td><p>the input binary buffer.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7851"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLWRITEMETHOD">xmlSecKeyDataXmlWriteMethod</a> <code class="STRUCTFIELD">xmlWrite</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the method for writing data to XML node.</p></td>
+<td><p>bufSize</p></td>
+<td><p>the input buffer size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7857"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATABINREADMETHOD">xmlSecKeyDataBinReadMethod</a> <code class="STRUCTFIELD">binRead</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the method for reading data from a binary buffer.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the <dsig:KeyInfo/> node processing context.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9473"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINWRITE"></a><h3>xmlSecKeyDataBinWrite ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataBinWrite (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> id</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> **buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> *bufSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Writes the key data of klass <code class="PARAMETER">id</code>
+ from the <code class="PARAMETER">key</code>
+ to a binary buffer <code class="PARAMETER">buf</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN9502"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9504"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7863"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATABINWRITEMETHOD">xmlSecKeyDataBinWriteMethod</a> <code class="STRUCTFIELD">binWrite</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the method for writing data to binary buffer.</p></td>
+<td><p>id</p></td>
+<td><p>the data klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7869"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGDUMPMETHOD">xmlSecKeyDataDebugDumpMethod</a> <code class="STRUCTFIELD">debugDump</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the method for printing debug data information.</p></td>
+<td><p>key</p></td>
+<td><p>the source key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7875"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGDUMPMETHOD">xmlSecKeyDataDebugDumpMethod</a> <code class="STRUCTFIELD">debugXmlDump</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the method for printing debug data information in XML format.</p></td>
+<td><p>buf</p></td>
+<td><p>the output binary buffer.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7881"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><p>bufSize</p></td>
+<td><p>the output buffer size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7887"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the <dsig:KeyInfo/> node processing context.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9537"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATAKLASSGETNAME"></a><h3>xmlSecKeyDataKlassGetName()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataKlassGetName(klass)</pre>
-<p>Macro. Returns data klass name.</p>
+<a name="XMLSECKEYDATAGETNAME"></a><h3>xmlSecKeyDataGetName()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataGetName(data)</pre>
+<p>Macro. Returns the key data name.</p>
+<div class="REFSECT3">
+<a name="AEN9546"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9548"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAISVALID"></a><h3>xmlSecKeyDataIsValid()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataIsValid(data)</pre>
+<p>Macro. Returns 1 if <code class="PARAMETER">data</code>
+ is not NULL and <code class="PARAMETER">data->id</code>
+ is not NULL
+or 0 otherwise.</p>
+<div class="REFSECT3">
+<a name="AEN9565"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9567"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN7901"><span style="white-space: nowrap"><code class="PARAMETER">klass</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATALISTID"></a><h3>xmlSecKeyDataListId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataListId xmlSecKeyDataListGetKlass()</pre>
-<p>The key data klasses list klass id.</p>
+<a name="XMLSECKEYDATACHECKID"></a><h3>xmlSecKeyDataCheckId()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataCheckId(data, dataId)</pre>
+<p>Macro. Returns 1 if <code class="PARAMETER">data</code>
+ is valid and <code class="PARAMETER">data</code>
+'s id is equal to <code class="PARAMETER">dataId</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN9585"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9587"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataId</p></td>
+<td><p>the data Id.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATALISTGETKLASS"></a><h3>xmlSecKeyDataListGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecPtrListId</font> xmlSecKeyDataListGetKlass (void);</pre>
-<p>The key data list klass.</p>
+<a name="XMLSECKEYDATACHECKUSAGE"></a><h3>xmlSecKeyDataCheckUsage()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataCheckUsage(data, usg)</pre>
+<p>Macro. Returns 1 if <code class="PARAMETER">data</code>
+ is valid and could be used for <code class="PARAMETER">usg</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN9610"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN9612"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>usg</p></td>
+<td><p>the data usage.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN7922"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key data list klass.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATAIDLISTID"></a><h3>xmlSecKeyDataIdListId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataIdListId xmlSecKeyDataIdListGetKlass()</pre>
-<p>The key data list klass id.</p>
+<a name="XMLSECKEYDATACHECKSIZE"></a><h3>xmlSecKeyDataCheckSize()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataCheckSize(data, size)</pre>
+<p>Macro. Returns 1 if <code class="PARAMETER">data</code>
+ is valid and <code class="PARAMETER">data</code>
+'s object has at least <code class="PARAMETER">size</code>
+ bytes.</p>
+<div class="REFSECT3">
+<a name="AEN9636"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9638"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>size</p></td>
+<td><p>the expected size.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATAIDLISTGETKLASS"></a><h3>xmlSecKeyDataIdListGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecPtrListId</font> xmlSecKeyDataIdListGetKlass (void);</pre>
-<p>The key data id list klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN7943"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key data id list klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECKEYDATAIDUNKNOWN"></a><h3>xmlSecKeyDataIdUnknown</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataIdUnknown ((xmlSecKeyDataId)NULL)</pre>
+<p>The "unknown" id.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATAIDLISTFIND"></a><h3>xmlSecKeyDataIdListFind ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataIdListFind (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>xmlSecKeyDataId</font> dataId);</pre>
-<p>Lookups <code class="PARAMETER">dataId</code> in <code class="PARAMETER">list</code>.</p>
+<a name="XMLSECKEYDATAINITMETHOD"></a><h3>xmlSecKeyDataInitMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyDataInitMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Key data specific initialization method.</p>
+<div class="REFSECT3">
+<a name="AEN9672"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9674"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9683"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATADUPLICATEMETHOD"></a><h3>xmlSecKeyDataDuplicateMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyDataDuplicateMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> dst</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> src</code>);</pre>
+<p>Key data specific duplication (copy) method.</p>
+<div class="REFSECT3">
+<a name="AEN9702"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN9704"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7961"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data ids list.</p></td>
+<td><p>dst</p></td>
+<td><p>the pointer to destination key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7966"><span style="white-space: nowrap"><code class="PARAMETER">dataId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key data klass.</p></td>
+<td><p>src</p></td>
+<td><p>the poiniter to source key data.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7971"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 1 if <code class="PARAMETER">dataId</code> is found in the <code class="PARAMETER">list</code>, 0 if not and a negative
-value if an error occurs.</p></td>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9719"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAFINALIZEMETHOD"></a><h3>xmlSecKeyDataFinalizeMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyDataFinalizeMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Key data specific finalization method. All the objects and resources allocated
+by the key data object must be freed inside this method.</p>
+<div class="REFSECT3">
+<a name="AEN9735"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9737"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAXMLREADMETHOD"></a><h3>xmlSecKeyDataXmlReadMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyDataXmlReadMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> id</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Key data specific method for reading XML node.</p>
+<div class="REFSECT3">
+<a name="AEN9768"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9770"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>id</p></td>
+<td><p>the data id.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>key</p></td>
+<td><p>the key.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to data's value XML node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>keyInfoCtx</p></td>
+<td><p>the <dsig:KeyInfo/> node processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9797"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATAIDLISTFINDBYNODE"></a><h3>xmlSecKeyDataIdListFindByNode ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataIdListFindByNode (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- const <font>xmlChar</font> *nodeName,
- const <font>xmlChar</font> *nodeNs,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a> usage);</pre>
-<p>Lookups data klass in the list with given <code class="PARAMETER">nodeName</code>, <code class="PARAMETER">nodeNs</code> and
-<code class="PARAMETER">usage</code> in the <code class="PARAMETER">list</code>.</p>
+<a name="XMLSECKEYDATAXMLWRITEMETHOD"></a><h3>xmlSecKeyDataXmlWriteMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyDataXmlWriteMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> id</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Key data specific method for writing XML node.</p>
+<div class="REFSECT3">
+<a name="AEN9822"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9824"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>id</p></td>
+<td><p>the data id.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>key</p></td>
+<td><p>the key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to data's value XML node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>keyInfoCtx</p></td>
+<td><p>the <dsig:KeyInfo> node processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9851"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINREADMETHOD"></a><h3>xmlSecKeyDataBinReadMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyDataBinReadMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> id</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Key data specific method for reading binary buffer.</p>
+<div class="REFSECT3">
+<a name="AEN9879"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN9881"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN7995"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data ids list.</p></td>
+<td><p>id</p></td>
+<td><p>the data id.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8000"><span style="white-space: nowrap"><code class="PARAMETER">nodeName</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key data klass XML node name.</p></td>
+<td><p>key</p></td>
+<td><p>the key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8005"><span style="white-space: nowrap"><code class="PARAMETER">nodeNs</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key data klass XML node namespace.</p></td>
+<td><p>buf</p></td>
+<td><p>the input buffer.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8010"><span style="white-space: nowrap"><code class="PARAMETER">usage</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key data usage.</p></td>
+<td><p>bufSize</p></td>
+<td><p>the buffer size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8015"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> key data klass is found and NULL otherwise.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the <dsig:KeyInfo/> node processing context.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9914"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATAIDLISTFINDBYHREF"></a><h3>xmlSecKeyDataIdListFindByHref ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataIdListFindByHref (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- const <font>xmlChar</font> *href,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a> usage);</pre>
-<p>Lookups data klass in the list with given <code class="PARAMETER">href</code> and <code class="PARAMETER">usage</code> in <code class="PARAMETER">list</code>.</p>
+<a name="XMLSECKEYDATABINWRITEMETHOD"></a><h3>xmlSecKeyDataBinWriteMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyDataBinWriteMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> id</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> **buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> *bufSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Key data specific method for reading binary buffer.</p>
+<div class="REFSECT3">
+<a name="AEN9942"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN9944"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>id</p></td>
+<td><p>the data id.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>key</p></td>
+<td><p>the key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buf</p></td>
+<td><p>the output buffer.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the buffer size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>keyInfoCtx</p></td>
+<td><p>the <dsig:KeyInfo/> node processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN9977"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAGENERATEMETHOD"></a><h3>xmlSecKeyDataGenerateMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyDataGenerateMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> sizeBits</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Key data specific method for generating new key data.</p>
+<div class="REFSECT3">
+<a name="AEN9999"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN10001"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to key data.</p></td>
+<td> </td>
+</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8035"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data ids list.</p></td>
+<td><p>sizeBits</p></td>
+<td><p>the key data specific size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8040"><span style="white-space: nowrap"><code class="PARAMETER">href</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key data klass href.</p></td>
+<td><p>type</p></td>
+<td><p>the required key type (session/permanent, etc.)</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10022"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAGETTYPEMETHOD"></a><h3>xmlSecKeyDataGetTypeMethod ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="RETURNVALUE">xmlSecKeyDataType</span></a>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyDataGetTypeMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Key data specific method to get the key type.</p>
+<div class="REFSECT3">
+<a name="AEN10038"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10040"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10049"></a><h4>Returns</h4>
+<p> the key type.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAGETSIZEMETHOD"></a><h3>xmlSecKeyDataGetSizeMethod ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyDataGetSizeMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Key data specific method to get the key size.</p>
+<div class="REFSECT3">
+<a name="AEN10065"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10067"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10076"></a><h4>Returns</h4>
+<p> the key size in bits.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAGETIDENTIFIERMETHOD"></a><h3>xmlSecKeyDataGetIdentifierMethod ()</h3>
+<pre class="PROGRAMLISTING">const <font><span class="RETURNVALUE">xmlChar</span></font> *
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyDataGetIdentifierMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Key data specific method to get the key data identifier string (for example,
+X509 data identifier is the subject of the verified cert).</p>
+<div class="REFSECT3">
+<a name="AEN10092"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10094"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10103"></a><h4>Returns</h4>
+<p> the identifier string or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATADEBUGDUMPMETHOD"></a><h3>xmlSecKeyDataDebugDumpMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyDataDebugDumpMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Key data specific method for printing debug info.</p>
+<div class="REFSECT3">
+<a name="AEN10122"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10124"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8045"><span style="white-space: nowrap"><code class="PARAMETER">usage</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key data usage.</p></td>
+<td><p>data</p></td>
+<td><p>the data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8050"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> key data klass is found and NULL otherwise.</p></td>
+<td><p>output</p></td>
+<td><p>the FILE to print debug info (should be open for writing).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAKLASSGETNAME"></a><h3>xmlSecKeyDataKlassGetName()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataKlassGetName(klass)</pre>
+<p>Macro. Returns data klass name.</p>
+<div class="REFSECT3">
+<a name="AEN10145"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10147"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>klass</p></td>
+<td><p>the data klass.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATALISTGETKLASS"></a><h3>xmlSecKeyDataListGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecPtrListId</span></font>
+xmlSecKeyDataListGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The key data list klass.</p>
+<div class="REFSECT3">
+<a name="AEN10166"></a><h4>Returns</h4>
+<p> pointer to the key data list klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAIDLISTGETKLASS"></a><h3>xmlSecKeyDataIdListGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecPtrListId</span></font>
+xmlSecKeyDataIdListGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The key data id list klass.</p>
+<div class="REFSECT3">
+<a name="AEN10179"></a><h4>Returns</h4>
+<p> pointer to the key data id list klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAIDLISTFIND"></a><h3>xmlSecKeyDataIdListFind ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataIdListFind (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> dataId</code>);</pre>
+<p>Lookups <code class="PARAMETER">dataId</code>
+ in <code class="PARAMETER">list</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN10198"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10200"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>list</p></td>
+<td><p>the pointer to key data ids list.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataId</p></td>
+<td><p>the key data klass.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10215"></a><h4>Returns</h4>
+<p> 1 if <code class="PARAMETER">dataId</code>
+is found in the <code class="PARAMETER">list</code>
+, 0 if not and a negative
+value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAIDLISTFINDBYNODE"></a><h3>xmlSecKeyDataIdListFindByNode ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataIdListFindByNode (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *nodeName</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *nodeNs</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE"><span class="TYPE">xmlSecKeyDataUsage</span></a> usage</code>);</pre>
+<p>Lookups data klass in the list with given <code class="PARAMETER">nodeName</code>
+, <code class="PARAMETER">nodeNs</code>
+ and
+<code class="PARAMETER">usage</code>
+ in the <code class="PARAMETER">list</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN10244"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10246"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>list</p></td>
+<td><p>the pointer to key data ids list.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>nodeName</p></td>
+<td><p>the desired key data klass XML node name.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>nodeNs</p></td>
+<td><p>the desired key data klass XML node namespace.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>usage</p></td>
+<td><p>the desired key data usage.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10273"></a><h4>Returns</h4>
+<p> key data klass is found and NULL otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAIDLISTFINDBYHREF"></a><h3>xmlSecKeyDataIdListFindByHref ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataIdListFindByHref (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *href</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE"><span class="TYPE">xmlSecKeyDataUsage</span></a> usage</code>);</pre>
+<p>Lookups data klass in the list with given <code class="PARAMETER">href</code>
+ and <code class="PARAMETER">usage</code>
+ in <code class="PARAMETER">list</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN10296"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10298"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>list</p></td>
+<td><p>the pointer to key data ids list.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>href</p></td>
+<td><p>the desired key data klass href.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>usage</p></td>
+<td><p>the desired key data usage.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10319"></a><h4>Returns</h4>
+<p> key data klass is found and NULL otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYDATAIDLISTFINDBYNAME"></a><h3>xmlSecKeyDataIdListFindByName ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecKeyDataIdListFindByName (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- const <font>xmlChar</font> *name,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE">xmlSecKeyDataUsage</a> usage);</pre>
-<p>Lookups data klass in the list with given <code class="PARAMETER">name</code> and <code class="PARAMETER">usage</code> in <code class="PARAMETER">list</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecKeyDataIdListFindByName (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE"><span class="TYPE">xmlSecKeyDataUsage</span></a> usage</code>);</pre>
+<p>Lookups data klass in the list with given <code class="PARAMETER">name</code>
+ and <code class="PARAMETER">usage</code>
+ in <code class="PARAMETER">list</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN10342"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10344"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>list</p></td>
+<td><p>the pointer to key data ids list.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>name</p></td>
+<td><p>the desired key data klass name.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>usage</p></td>
+<td><p>the desired key data usage.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10365"></a><h4>Returns</h4>
+<p> key data klass is found and NULL otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAIDLISTDEBUGDUMP"></a><h3>xmlSecKeyDataIdListDebugDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyDataIdListDebugDump (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints binary key data debug information to <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN10383"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10385"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>list</p></td>
+<td><p>the pointer to key data ids list.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAIDLISTDEBUGXMLDUMP"></a><h3>xmlSecKeyDataIdListDebugXmlDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyDataIdListDebugXmlDump (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints binary key data debug information to <code class="PARAMETER">output</code>
+ in XML format.</p>
+<div class="REFSECT3">
+<a name="AEN10415"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10417"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>list</p></td>
+<td><p>the pointer to key data ids list.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINARYVALUEINITIALIZE"></a><h3>xmlSecKeyDataBinaryValueInitialize ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataBinaryValueInitialize (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Initializes key data.</p>
+<div class="REFSECT3">
+<a name="AEN10443"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10445"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to binary key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10454"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINARYVALUEDUPLICATE"></a><h3>xmlSecKeyDataBinaryValueDuplicate ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataBinaryValueDuplicate (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> dst</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> src</code>);</pre>
+<p>Copies binary key data from <code class="PARAMETER">src</code>
+ to <code class="PARAMETER">dst</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN10473"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10475"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>dst</p></td>
+<td><p>the pointer to destination binary key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>src</p></td>
+<td><p>the pointer to source binary key data.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10490"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINARYVALUEFINALIZE"></a><h3>xmlSecKeyDataBinaryValueFinalize ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyDataBinaryValueFinalize (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Cleans up binary key data.</p>
+<div class="REFSECT3">
+<a name="AEN10504"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10506"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to binary key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINARYVALUEXMLREAD"></a><h3>xmlSecKeyDataBinaryValueXmlRead ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataBinaryValueXmlRead (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> id</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Reads binary key data from <code class="PARAMETER">node</code>
+ to the key by base64 decoding the <code class="PARAMETER">node</code>
+ content.</p>
+<div class="REFSECT3">
+<a name="AEN10537"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN10539"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>id</p></td>
+<td><p>the data klass.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to destination key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
+</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8070"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data ids list.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10566"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINARYVALUEXMLWRITE"></a><h3>xmlSecKeyDataBinaryValueXmlWrite ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataBinaryValueXmlWrite (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> id</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Base64 encodes binary key data of klass <code class="PARAMETER">id</code>
+ from the <code class="PARAMETER">key</code>
+ and
+sets to the <code class="PARAMETER">node</code>
+ content.</p>
+<div class="REFSECT3">
+<a name="AEN10592"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10594"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>id</p></td>
+<td><p>the data klass.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to source key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10621"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINARYVALUEBINREAD"></a><h3>xmlSecKeyDataBinaryValueBinRead ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataBinaryValueBinRead (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> id</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Reads binary key data of the klass <code class="PARAMETER">id</code>
+ from <code class="PARAMETER">buf</code>
+ to the <code class="PARAMETER">key</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN10650"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10652"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8075"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key data klass name.</p></td>
+<td><p>id</p></td>
+<td><p>the data klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8080"><span style="white-space: nowrap"><code class="PARAMETER">usage</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key data usage.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to destination key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8085"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> key data klass is found and NULL otherwise.</p></td>
+<td><p>buf</p></td>
+<td><p>the source binary buffer.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the source binary buffer size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10685"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINARYVALUEBINWRITE"></a><h3>xmlSecKeyDataBinaryValueBinWrite ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataBinaryValueBinWrite (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataId</span></font> id</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> **buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> *bufSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Writes binary key data of klass <code class="PARAMETER">id</code>
+ from the <code class="PARAMETER">key</code>
+ to <code class="PARAMETER">buf</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN10714"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10716"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>id</p></td>
+<td><p>the data klass.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to source key.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buf</p></td>
+<td><p>the destination binary buffer.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the destination binary buffer size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10749"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINARYVALUEDEBUGDUMP"></a><h3>xmlSecKeyDataBinaryValueDebugDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyDataBinaryValueDebugDump (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints binary key data debug information to <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN10767"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10769"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to binary key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINARYVALUEDEBUGXMLDUMP"></a><h3>xmlSecKeyDataBinaryValueDebugXmlDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyDataBinaryValueDebugXmlDump (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints binary key data debug information to <code class="PARAMETER">output</code>
+ in XML format.</p>
+<div class="REFSECT3">
+<a name="AEN10799"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10801"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to binary key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINARYVALUEGETSIZE"></a><h3>xmlSecKeyDataBinaryValueGetSize ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a>
+xmlSecKeyDataBinaryValueGetSize (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the binary key data size.</p>
+<div class="REFSECT3">
+<a name="AEN10827"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10829"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to binary key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10838"></a><h4>Returns</h4>
+<p> binary key data size in bits.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINARYVALUEGETBUFFER"></a><h3>xmlSecKeyDataBinaryValueGetBuffer ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="RETURNVALUE">xmlSecBufferPtr</span></a>
+xmlSecKeyDataBinaryValueGetBuffer (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the binary key data buffer.</p>
+<div class="REFSECT3">
+<a name="AEN10852"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10854"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to binary key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10863"></a><h4>Returns</h4>
+<p> pointer to binary key data buffer.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATABINARYVALUESETBUFFER"></a><h3>xmlSecKeyDataBinaryValueSetBuffer ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeyDataBinaryValueSetBuffer (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
+<p>Sets the value of <code class="PARAMETER">data</code>
+ to <code class="PARAMETER">buf</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN10885"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10887"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to binary key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buf</p></td>
+<td><p>the pointer to binary buffer.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the binary buffer size.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10908"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATASTORECREATE"></a><h3>xmlSecKeyDataStoreCreate ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="RETURNVALUE">xmlSecKeyDataStorePtr</span></a>
+xmlSecKeyDataStoreCreate (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataStoreId</span></font> id</code>);</pre>
+<p>Creates new key data store of the specified klass <code class="PARAMETER">id</code>
+. Caller is responsible
+for freeing returned object with <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREDESTROY"><span class="TYPE">xmlSecKeyDataStoreDestroy</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN10925"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10927"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>id</p></td>
+<td><p>the store id.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN10936"></a><h4>Returns</h4>
+<p> the pointer to newly allocated key data store structure
+or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATASTOREDESTROY"></a><h3>xmlSecKeyDataStoreDestroy ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyDataStoreDestroy (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>);</pre>
+<p>Destroys the key data store created with <a href="xmlsec-keysdata.html#XMLSECKEYDATASTORECREATE"><span class="TYPE">xmlSecKeyDataStoreCreate</span></a>
+function.</p>
+<div class="REFSECT3">
+<a name="AEN10952"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10954"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>store</p></td>
+<td><p>the pointer to the key data store..</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATASTOREGETNAME"></a><h3>xmlSecKeyDataStoreGetName()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreGetName(store)</pre>
+<p>Macro. Returns key data store name.</p>
+<div class="REFSECT3">
+<a name="AEN10969"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10971"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>store</p></td>
+<td><p>the pointer to store.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATASTOREISVALID"></a><h3>xmlSecKeyDataStoreIsValid()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreIsValid(store)</pre>
+<p>Macro. Returns 1 if <code class="PARAMETER">store</code>
+ is not NULL and <code class="PARAMETER">store->id</code>
+ is not NULL
+or 0 otherwise.</p>
+<div class="REFSECT3">
+<a name="AEN10988"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN10990"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>store</p></td>
+<td><p>the pointer to store.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATASTORECHECKID"></a><h3>xmlSecKeyDataStoreCheckId()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreCheckId(store, storeId)</pre>
+<p>Macro. Returns 1 if <code class="PARAMETER">store</code>
+ is valid and <code class="PARAMETER">store</code>
+'s id is equal to <code class="PARAMETER">storeId</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN11008"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN11010"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>store</p></td>
+<td><p>the pointer to store.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>storeId</p></td>
+<td><p>the store Id.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATASTORECHECKSIZE"></a><h3>xmlSecKeyDataStoreCheckSize()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreCheckSize(store, size)</pre>
+<p>Macro. Returns 1 if <code class="PARAMETER">data</code>
+ is valid and <code class="PARAMETER">stores</code>
+'s object has at least <code class="PARAMETER">size</code>
+ bytes.</p>
+<div class="REFSECT3">
+<a name="AEN11034"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN11036"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>store</p></td>
+<td><p>the pointer to store.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>size</p></td>
+<td><p>the expected size.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATASTOREINITIALIZEMETHOD"></a><h3>xmlSecKeyDataStoreInitializeMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyDataStoreInitializeMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>);</pre>
+<p>Key data store specific initialization method.</p>
+<div class="REFSECT3">
+<a name="AEN11064"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN11066"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>store</p></td>
+<td><p>the data store.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN11075"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATASTOREFINALIZEMETHOD"></a><h3>xmlSecKeyDataStoreFinalizeMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyDataStoreFinalizeMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>);</pre>
+<p>Key data store specific finalization (destroy) method.</p>
+<div class="REFSECT3">
+<a name="AEN11091"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN11093"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>store</p></td>
+<td><p>the data store.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATASTOREKLASSGETNAME"></a><h3>xmlSecKeyDataStoreKlassGetName()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreKlassGetName(klass)</pre>
+<p>Macro. Returns store klass name.</p>
+<div class="REFSECT3">
+<a name="AEN11108"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN11110"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>klass</p></td>
+<td><p>the pointer to store klass.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATASTOREPTRLISTGETKLASS"></a><h3>xmlSecKeyDataStorePtrListGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecPtrListId</span></font>
+xmlSecKeyDataStorePtrListGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Key data stores list.</p>
+<div class="REFSECT3">
+<a name="AEN11129"></a><h4>Returns</h4>
+<p> key data stores list klass.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-KEYSDATA.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAUSAGE"></a><h3>xmlSecKeyDataUsage</h3>
+<pre class="PROGRAMLISTING">typedef unsigned int xmlSecKeyDataUsage;</pre>
+<p>The bits mask that determines possible keys data usage.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAUSAGEUNKNOWN"></a><h3>xmlSecKeyDataUsageUnknown</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageUnknown 0x00000</pre>
+<p>The key data usage is unknown.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAUSAGEKEYINFONODEREAD"></a><h3>xmlSecKeyDataUsageKeyInfoNodeRead</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyInfoNodeRead 0x00001</pre>
+<p>The key data could be read from a <dsig:KeyInfo/> child.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAUSAGEKEYINFONODEWRITE"></a><h3>xmlSecKeyDataUsageKeyInfoNodeWrite</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyInfoNodeWrite 0x00002</pre>
+<p>The key data could be written to a <dsig:KeyInfo /> child.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAUSAGEKEYVALUENODEREAD"></a><h3>xmlSecKeyDataUsageKeyValueNodeRead</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyValueNodeRead 0x00004</pre>
+<p>The key data could be read from a <dsig:KeyValue /> child.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAUSAGEKEYVALUENODEWRITE"></a><h3>xmlSecKeyDataUsageKeyValueNodeWrite</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyValueNodeWrite 0x00008</pre>
+<p>The key data could be written to a <dsig:KeyValue /> child.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAUSAGERETRIEVALMETHODNODEXML"></a><h3>xmlSecKeyDataUsageRetrievalMethodNodeXml</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageRetrievalMethodNodeXml 0x00010</pre>
+<p>The key data could be retrieved using <dsig:RetrievalMethod /> node
+in XML format.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAUSAGERETRIEVALMETHODNODEBIN"></a><h3>xmlSecKeyDataUsageRetrievalMethodNodeBin</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageRetrievalMethodNodeBin 0x00020</pre>
+<p>The key data could be retrieved using <dsig:RetrievalMethod /> node
+in binary format.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAUSAGEANY"></a><h3>xmlSecKeyDataUsageAny</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageAny 0xFFFFF</pre>
+<p>Any key data usage.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAUSAGEKEYINFONODE"></a><h3>xmlSecKeyDataUsageKeyInfoNode</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyInfoNode</pre>
+<p>The key data could be read and written from/to a <dsig:KeyInfo /> child.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAUSAGEKEYVALUENODE"></a><h3>xmlSecKeyDataUsageKeyValueNode</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageKeyValueNode</pre>
+<p>The key data could be read and written from/to a <dsig:KeyValue /> child.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATAUSAGERETRIEVALMETHODNODE"></a><h3>xmlSecKeyDataUsageRetrievalMethodNode</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataUsageRetrievalMethodNode</pre>
+<p>The key data could be retrieved using <dsig:RetrievalMethod /> node
+in any format.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATATYPE"></a><h3>xmlSecKeyDataType</h3>
+<pre class="PROGRAMLISTING">typedef unsigned int xmlSecKeyDataType;</pre>
+<p>The key data type (public/private, session/permanet, etc.).</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATATYPEUNKNOWN"></a><h3>xmlSecKeyDataTypeUnknown</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeUnknown 0x0000</pre>
+<p>The key data type is unknown (same as <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPENONE"><span class="TYPE">xmlSecKeyDataTypeNone</span></a>).</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATATYPENONE"></a><h3>xmlSecKeyDataTypeNone</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeNone xmlSecKeyDataTypeUnknown</pre>
+<p>The key data type is unknown (same as <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPEUNKNOWN"><span class="TYPE">xmlSecKeyDataTypeUnknown</span></a>).</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATATYPEPUBLIC"></a><h3>xmlSecKeyDataTypePublic</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypePublic 0x0001</pre>
+<p>The key data contain a public key.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATATYPEPRIVATE"></a><h3>xmlSecKeyDataTypePrivate</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypePrivate 0x0002</pre>
+<p>The key data contain a private key.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATATYPESYMMETRIC"></a><h3>xmlSecKeyDataTypeSymmetric</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeSymmetric 0x0004</pre>
+<p>The key data contain a symmetric key.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATATYPESESSION"></a><h3>xmlSecKeyDataTypeSession</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeSession 0x0008</pre>
+<p>The key data contain session key (one time key, not stored in keys manager).</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATATYPEPERMANENT"></a><h3>xmlSecKeyDataTypePermanent</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypePermanent 0x0010</pre>
+<p>The key data contain permanent key (stored in keys manager).</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATATYPETRUSTED"></a><h3>xmlSecKeyDataTypeTrusted</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeTrusted 0x0100</pre>
+<p>The key data is trusted.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECKEYDATATYPEANY"></a><h3>xmlSecKeyDataTypeAny</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataTypeAny 0xFFFF</pre>
+<p>Any key data.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATAIDLISTDEBUGDUMP"></a><h3>xmlSecKeyDataIdListDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataIdListDebugDump (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>FILE</font> *output);</pre>
-<p>Prints binary key data debug information to <code class="PARAMETER">output</code>.</p>
-<p></p>
+<a name="XMLSECKEYDATAFORMAT"></a><h3>enum xmlSecKeyDataFormat</h3>
+<p>The key data format (binary, der, pem, etc.).</p>
+<div class="REFSECT3">
+<a name="AEN11275"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN11277"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8102"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data ids list.</p></td>
+<td><p>xmlSecKeyDataFormatUnknown</p></td>
+<td><p>the key data format is unknown.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8107"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p>xmlSecKeyDataFormatBinary</p></td>
+<td><p>the binary key data.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATAIDLISTDEBUGXMLDUMP"></a><h3>xmlSecKeyDataIdListDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataIdListDebugXmlDump (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>FILE</font> *output);</pre>
-<p>Prints binary key data debug information to <code class="PARAMETER">output</code> in XML format.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8124"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key data ids list.</p></td>
+<td><p>xmlSecKeyDataFormatPem</p></td>
+<td><p>the PEM key data (cert or public/private key).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8129"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p>xmlSecKeyDataFormatDer</p></td>
+<td><p>the DER key data (cert or public/private key).</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATABINARYSIZE"></a><h3>xmlSecKeyDataBinarySize</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataBinarySize</pre>
-<p>The binary key data object size.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATABINARYVALUEINITIALIZE"></a><h3>xmlSecKeyDataBinaryValueInitialize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinaryValueInitialize (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Initializes key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8151"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to binary key data.</p></td>
+<td><p>xmlSecKeyDataFormatPkcs8Pem</p></td>
+<td><p>the PKCS8 PEM private key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8156"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>xmlSecKeyDataFormatPkcs8Der</p></td>
+<td><p>the PKCS8 DER private key.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATABINARYVALUEDUPLICATE"></a><h3>xmlSecKeyDataBinaryValueDuplicate ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinaryValueDuplicate (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> dst,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> src);</pre>
-<p>Copies binary key data from <code class="PARAMETER">src</code> to <code class="PARAMETER">dst</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8174"><span style="white-space: nowrap"><code class="PARAMETER">dst</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to destination binary key data.</p></td>
+<td><p>xmlSecKeyDataFormatPkcs12</p></td>
+<td><p>the PKCS12 format (bag of keys and certs)</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8179"><span style="white-space: nowrap"><code class="PARAMETER">src</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to source binary key data.</p></td>
+<td><p>xmlSecKeyDataFormatCertPem</p></td>
+<td><p>the PEM cert.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8184"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>xmlSecKeyDataFormatCertDer</p></td>
+<td><p>the DER cert.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATABINARYVALUEFINALIZE"></a><h3>xmlSecKeyDataBinaryValueFinalize ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataBinaryValueFinalize (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Cleans up binary key data.</p>
-<p></p>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN8199"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to binary key data.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATABINARYVALUEXMLREAD"></a><h3>xmlSecKeyDataBinaryValueXmlRead ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinaryValueXmlRead (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Reads binary key data from <code class="PARAMETER">node</code> to the key by base64 decoding the <code class="PARAMETER">node</code> content.</p>
-<p></p>
+<a name="XMLSECKEYDATA"></a><h3>struct xmlSecKeyData</h3>
+<pre class="PROGRAMLISTING">struct xmlSecKeyData {
+ xmlSecKeyDataId id;
+ void* reserved0;
+ void* reserved1;
+};</pre>
+<p>The key data: key value (crypto material), x509 data, pgp data, etc.</p>
+<div class="REFSECT3">
+<a name="AEN11340"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN11342"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8219"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
+<td><p><font><span class="TYPE">xmlSecKeyDataId</span></font> <code class="STRUCTFIELD">id</code>;</p></td>
+<td><p>the data id (<font><span class="TYPE">xmlSecKeyDataId</span></font>).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8224"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to destination key.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved0</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8229"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8234"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8240"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATABINARYVALUEXMLWRITE"></a><h3>xmlSecKeyDataBinaryValueXmlWrite ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinaryValueXmlWrite (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Base64 encodes binary key data of klass <code class="PARAMETER">id</code> from the <code class="PARAMETER">key</code> and
-sets to the <code class="PARAMETER">node</code> content.</p>
-<p></p>
+<a name="XMLSECKEYDATAKLASS"></a><h3>struct xmlSecKeyDataKlass</h3>
+<pre class="PROGRAMLISTING">struct xmlSecKeyDataKlass {
+ xmlSecSize klassSize;
+ xmlSecSize objSize;
+
+ /* data */
+ const xmlChar* name;
+ xmlSecKeyDataUsage usage;
+ const xmlChar* href;
+ const xmlChar* dataNodeName;
+ const xmlChar* dataNodeNs;
+
+ /* constructors/destructor */
+ xmlSecKeyDataInitMethod initialize;
+ xmlSecKeyDataDuplicateMethod duplicate;
+ xmlSecKeyDataFinalizeMethod finalize;
+ xmlSecKeyDataGenerateMethod generate;
+
+ /* get info */
+ xmlSecKeyDataGetTypeMethod getType;
+ xmlSecKeyDataGetSizeMethod getSize;
+ xmlSecKeyDataGetIdentifierMethod getIdentifier;
+
+ /* read/write */
+ xmlSecKeyDataXmlReadMethod xmlRead;
+ xmlSecKeyDataXmlWriteMethod xmlWrite;
+ xmlSecKeyDataBinReadMethod binRead;
+ xmlSecKeyDataBinWriteMethod binWrite;
+
+ /* debug */
+ xmlSecKeyDataDebugDumpMethod debugDump;
+ xmlSecKeyDataDebugDumpMethod debugXmlDump;
+
+ /* for the future */
+ void* reserved0;
+ void* reserved1;
+};</pre>
+<p>The data id (klass).</p>
+<div class="REFSECT3">
+<a name="AEN11380"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN11382"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8261"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
+<td><p><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> <code class="STRUCTFIELD">klassSize</code>;</p></td>
+<td><p>the klass size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8266"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to source key.</p></td>
+<td><p><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> <code class="STRUCTFIELD">objSize</code>;</p></td>
+<td><p>the object size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8271"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
+<td><p>const <font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">name</code>;</p></td>
+<td><p>the object name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8276"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATAUSAGE"><span class="TYPE">xmlSecKeyDataUsage</span></a> <code class="STRUCTFIELD">usage</code>;</p></td>
+<td><p>the allowed data usage.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8282"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>const <font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">href</code>;</p></td>
+<td><p>the identification string (href).</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATABINARYVALUEBINREAD"></a><h3>xmlSecKeyDataBinaryValueBinRead ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinaryValueBinRead (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Reads binary key data of the klass <code class="PARAMETER">id</code> from <code class="PARAMETER">buf</code> to the <code class="PARAMETER">key</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8304"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
+<td><p>const <font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">dataNodeName</code>;</p></td>
+<td><p>the data's XML node name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8309"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to destination key.</p></td>
+<td><p>const <font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">dataNodeNs</code>;</p></td>
+<td><p>the data's XML node namespace.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8314"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the source binary buffer.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATAINITMETHOD"><span class="TYPE">xmlSecKeyDataInitMethod</span></a> <code class="STRUCTFIELD">initialize</code>;</p></td>
+<td><p>the initialization method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8319"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the source binary buffer size.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATADUPLICATEMETHOD"><span class="TYPE">xmlSecKeyDataDuplicateMethod</span></a> <code class="STRUCTFIELD">duplicate</code>;</p></td>
+<td><p>the duplicate (copy) method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8324"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATAFINALIZEMETHOD"><span class="TYPE">xmlSecKeyDataFinalizeMethod</span></a> <code class="STRUCTFIELD">finalize</code>;</p></td>
+<td><p>the finalization (destroy) method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8330"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATAGENERATEMETHOD"><span class="TYPE">xmlSecKeyDataGenerateMethod</span></a> <code class="STRUCTFIELD">generate</code>;</p></td>
+<td><p>the new data generation method.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATABINARYVALUEBINWRITE"></a><h3>xmlSecKeyDataBinaryValueBinWrite ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinaryValueBinWrite (<font>xmlSecKeyDataId</font> id,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> **buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *bufSize,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Writes binary key data of klass <code class="PARAMETER">id</code> from the <code class="PARAMETER">key</code> to <code class="PARAMETER">buf</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8352"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data klass.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATAGETTYPEMETHOD"><span class="TYPE">xmlSecKeyDataGetTypeMethod</span></a> <code class="STRUCTFIELD">getType</code>;</p></td>
+<td><p>the method to access data's type information.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8357"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to source key.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATAGETSIZEMETHOD"><span class="TYPE">xmlSecKeyDataGetSizeMethod</span></a> <code class="STRUCTFIELD">getSize</code>;</p></td>
+<td><p>the method to access data's size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8362"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination binary buffer.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATAGETIDENTIFIERMETHOD"><span class="TYPE">xmlSecKeyDataGetIdentifierMethod</span></a> <code class="STRUCTFIELD">getIdentifier</code>;</p></td>
+<td><p>the method to access data's string identifier.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8367"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination binary buffer size.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLREADMETHOD"><span class="TYPE">xmlSecKeyDataXmlReadMethod</span></a> <code class="STRUCTFIELD">xmlRead</code>;</p></td>
+<td><p>the method for reading data from XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8372"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATAXMLWRITEMETHOD"><span class="TYPE">xmlSecKeyDataXmlWriteMethod</span></a> <code class="STRUCTFIELD">xmlWrite</code>;</p></td>
+<td><p>the method for writing data to XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8378"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATABINREADMETHOD"><span class="TYPE">xmlSecKeyDataBinReadMethod</span></a> <code class="STRUCTFIELD">binRead</code>;</p></td>
+<td><p>the method for reading data from a binary buffer.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATABINARYVALUEDEBUGDUMP"></a><h3>xmlSecKeyDataBinaryValueDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataBinaryValueDebugDump (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>FILE</font> *output);</pre>
-<p>Prints binary key data debug information to <code class="PARAMETER">output</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8395"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to binary key data.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATABINWRITEMETHOD"><span class="TYPE">xmlSecKeyDataBinWriteMethod</span></a> <code class="STRUCTFIELD">binWrite</code>;</p></td>
+<td><p>the method for writing data to binary buffer.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8400"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGDUMPMETHOD"><span class="TYPE">xmlSecKeyDataDebugDumpMethod</span></a> <code class="STRUCTFIELD">debugDump</code>;</p></td>
+<td><p>the method for printing debug data information.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATABINARYVALUEDEBUGXMLDUMP"></a><h3>xmlSecKeyDataBinaryValueDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataBinaryValueDebugXmlDump
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>FILE</font> *output);</pre>
-<p>Prints binary key data debug information to <code class="PARAMETER">output</code> in XML format.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8417"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to binary key data.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATADEBUGDUMPMETHOD"><span class="TYPE">xmlSecKeyDataDebugDumpMethod</span></a> <code class="STRUCTFIELD">debugXmlDump</code>;</p></td>
+<td><p>the method for printing debug data information in XML format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8422"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved0</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+<tr>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATABINARYVALUEGETSIZE"></a><h3>xmlSecKeyDataBinaryValueGetSize ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecKeyDataBinaryValueGetSize (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the binary key data size.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8437"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to binary key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8442"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> binary key data size in bits.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECKEYDATALISTID"></a><h3>xmlSecKeyDataListId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataListId xmlSecKeyDataListGetKlass()</pre>
+<p>The key data klasses list klass id.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATABINARYVALUEGETBUFFER"></a><h3>xmlSecKeyDataBinaryValueGetBuffer ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecBufferPtr</font> xmlSecKeyDataBinaryValueGetBuffer (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the binary key data buffer.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8457"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to binary key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8462"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to binary key data buffer.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECKEYDATAIDLISTID"></a><h3>xmlSecKeyDataIdListId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataIdListId xmlSecKeyDataIdListGetKlass()</pre>
+<p>The key data list klass id.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYDATABINARYVALUESETBUFFER"></a><h3>xmlSecKeyDataBinaryValueSetBuffer ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeyDataBinaryValueSetBuffer (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
-<p>Sets the value of <code class="PARAMETER">data</code> to <code class="PARAMETER">buf</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8481"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to binary key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8486"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to binary buffer.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8491"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the binary buffer size.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8496"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECKEYDATABINARYSIZE"></a><h3>xmlSecKeyDataBinarySize</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyDataBinarySize</pre>
+<p>The binary key data object size.</p>
</div>
<hr>
<div class="REFSECT2">
@@ -1920,154 +3301,41 @@ sets to the <code class="PARAMETER">node</code> content.</p>
<p>The key data store. Key data store holds common key data specific information
required for key data processing. For example, X509 data store may hold
information about trusted (root) certificates.</p>
+<div class="REFSECT3">
+<a name="AEN11607"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8509"><span style="white-space: nowrap"><font>xmlSecKeyDataStoreId</font> <code class="STRUCTFIELD">id</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store id (<font><span class="TYPE">xmlSecKeyDataStoreId</span></font>).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8517"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
-</tr>
+<a name="AEN11609"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8523"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><p><font><span class="TYPE">xmlSecKeyDataStoreId</span></font> <code class="STRUCTFIELD">id</code>;</p></td>
+<td><p>the store id (<font><span class="TYPE">xmlSecKeyDataStoreId</span></font>).</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATASTORECREATE"></a><h3>xmlSecKeyDataStoreCreate ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> xmlSecKeyDataStoreCreate (<font>xmlSecKeyDataStoreId</font> id);</pre>
-<p>Creates new key data store of the specified klass <code class="PARAMETER">id</code>. Caller is responsible
-for freeing returned object with <a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREDESTROY"><span class="TYPE">xmlSecKeyDataStoreDestroy</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8542"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store id.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved0</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8547"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly allocated key data store structure
-or NULL if an error occurs.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATASTOREDESTROY"></a><h3>xmlSecKeyDataStoreDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyDataStoreDestroy (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store);</pre>
-<p>Destroys the key data store created with <a href="xmlsec-keysdata.html#XMLSECKEYDATASTORECREATE"><span class="TYPE">xmlSecKeyDataStoreCreate</span></a>
-function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN8564"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the key data store..</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATASTOREGETNAME"></a><h3>xmlSecKeyDataStoreGetName()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreGetName(store)</pre>
-<p>Macro. Returns key data store name.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN8577"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to store.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATASTOREISVALID"></a><h3>xmlSecKeyDataStoreIsValid()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreIsValid(store)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">store</code> is not NULL and <code class="PARAMETER">store</code>->id is not NULL
-or 0 otherwise.</p>
-<p></p>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN8592"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to store.</p></td>
-</tr></tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATASTORECHECKID"></a><h3>xmlSecKeyDataStoreCheckId()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreCheckId(store, storeId)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">store</code> is valid and <code class="PARAMETER">store</code>'s id is equal to <code class="PARAMETER">storeId</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8608"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to store.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8613"><span style="white-space: nowrap"><code class="PARAMETER">storeId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store Id.</p></td>
-</tr>
-</tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATASTORECHECKSIZE"></a><h3>xmlSecKeyDataStoreCheckSize()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreCheckSize(store, size)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">data</code> is valid and <code class="PARAMETER">stores</code>'s object has at least <code class="PARAMETER">size</code> bytes.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8629"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to store.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8634"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the expected size.</p></td>
-</tr>
-</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYDATASTOREIDUNKNOWN"></a><h3>xmlSecKeyDataStoreIdUnknown</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreIdUnknown NULL</pre>
<p>The "unknown" id.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATASTOREINITIALIZEMETHOD"></a><h3>xmlSecKeyDataStoreInitializeMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyDataStoreInitializeMethod)
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store);</pre>
-<p>Key data store specific initialization method.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8656"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data store.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8661"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATASTOREFINALIZEMETHOD"></a><h3>xmlSecKeyDataStoreFinalizeMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> (*xmlSecKeyDataStoreFinalizeMethod) (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store);</pre>
-<p>Key data store specific finalization (destroy) method.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN8676"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data store.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
@@ -2088,69 +3356,61 @@ or 0 otherwise.</p>
void* reserved1;
};</pre>
<p>The data store id (klass).</p>
+<div class="REFSECT3">
+<a name="AEN11653"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN11655"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8689"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">klassSize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data store klass size.</p></td>
+<td><p><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> <code class="STRUCTFIELD">klassSize</code>;</p></td>
+<td><p>the data store klass size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8695"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">objSize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data store obj size.</p></td>
+<td><p><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> <code class="STRUCTFIELD">objSize</code>;</p></td>
+<td><p>the data store obj size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8701"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">name</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store's name.</p></td>
+<td><p>const <font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">name</code>;</p></td>
+<td><p>the store's name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8707"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREINITIALIZEMETHOD">xmlSecKeyDataStoreInitializeMethod</a> <code class="STRUCTFIELD">initialize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store's initialization method.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREINITIALIZEMETHOD"><span class="TYPE">xmlSecKeyDataStoreInitializeMethod</span></a> <code class="STRUCTFIELD">initialize</code>;</p></td>
+<td><p>the store's initialization method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8713"><span style="white-space: nowrap"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREFINALIZEMETHOD">xmlSecKeyDataStoreFinalizeMethod</a> <code class="STRUCTFIELD">finalize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store's finalization (destroy) method.</p></td>
+<td><p><a href="xmlsec-keysdata.html#XMLSECKEYDATASTOREFINALIZEMETHOD"><span class="TYPE">xmlSecKeyDataStoreFinalizeMethod</span></a> <code class="STRUCTFIELD">finalize</code>;</p></td>
+<td><p>the store's finalization (destroy) method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8719"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved0</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN8725"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATASTOREKLASSGETNAME"></a><h3>xmlSecKeyDataStoreKlassGetName()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyDataStoreKlassGetName(klass)</pre>
-<p>Macro. Returns store klass name.</p>
-<p></p>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN8739"><span style="white-space: nowrap"><code class="PARAMETER">klass</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to store klass.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYDATASTOREPTRLISTID"></a><h3>xmlSecKeyDataStorePtrListId</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyDataStorePtrListId xmlSecKeyDataStorePtrListGetKlass()</pre>
<p>The data store list id (klass).</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYDATASTOREPTRLISTGETKLASS"></a><h3>xmlSecKeyDataStorePtrListGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecPtrListId</font> xmlSecKeyDataStorePtrListGetKlass (void);</pre>
-<p>Key data stores list.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN8760"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> key data stores list klass.</p></td>
-</tr></tbody></table>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-keysmngr.html b/docs/api/xmlsec-keysmngr.html
index 0d6135a..04a026d 100644
--- a/docs/api/xmlsec-keysmngr.html
+++ b/docs/api/xmlsec-keysmngr.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="keys" href="xmlsec-keys.html">
<link rel="NEXT" title="list" href="xmlsec-list.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,688 +101,1175 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-keys.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-keys.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-list.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-list.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-KEYSMNGR"></a>keysmngr</h1>
<div class="REFNAMEDIV">
-<a name="AEN10160"></a><h2>Name</h2>keysmngr -- Keys manager object support.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-KEYSMNGR.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRCREATE">xmlSecKeysMngrCreate</a> (void);
-<font>void</font> <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRDESTROY">xmlSecKeysMngrDestroy</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);
-<font>xmlSecKeyPtr</font> <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRFINDKEY">xmlSecKeysMngrFindKey</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>xmlChar</font> *name,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-<font>int</font> <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRADOPTKEYSSTORE">xmlSecKeysMngrAdoptKeysStore</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store);
-<font>xmlSecKeyStorePtr</font> <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRGETKEYSSTORE">xmlSecKeysMngrGetKeysStore</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);
-<font>int</font> <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRADOPTDATASTORE">xmlSecKeysMngrAdoptDataStore</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store);
-<font>xmlSecKeyDataStorePtr</font> <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRGETDATASTORE">xmlSecKeysMngrGetDataStore</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>xmlSecKeyDataStoreId</font> id);
-<font>xmlSecKeyPtr</font> (<a href="xmlsec-keysmngr.html#XMLSECGETKEYCALLBACK">*xmlSecGetKeyCallback</a>) (<font>xmlNodePtr</font> keyInfoNode,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-struct <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngr</a>;
-<font>xmlSecKeyPtr</font> <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRGETKEY">xmlSecKeysMngrGetKey</a> (<font>xmlNodePtr</font> keyInfoNode,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-struct <a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStore</a>;
-<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> <a href="xmlsec-keysmngr.html#XMLSECKEYSTORECREATE">xmlSecKeyStoreCreate</a> (<font>xmlSecKeyStoreId</font> id);
-<font>void</font> <a href="xmlsec-keysmngr.html#XMLSECKEYSTOREDESTROY">xmlSecKeyStoreDestroy</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store);
-<font>xmlSecKeyPtr</font> <a href="xmlsec-keysmngr.html#XMLSECKEYSTOREFINDKEY">xmlSecKeyStoreFindKey</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>xmlChar</font> *name,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-#define <a href="xmlsec-keysmngr.html#XMLSECKEYSTOREGETNAME">xmlSecKeyStoreGetName</a> (store)
-#define <a href="xmlsec-keysmngr.html#XMLSECKEYSTOREISVALID">xmlSecKeyStoreIsValid</a> (store)
-#define <a href="xmlsec-keysmngr.html#XMLSECKEYSTORECHECKID">xmlSecKeyStoreCheckId</a> (store, storeId)
-#define <a href="xmlsec-keysmngr.html#XMLSECKEYSTORECHECKSIZE">xmlSecKeyStoreCheckSize</a> (store, size)
-#define <a href="xmlsec-keysmngr.html#XMLSECKEYSTOREIDUNKNOWN">xmlSecKeyStoreIdUnknown</a>
-<font>int</font> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTOREINITIALIZEMETHOD">*xmlSecKeyStoreInitializeMethod</a>) (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store);
-<font>void</font> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTOREFINALIZEMETHOD">*xmlSecKeyStoreFinalizeMethod</a>) (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store);
-<font>xmlSecKeyPtr</font> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTOREFINDKEYMETHOD">*xmlSecKeyStoreFindKeyMethod</a>) (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>xmlChar</font> *name,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);
-struct <a href="xmlsec-keysmngr.html#XMLSECKEYSTOREKLASS">xmlSecKeyStoreKlass</a>;
-#define <a href="xmlsec-keysmngr.html#XMLSECKEYSTOREKLASSGETNAME">xmlSecKeyStoreKlassGetName</a> (klass)
-#define <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREID">xmlSecSimpleKeysStoreId</a>
-<font>xmlSecKeyStoreId</font> <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREGETKLASS">xmlSecSimpleKeysStoreGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREADOPTKEY">xmlSecSimpleKeysStoreAdoptKey</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTORELOAD">xmlSecSimpleKeysStoreLoad</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>char</font> *uri,
- <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);
-<font>int</font> <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTORESAVE">xmlSecSimpleKeysStoreSave</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>xmlSecPtrListPtr</font> <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREGETKEYS">xmlSecSimpleKeysStoreGetKeys</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store);</pre>
+<a name="AEN13673"></a><h2>Name</h2>keysmngr -- Keys manager object support.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-KEYSMNGR.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN13678"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="RETURNVALUE">xmlSecKeysMngrPtr</span></a></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRCREATE">xmlSecKeysMngrCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRDESTROY">xmlSecKeysMngrDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRFINDKEY">xmlSecKeysMngrFindKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRADOPTKEYSSTORE">xmlSecKeysMngrAdoptKeysStore</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="RETURNVALUE">xmlSecKeyStorePtr</span></a></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRGETKEYSSTORE">xmlSecKeysMngrGetKeysStore</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRADOPTDATASTORE">xmlSecKeysMngrAdoptDataStore</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="RETURNVALUE">xmlSecKeyDataStorePtr</span></a></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRGETDATASTORE">xmlSecKeysMngrGetDataStore</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysmngr.html#XMLSECGETKEYCALLBACK">*xmlSecGetKeyCallback</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRGETKEY">xmlSecKeysMngrGetKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="RETURNVALUE">xmlSecKeyStorePtr</span></a></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSTORECREATE">xmlSecKeyStoreCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSTOREDESTROY">xmlSecKeyStoreDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSTOREFINDKEY">xmlSecKeyStoreFindKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSTOREGETNAME">xmlSecKeyStoreGetName</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSTOREISVALID">xmlSecKeyStoreIsValid</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSTORECHECKID">xmlSecKeyStoreCheckId</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSTORECHECKSIZE">xmlSecKeyStoreCheckSize</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keysmngr.html#XMLSECKEYSTOREIDUNKNOWN">xmlSecKeyStoreIdUnknown</a></td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysmngr.html#XMLSECKEYSTOREINITIALIZEMETHOD">*xmlSecKeyStoreInitializeMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysmngr.html#XMLSECKEYSTOREFINALIZEMETHOD">*xmlSecKeyStoreFinalizeMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-keysmngr.html#XMLSECKEYSTOREFINDKEYMETHOD">*xmlSecKeyStoreFindKeyMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECKEYSTOREKLASSGETNAME">xmlSecKeyStoreKlassGetName</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyStoreId</span></font></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREGETKLASS">xmlSecSimpleKeysStoreGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREADOPTKEY">xmlSecSimpleKeysStoreAdoptKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTORELOAD">xmlSecSimpleKeysStoreLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTORESAVE">xmlSecSimpleKeysStoreSave</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="RETURNVALUE">xmlSecPtrListPtr</span></a></td>
+<td>
+<a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREGETKEYS">xmlSecSimpleKeysStoreGetKeys</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-KEYSMNGR.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN13860"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>struct</td>
+<td><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngr</a></td>
+</tr>
+<tr>
+<td>struct</td>
+<td><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStore</a></td>
+</tr>
+<tr>
+<td>struct</td>
+<td><a href="xmlsec-keysmngr.html#XMLSECKEYSTOREKLASS">xmlSecKeyStoreKlass</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREID">xmlSecSimpleKeysStoreId</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-KEYSMNGR.DESCRIPTION"></a><h2>Description</h2>
<p>Keys manager object support.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-KEYSMNGR.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-KEYSMNGR.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECKEYSMNGRCREATE"></a><h3>xmlSecKeysMngrCreate ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> xmlSecKeysMngrCreate (void);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="RETURNVALUE">xmlSecKeysMngrPtr</span></a>
+xmlSecKeysMngrCreate (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Creates new keys manager. Caller is responsible for freeing it with
<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRDESTROY"><span class="TYPE">xmlSecKeysMngrDestroy</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN10266"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly allocated keys manager or NULL if
-an error occurs.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN13896"></a><h4>Returns</h4>
+<p> the pointer to newly allocated keys manager or NULL if
+an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSMNGRDESTROY"></a><h3>xmlSecKeysMngrDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeysMngrDestroy (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeysMngrDestroy (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>);</pre>
<p>Destroys keys manager created with <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGRCREATE"><span class="TYPE">xmlSecKeysMngrCreate</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN13912"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN13914"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN10283"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSMNGRFINDKEY"></a><h3>xmlSecKeysMngrFindKey ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyPtr</font> xmlSecKeysMngrFindKey (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>xmlChar</font> *name,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecKeysMngrFindKey (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
<p>Lookups key in the keys manager keys store. The caller is responsible
for destroying the returned key using <a href="xmlsec-keys.html#XMLSECKEYDESTROY"><span class="TYPE">xmlSecKeyDestroy</span></a> method.</p>
+<div class="REFSECT3">
+<a name="AEN13942"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10302"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
+<a name="AEN13944"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10307"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key name.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10312"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
+<td><p>name</p></td>
+<td><p>the desired key name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10318"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to a key or NULL if key is not found or an error occurs.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> node processing context.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN13965"></a><h4>Returns</h4>
+<p> the pointer to a key or NULL if key is not found or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSMNGRADOPTKEYSSTORE"></a><h3>xmlSecKeysMngrAdoptKeysStore ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeysMngrAdoptKeysStore (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store);</pre>
-<p>Adopts keys store in the keys manager <code class="PARAMETER">mngr</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeysMngrAdoptKeysStore (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>);</pre>
+<p>Adopts keys store in the keys manager <code class="PARAMETER">mngr</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN13983"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN13985"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10335"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10340"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys store.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to keys store.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10345"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN14000"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSMNGRGETKEYSSTORE"></a><h3>xmlSecKeysMngrGetKeysStore ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyStorePtr</font> xmlSecKeysMngrGetKeysStore (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="RETURNVALUE">xmlSecKeyStorePtr</span></a>
+xmlSecKeysMngrGetKeysStore (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>);</pre>
<p>Gets the keys store.</p>
+<div class="REFSECT3">
+<a name="AEN14014"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN14016"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10360"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10365"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys store in the keys manager <code class="PARAMETER">mngr</code> or NULL if
-there is no store or an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN14025"></a><h4>Returns</h4>
+<p> the keys store in the keys manager <code class="PARAMETER">mngr</code>
+or NULL if
+there is no store or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSMNGRADOPTDATASTORE"></a><h3>xmlSecKeysMngrAdoptDataStore ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecKeysMngrAdoptDataStore (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecKeysMngrAdoptDataStore (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>);</pre>
<p>Adopts data store in the keys manager.</p>
+<div class="REFSECT3">
+<a name="AEN14043"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN14045"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10382"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10387"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to data store.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to data store.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10392"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN14060"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSMNGRGETDATASTORE"></a><h3>xmlSecKeysMngrGetDataStore ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataStorePtr</font> xmlSecKeysMngrGetDataStore (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>xmlSecKeyDataStoreId</font> id);</pre>
-<p>Lookups the data store of given klass <code class="PARAMETER">id</code> in the keys manager.</p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="RETURNVALUE">xmlSecKeyDataStorePtr</span></a>
+xmlSecKeysMngrGetDataStore (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecKeyDataStoreId</span></font> id</code>);</pre>
+<p>Lookups the data store of given klass <code class="PARAMETER">id</code>
+ in the keys manager.</p>
+<div class="REFSECT3">
+<a name="AEN14078"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10409"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
+<a name="AEN14080"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10414"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired data store klass.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10419"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to data store or NULL if it is not found or an error
-occurs.</p></td>
+<td><p>id</p></td>
+<td><p>the desired data store klass.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN14095"></a><h4>Returns</h4>
+<p> pointer to data store or NULL if it is not found or an error
+occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECGETKEYCALLBACK"></a><h3>xmlSecGetKeyCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyPtr</font> (*xmlSecGetKeyCallback) (<font>xmlNodePtr</font> keyInfoNode,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Reads the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node <code class="PARAMETER">keyInfoNode</code> and extracts the key.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecGetKeyCallback<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> keyInfoNode</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Reads the <dsig:KeyInfo/> node <code class="PARAMETER">keyInfoNode</code>
+ and extracts the key.</p>
+<div class="REFSECT3">
+<a name="AEN14115"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN14117"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10437"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node.</p></td>
+<td><p>keyInfoNode</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10443"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> node processing context.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10449"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key or NULL if the key is not found or
-an error occurs.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYSMNGR"></a><h3>struct xmlSecKeysMngr</h3>
-<pre class="PROGRAMLISTING">struct xmlSecKeysMngr {
- xmlSecKeyStorePtr keysStore;
- xmlSecPtrList storesList;
- xmlSecGetKeyCallback getKey;
-};</pre>
-<p>The keys manager structure.</p>
-<p></p>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10462"><span style="white-space: nowrap"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> <code class="STRUCTFIELD">keysStore</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key store (list of keys known to keys manager).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10468"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrList</a> <code class="STRUCTFIELD">storesList</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list of key data stores known to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10474"><span style="white-space: nowrap"><a href="xmlsec-keysmngr.html#XMLSECGETKEYCALLBACK">xmlSecGetKeyCallback</a> <code class="STRUCTFIELD">getKey</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the callback used to read <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN14132"></a><h4>Returns</h4>
+<p> the pointer to key or NULL if the key is not found or
+an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSMNGRGETKEY"></a><h3>xmlSecKeysMngrGetKey ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyPtr</font> xmlSecKeysMngrGetKey (<font>xmlNodePtr</font> keyInfoNode,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Reads the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node <code class="PARAMETER">keyInfoNode</code> and extracts the key.</p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecKeysMngrGetKey (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> keyInfoNode</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Reads the <dsig:KeyInfo/> node <code class="PARAMETER">keyInfoNode</code>
+ and extracts the key.</p>
+<div class="REFSECT3">
+<a name="AEN14150"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10494"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node.</p></td>
-</tr>
+<a name="AEN14152"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10500"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
+<td><p>keyInfoNode</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10506"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key or NULL if the key is not found or
-an error occurs.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> node processing context.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECKEYSTORE"></a><h3>struct xmlSecKeyStore</h3>
-<pre class="PROGRAMLISTING">struct xmlSecKeyStore {
- xmlSecKeyStoreId id;
-
- /* for the future */
- void* reserved0;
- void* reserved1;
-};</pre>
-<p>The keys store.</p>
-<p></p>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10519"><span style="white-space: nowrap"><font>xmlSecKeyStoreId</font> <code class="STRUCTFIELD">id</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store id (<font><span class="TYPE">xmlSecKeyStoreId</span></font>).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10527"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10533"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN14167"></a><h4>Returns</h4>
+<p> the pointer to key or NULL if the key is not found or
+an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSTORECREATE"></a><h3>xmlSecKeyStoreCreate ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> xmlSecKeyStoreCreate (<font>xmlSecKeyStoreId</font> id);</pre>
-<p>Creates new store of the specified klass <code class="PARAMETER">klass</code>. Caller is responsible
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="RETURNVALUE">xmlSecKeyStorePtr</span></a>
+xmlSecKeyStoreCreate (<code class="PARAMETER"><font><span class="TYPE">xmlSecKeyStoreId</span></font> id</code>);</pre>
+<p>Creates new store of the specified klass <code class="PARAMETER">klass</code>
+. Caller is responsible
for freeing the returned store by calling <a href="xmlsec-keysmngr.html#XMLSECKEYSTOREDESTROY"><span class="TYPE">xmlSecKeyStoreDestroy</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN14184"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN14186"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>id</p></td>
+<td><p>the key store klass.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10552"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key store klass.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10557"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly allocated keys store or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN14195"></a><h4>Returns</h4>
+<p> the pointer to newly allocated keys store or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSTOREDESTROY"></a><h3>xmlSecKeyStoreDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecKeyStoreDestroy (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecKeyStoreDestroy (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>);</pre>
<p>Destroys the store created with <a href="xmlsec-keysmngr.html#XMLSECKEYSTORECREATE"><span class="TYPE">xmlSecKeyStoreCreate</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN14211"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN14213"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>store</p></td>
+<td><p>the pointer to keys store.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN10574"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys store.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSTOREFINDKEY"></a><h3>xmlSecKeyStoreFindKey ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyPtr</font> xmlSecKeyStoreFindKey (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>xmlChar</font> *name,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecKeyStoreFindKey (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
<p>Lookups key in the store. The caller is responsible for destroying
the returned key using <a href="xmlsec-keys.html#XMLSECKEYDESTROY"><span class="TYPE">xmlSecKeyDestroy</span></a> method.</p>
+<div class="REFSECT3">
+<a name="AEN14241"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN14243"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10593"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys store.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to keys store.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10598"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key name.</p></td>
+<td><p>name</p></td>
+<td><p>the desired key name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10603"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> node processing context.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10609"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to a key or NULL if key is not found or an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN14264"></a><h4>Returns</h4>
+<p> the pointer to a key or NULL if key is not found or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSTOREGETNAME"></a><h3>xmlSecKeyStoreGetName()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyStoreGetName(store)</pre>
<p>Macro. Returns key store name.</p>
+<div class="REFSECT3">
+<a name="AEN14273"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN14275"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>store</p></td>
+<td><p>the pointer to store.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN10622"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to store.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSTOREISVALID"></a><h3>xmlSecKeyStoreIsValid()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyStoreIsValid(store)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">store</code> is not NULL and <code class="PARAMETER">store</code>->id is not NULL
+<p>Macro. Returns 1 if <code class="PARAMETER">store</code>
+ is not NULL and <code class="PARAMETER">store->id</code>
+ is not NULL
or 0 otherwise.</p>
+<div class="REFSECT3">
+<a name="AEN14292"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN14294"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>store</p></td>
+<td><p>the pointer to store.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN10637"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to store.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSTORECHECKID"></a><h3>xmlSecKeyStoreCheckId()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyStoreCheckId(store, storeId)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">store</code> is valid and <code class="PARAMETER">store</code>'s id is equal to <code class="PARAMETER">storeId</code>.</p>
+<p>Macro. Returns 1 if <code class="PARAMETER">store</code>
+ is valid and <code class="PARAMETER">store</code>
+'s id is equal to <code class="PARAMETER">storeId</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN14312"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN14314"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10653"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to store.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to store.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10658"><span style="white-space: nowrap"><code class="PARAMETER">storeId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store Id.</p></td>
+<td><p>storeId</p></td>
+<td><p>the store Id.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSTORECHECKSIZE"></a><h3>xmlSecKeyStoreCheckSize()</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyStoreCheckSize(store, size)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">store</code> is valid and <code class="PARAMETER">stores</code>'s object has at least <code class="PARAMETER">size</code> bytes.</p>
+<p>Macro. Returns 1 if <code class="PARAMETER">store</code>
+ is valid and <code class="PARAMETER">stores</code>
+'s object has at least <code class="PARAMETER">size</code>
+ bytes.</p>
+<div class="REFSECT3">
+<a name="AEN14338"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN14340"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10674"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to store.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to store.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10679"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the expected size.</p></td>
+<td><p>size</p></td>
+<td><p>the expected size.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSTOREIDUNKNOWN"></a><h3>xmlSecKeyStoreIdUnknown</h3>
<pre class="PROGRAMLISTING">#define xmlSecKeyStoreIdUnknown ((xmlSecKeyDataStoreId)NULL)</pre>
<p>The "unknown" id.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSTOREINITIALIZEMETHOD"></a><h3>xmlSecKeyStoreInitializeMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecKeyStoreInitializeMethod) (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyStoreInitializeMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>);</pre>
<p>Keys store specific initialization method.</p>
+<div class="REFSECT3">
+<a name="AEN14374"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN14376"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>store</p></td>
+<td><p>the store.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10701"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10706"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN14385"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSTOREFINALIZEMETHOD"></a><h3>xmlSecKeyStoreFinalizeMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> (*xmlSecKeyStoreFinalizeMethod) (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyStoreFinalizeMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>);</pre>
<p>Keys store specific finalization (destroy) method.</p>
+<div class="REFSECT3">
+<a name="AEN14401"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN14403"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>store</p></td>
+<td><p>the store.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN10721"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECKEYSTOREFINDKEYMETHOD"></a><h3>xmlSecKeyStoreFindKeyMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyPtr</font> (*xmlSecKeyStoreFindKeyMethod) (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>xmlChar</font> *name,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecKeyStoreFindKeyMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
<p>Keys store specific find method. The caller is responsible for destroying
the returned key using <a href="xmlsec-keys.html#XMLSECKEYDESTROY"><span class="TYPE">xmlSecKeyDestroy</span></a> method.</p>
+<div class="REFSECT3">
+<a name="AEN14433"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN14435"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10740"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store.</p></td>
+<td><p>store</p></td>
+<td><p>the store.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10745"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired key name.</p></td>
+<td><p>name</p></td>
+<td><p>the desired key name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10750"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key info context.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to key info context.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10755"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to a key or NULL if key is not found or an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN14456"></a><h4>Returns</h4>
+<p> the pointer to a key or NULL if key is not found or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYSTOREKLASS"></a><h3>struct xmlSecKeyStoreKlass</h3>
-<pre class="PROGRAMLISTING">struct xmlSecKeyStoreKlass {
- xmlSecSize klassSize;
- xmlSecSize objSize;
-
- /* data */
- const xmlChar* name;
-
- /* constructors/destructor */
- xmlSecKeyStoreInitializeMethod initialize;
- xmlSecKeyStoreFinalizeMethod finalize;
- xmlSecKeyStoreFindKeyMethod findKey;
-
- /* for the future */
- void* reserved0;
- void* reserved1;
-};</pre>
-<p>The keys store id (klass).</p>
+<a name="XMLSECKEYSTOREKLASSGETNAME"></a><h3>xmlSecKeyStoreKlassGetName()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecKeyStoreKlassGetName(klass)</pre>
+<p>Macro. Returns store klass name.</p>
+<div class="REFSECT3">
+<a name="AEN14465"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN14467"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>klass</p></td>
+<td><p>the pointer to store klass.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECSIMPLEKEYSSTOREGETKLASS"></a><h3>xmlSecSimpleKeysStoreGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyStoreId</span></font>
+xmlSecSimpleKeysStoreGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The simple list based keys store klass.</p>
+<div class="REFSECT3">
+<a name="AEN14486"></a><h4>Returns</h4>
+<p> simple list based keys store klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECSIMPLEKEYSSTOREADOPTKEY"></a><h3>xmlSecSimpleKeysStoreAdoptKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecSimpleKeysStoreAdoptKey (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Adds <code class="PARAMETER">key</code>
+ to the <code class="PARAMETER">store</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN14505"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN14507"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10768"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">klassSize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store klass size.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to simple keys store.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10774"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">objSize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store obj size.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN14522"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECSIMPLEKEYSSTORELOAD"></a><h3>xmlSecSimpleKeysStoreLoad ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecSimpleKeysStoreLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *uri</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> keysMngr</code>);</pre>
+<p>Reads keys from an XML file.</p>
+<div class="REFSECT3">
+<a name="AEN14542"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN14544"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10780"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">name</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store's name.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to simple keys store.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10786"><span style="white-space: nowrap"><a href="xmlsec-keysmngr.html#XMLSECKEYSTOREINITIALIZEMETHOD">xmlSecKeyStoreInitializeMethod</a> <code class="STRUCTFIELD">initialize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store's initialization method.</p></td>
+<td><p>uri</p></td>
+<td><p>the filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10792"><span style="white-space: nowrap"><a href="xmlsec-keysmngr.html#XMLSECKEYSTOREFINALIZEMETHOD">xmlSecKeyStoreFinalizeMethod</a> <code class="STRUCTFIELD">finalize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store's finalization (destroy) method.</p></td>
+<td><p>keysMngr</p></td>
+<td><p>the pointer to associated keys manager.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN14565"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECSIMPLEKEYSSTORESAVE"></a><h3>xmlSecSimpleKeysStoreSave ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecSimpleKeysStoreSave (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Writes keys from <code class="PARAMETER">store</code>
+ to an XML file.</p>
+<div class="REFSECT3">
+<a name="AEN14586"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN14588"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10798"><span style="white-space: nowrap"><a href="xmlsec-keysmngr.html#XMLSECKEYSTOREFINDKEYMETHOD">xmlSecKeyStoreFindKeyMethod</a> <code class="STRUCTFIELD">findKey</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the store's find method.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to simple keys store.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10804"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><p>filename</p></td>
+<td><p>the filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10810"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><p>type</p></td>
+<td><p>the saved keys type (public, private, ...).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN14609"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECKEYSTOREKLASSGETNAME"></a><h3>xmlSecKeyStoreKlassGetName()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecKeyStoreKlassGetName(klass)</pre>
-<p>Macro. Returns store klass name.</p>
+<a name="XMLSECSIMPLEKEYSSTOREGETKEYS"></a><h3>xmlSecSimpleKeysStoreGetKeys ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="RETURNVALUE">xmlSecPtrListPtr</span></a>
+xmlSecSimpleKeysStoreGetKeys (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>);</pre>
+<p>Gets list of keys from simple keys store.</p>
+<div class="REFSECT3">
+<a name="AEN14623"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN14625"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>store</p></td>
+<td><p>the pointer to simple keys store.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN10824"><span style="white-space: nowrap"><code class="PARAMETER">klass</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to store klass.</p></td>
-</tr></tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECSIMPLEKEYSSTOREID"></a><h3>xmlSecSimpleKeysStoreId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecSimpleKeysStoreId xmlSecSimpleKeysStoreGetKlass()</pre>
-<p>A simple keys store klass id.</p>
-<p></p>
</div>
-<hr>
+<div class="REFSECT3">
+<a name="AEN14634"></a><h4>Returns</h4>
+<p> pointer to the list of keys stored in the keys store or NULL
+if an error occurs.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-KEYSMNGR.OTHER_DETAILS"></a><h2>Types and Values</h2>
<div class="REFSECT2">
-<a name="XMLSECSIMPLEKEYSSTOREGETKLASS"></a><h3>xmlSecSimpleKeysStoreGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyStoreId</font> xmlSecSimpleKeysStoreGetKlass (void);</pre>
-<p>The simple list based keys store klass.</p>
+<a name="XMLSECKEYSMNGR"></a><h3>struct xmlSecKeysMngr</h3>
+<pre class="PROGRAMLISTING">struct xmlSecKeysMngr {
+ xmlSecKeyStorePtr keysStore;
+ xmlSecPtrList storesList;
+ xmlSecGetKeyCallback getKey;
+};</pre>
+<p>The keys manager structure.</p>
+<div class="REFSECT3">
+<a name="AEN14645"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN14647"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> <code class="STRUCTFIELD">keysStore</code>;</p></td>
+<td><p>the key store (list of keys known to keys manager).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrList</span></a> <code class="STRUCTFIELD">storesList</code>;</p></td>
+<td><p>the list of key data stores known to keys manager.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-keysmngr.html#XMLSECGETKEYCALLBACK"><span class="TYPE">xmlSecGetKeyCallback</span></a> <code class="STRUCTFIELD">getKey</code>;</p></td>
+<td><p>the callback used to read <dsig:KeyInfo/> node.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN10845"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> simple list based keys store klass.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECSIMPLEKEYSSTOREADOPTKEY"></a><h3>xmlSecSimpleKeysStoreAdoptKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecSimpleKeysStoreAdoptKey (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Adds <code class="PARAMETER">key</code> to the <code class="PARAMETER">store</code>.</p>
-<p></p>
+<a name="XMLSECKEYSTORE"></a><h3>struct xmlSecKeyStore</h3>
+<pre class="PROGRAMLISTING">struct xmlSecKeyStore {
+ xmlSecKeyStoreId id;
+
+ /* for the future */
+ void* reserved0;
+ void* reserved1;
+};</pre>
+<p>The keys store.</p>
+<div class="REFSECT3">
+<a name="AEN14683"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN14685"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10863"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to simple keys store.</p></td>
+<td><p><font><span class="TYPE">xmlSecKeyStoreId</span></font> <code class="STRUCTFIELD">id</code>;</p></td>
+<td><p>the store id (<font><span class="TYPE">xmlSecKeyStoreId</span></font>).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10868"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved0</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10873"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECSIMPLEKEYSSTORELOAD"></a><h3>xmlSecSimpleKeysStoreLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecSimpleKeysStoreLoad (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>char</font> *uri,
- <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);</pre>
-<p>Reads keys from an XML file.</p>
-<p></p>
+<a name="XMLSECKEYSTOREKLASS"></a><h3>struct xmlSecKeyStoreKlass</h3>
+<pre class="PROGRAMLISTING">struct xmlSecKeyStoreKlass {
+ xmlSecSize klassSize;
+ xmlSecSize objSize;
+
+ /* data */
+ const xmlChar* name;
+
+ /* constructors/destructor */
+ xmlSecKeyStoreInitializeMethod initialize;
+ xmlSecKeyStoreFinalizeMethod finalize;
+ xmlSecKeyStoreFindKeyMethod findKey;
+
+ /* for the future */
+ void* reserved0;
+ void* reserved1;
+};</pre>
+<p>The keys store id (klass).</p>
+<div class="REFSECT3">
+<a name="AEN14723"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN14725"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10890"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to simple keys store.</p></td>
+<td><p><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> <code class="STRUCTFIELD">klassSize</code>;</p></td>
+<td><p>the store klass size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10895"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the filename.</p></td>
+<td><p><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> <code class="STRUCTFIELD">objSize</code>;</p></td>
+<td><p>the store obj size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10900"><span style="white-space: nowrap"><code class="PARAMETER">keysMngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to associated keys manager.</p></td>
+<td><p>const <font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">name</code>;</p></td>
+<td><p>the store's name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10905"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p><a href="xmlsec-keysmngr.html#XMLSECKEYSTOREINITIALIZEMETHOD"><span class="TYPE">xmlSecKeyStoreInitializeMethod</span></a> <code class="STRUCTFIELD">initialize</code>;</p></td>
+<td><p>the store's initialization method.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECSIMPLEKEYSSTORESAVE"></a><h3>xmlSecSimpleKeysStoreSave ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecSimpleKeysStoreSave (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Writes keys from <code class="PARAMETER">store</code> to an XML file.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10923"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to simple keys store.</p></td>
+<td><p><a href="xmlsec-keysmngr.html#XMLSECKEYSTOREFINALIZEMETHOD"><span class="TYPE">xmlSecKeyStoreFinalizeMethod</span></a> <code class="STRUCTFIELD">finalize</code>;</p></td>
+<td><p>the store's finalization (destroy) method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10928"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the filename.</p></td>
+<td><p><a href="xmlsec-keysmngr.html#XMLSECKEYSTOREFINDKEYMETHOD"><span class="TYPE">xmlSecKeyStoreFindKeyMethod</span></a> <code class="STRUCTFIELD">findKey</code>;</p></td>
+<td><p>the store's find method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10933"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the saved keys type (public, private, ...).</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved0</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10938"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECSIMPLEKEYSSTOREGETKEYS"></a><h3>xmlSecSimpleKeysStoreGetKeys ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecPtrListPtr</font> xmlSecSimpleKeysStoreGetKeys (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store);</pre>
-<p>Gets list of keys from simple keys store.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10953"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to simple keys store.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN10958"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the list of keys stored in the keys store or NULL
-if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECSIMPLEKEYSSTOREID"></a><h3>xmlSecSimpleKeysStoreId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecSimpleKeysStoreId xmlSecSimpleKeysStoreGetKlass()</pre>
+<p>A simple keys store klass id.</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-list.html b/docs/api/xmlsec-list.html
index 0269b33..06fffcf 100644
--- a/docs/api/xmlsec-list.html
+++ b/docs/api/xmlsec-list.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="keysmngr" href="xmlsec-keysmngr.html">
<link rel="NEXT" title="membuf" href="xmlsec-membuf.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,519 +101,1005 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-keysmngr.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-keysmngr.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-membuf.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-membuf.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-LIST"></a>list</h1>
<div class="REFNAMEDIV">
-<a name="AEN10968"></a><h2>Name</h2>list -- Generic list structure implementation.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-LIST.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">struct <a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrList</a>;
-<font>void</font> <a href="xmlsec-list.html#XMLSECPTRLISTSETDEFAULTALLOCMODE">xmlSecPtrListSetDefaultAllocMode</a> (<a href="xmlsec-buffer.html#XMLSECALLOCMODE">xmlSecAllocMode</a> defAllocMode,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> defInitialSize);
-<font>int</font> <a href="xmlsec-list.html#XMLSECPTRLISTINITIALIZE">xmlSecPtrListInitialize</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>xmlSecPtrListId</font> id);
-<font>void</font> <a href="xmlsec-list.html#XMLSECPTRLISTFINALIZE">xmlSecPtrListFinalize</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list);
-<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> <a href="xmlsec-list.html#XMLSECPTRLISTCREATE">xmlSecPtrListCreate</a> (<font>xmlSecPtrListId</font> id);
-<font>void</font> <a href="xmlsec-list.html#XMLSECPTRLISTDESTROY">xmlSecPtrListDestroy</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list);
-<font>void</font> <a href="xmlsec-list.html#XMLSECPTRLISTEMPTY">xmlSecPtrListEmpty</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list);
-<font>int</font> <a href="xmlsec-list.html#XMLSECPTRLISTCOPY">xmlSecPtrListCopy</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> dst,
- <a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> src);
-<font>xmlSecPtrListPtr</font> <a href="xmlsec-list.html#XMLSECPTRLISTDUPLICATE">xmlSecPtrListDuplicate</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list);
-<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-list.html#XMLSECPTRLISTGETSIZE">xmlSecPtrListGetSize</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list);
-<a href="xmlsec-xmlsec.html#XMLSECPTR">xmlSecPtr</a> <a href="xmlsec-list.html#XMLSECPTRLISTGETITEM">xmlSecPtrListGetItem</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);
-<font>int</font> <a href="xmlsec-list.html#XMLSECPTRLISTADD">xmlSecPtrListAdd</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>xmlSecPtr</font> item);
-<font>int</font> <a href="xmlsec-list.html#XMLSECPTRLISTSET">xmlSecPtrListSet</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>xmlSecPtr</font> item,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);
-<font>int</font> <a href="xmlsec-list.html#XMLSECPTRLISTREMOVE">xmlSecPtrListRemove</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);
-<a href="xmlsec-xmlsec.html#XMLSECPTR">xmlSecPtr</a> <a href="xmlsec-list.html#XMLSECPTRLISTREMOVEANDRETURN">xmlSecPtrListRemoveAndReturn</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);
-<font>void</font> <a href="xmlsec-list.html#XMLSECPTRLISTDEBUGDUMP">xmlSecPtrListDebugDump</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-list.html#XMLSECPTRLISTDEBUGXMLDUMP">xmlSecPtrListDebugXmlDump</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>FILE</font> *output);
-#define <a href="xmlsec-list.html#XMLSECPTRLISTGETNAME">xmlSecPtrListGetName</a> (list)
-#define <a href="xmlsec-list.html#XMLSECPTRLISTISVALID">xmlSecPtrListIsValid</a> (list)
-#define <a href="xmlsec-list.html#XMLSECPTRLISTCHECKID">xmlSecPtrListCheckId</a> (list, dataId)
-#define <a href="xmlsec-list.html#XMLSECPTRLISTIDUNKNOWN">xmlSecPtrListIdUnknown</a>
-<a href="xmlsec-xmlsec.html#XMLSECPTR">xmlSecPtr</a> (<a href="xmlsec-list.html#XMLSECPTRDUPLICATEITEMMETHOD">*xmlSecPtrDuplicateItemMethod</a>) (<font>xmlSecPtr</font> ptr);
-<font>void</font> (<a href="xmlsec-list.html#XMLSECPTRDESTROYITEMMETHOD">*xmlSecPtrDestroyItemMethod</a>) (<font>xmlSecPtr</font> ptr);
-<font>void</font> (<a href="xmlsec-list.html#XMLSECPTRDEBUGDUMPITEMMETHOD">*xmlSecPtrDebugDumpItemMethod</a>) (<font>xmlSecPtr</font> ptr,
- <font>FILE</font> *output);
-struct <a href="xmlsec-list.html#XMLSECPTRLISTKLASS">xmlSecPtrListKlass</a>;
-#define <a href="xmlsec-list.html#XMLSECPTRLISTKLASSGETNAME">xmlSecPtrListKlassGetName</a> (klass)
-#define <a href="xmlsec-list.html#XMLSECSTRINGLISTID">xmlSecStringListId</a>
-<font>xmlSecPtrListId</font> <a href="xmlsec-list.html#XMLSECSTRINGLISTGETKLASS">xmlSecStringListGetKlass</a> (void);</pre>
-</div>
+<a name="AEN14811"></a><h2>Name</h2>list -- Generic list structure implementation.</div>
<div class="REFSECT1">
-<a name="XMLSEC-LIST.DESCRIPTION"></a><h2>Description</h2>
-<p>Generic list structure implementation.</p>
-</div>
-<div class="REFSECT1">
-<a name="XMLSEC-LIST.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECPTRLIST"></a><h3>struct xmlSecPtrList</h3>
-<pre class="PROGRAMLISTING">struct xmlSecPtrList {
- xmlSecPtrListId id;
-
- xmlSecPtr* data;
- xmlSecSize use;
- xmlSecSize max;
- xmlSecAllocMode allocMode;
-};</pre>
-<p>The pointers list.</p>
+<a name="XMLSEC-LIST.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN14816"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTSETDEFAULTALLOCMODE">xmlSecPtrListSetDefaultAllocMode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTINITIALIZE">xmlSecPtrListInitialize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTFINALIZE">xmlSecPtrListFinalize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11066"><span style="white-space: nowrap"><font>xmlSecPtrListId</font> <code class="STRUCTFIELD">id</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list items description.</p></td>
+<td><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="RETURNVALUE">xmlSecPtrListPtr</span></a></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTCREATE">xmlSecPtrListCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTDESTROY">xmlSecPtrListDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTEMPTY">xmlSecPtrListEmpty</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTCOPY">xmlSecPtrListCopy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="RETURNVALUE">xmlSecPtrListPtr</span></a></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTDUPLICATE">xmlSecPtrListDuplicate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTGETSIZE">xmlSecPtrListGetSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecPtr</span></font></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTGETITEM">xmlSecPtrListGetItem</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTADD">xmlSecPtrListAdd</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTSET">xmlSecPtrListSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTREMOVE">xmlSecPtrListRemove</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecPtr</span></font></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTREMOVEANDRETURN">xmlSecPtrListRemoveAndReturn</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11072"><span style="white-space: nowrap"><font>xmlSecPtr</font> *<code class="STRUCTFIELD">data</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list data.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTDEBUGDUMP">xmlSecPtrListDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTDEBUGXMLDUMP">xmlSecPtrListDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11078"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">use</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the current list size.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTGETNAME">xmlSecPtrListGetName</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11084"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">max</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the max (allocated) list size.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTISVALID">xmlSecPtrListIsValid</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11090"><span style="white-space: nowrap"><a href="xmlsec-buffer.html#XMLSECALLOCMODE">xmlSecAllocMode</a> <code class="STRUCTFIELD">allocMode</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the memory allocation mode.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTCHECKID">xmlSecPtrListCheckId</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecPtr</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-list.html#XMLSECPTRDUPLICATEITEMMETHOD">*xmlSecPtrDuplicateItemMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-list.html#XMLSECPTRDESTROYITEMMETHOD">*xmlSecPtrDestroyItemMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-list.html#XMLSECPTRDEBUGDUMPITEMMETHOD">*xmlSecPtrDebugDumpItemMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td>
+<a href="xmlsec-list.html#XMLSECPTRLISTKLASSGETNAME">xmlSecPtrListKlassGetName</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecPtrListId</span></font></td>
+<td>
+<a href="xmlsec-list.html#XMLSECSTRINGLISTGETKLASS">xmlSecStringListGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
</div>
-<hr>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-LIST.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN14987"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>struct</td>
+<td><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrList</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-list.html#XMLSECPTRLISTIDUNKNOWN">xmlSecPtrListIdUnknown</a></td>
+</tr>
+<tr>
+<td>struct</td>
+<td><a href="xmlsec-list.html#XMLSECPTRLISTKLASS">xmlSecPtrListKlass</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-list.html#XMLSECSTRINGLISTID">xmlSecStringListId</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-LIST.DESCRIPTION"></a><h2>Description</h2>
+<p>Generic list structure implementation.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-LIST.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECPTRLISTSETDEFAULTALLOCMODE"></a><h3>xmlSecPtrListSetDefaultAllocMode ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecPtrListSetDefaultAllocMode (<a href="xmlsec-buffer.html#XMLSECALLOCMODE">xmlSecAllocMode</a> defAllocMode,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> defInitialSize);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecPtrListSetDefaultAllocMode (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECALLOCMODE"><span class="TYPE">xmlSecAllocMode</span></a> defAllocMode</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> defInitialSize</code>);</pre>
<p>Sets new default allocation mode and minimal initial list size.</p>
+<div class="REFSECT3">
+<a name="AEN15025"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN15027"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11107"><span style="white-space: nowrap"><code class="PARAMETER">defAllocMode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new default memory allocation mode.</p></td>
+<td><p>defAllocMode</p></td>
+<td><p>the new default memory allocation mode.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11112"><span style="white-space: nowrap"><code class="PARAMETER">defInitialSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new default minimal initial size.</p></td>
+<td><p>defInitialSize</p></td>
+<td><p>the new default minimal initial size.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTINITIALIZE"></a><h3>xmlSecPtrListInitialize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecPtrListInitialize (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>xmlSecPtrListId</font> id);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecPtrListInitialize (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecPtrListId</span></font> id</code>);</pre>
<p>Initializes the list of given klass. Caller is responsible
for cleaning up by calling <a href="xmlsec-list.html#XMLSECPTRLISTFINALIZE"><span class="TYPE">xmlSecPtrListFinalize</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN15058"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN15060"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11130"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11135"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list klass.</p></td>
+<td><p>id</p></td>
+<td><p>the list klass.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11140"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN15075"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTFINALIZE"></a><h3>xmlSecPtrListFinalize ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecPtrListFinalize (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecPtrListFinalize (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>);</pre>
<p>Cleans up the list initialized with <a href="xmlsec-list.html#XMLSECPTRLISTINITIALIZE"><span class="TYPE">xmlSecPtrListInitialize</span></a>
function.</p>
+<div class="REFSECT3">
+<a name="AEN15091"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN15093"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN11157"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTCREATE"></a><h3>xmlSecPtrListCreate ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> xmlSecPtrListCreate (<font>xmlSecPtrListId</font> id);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="RETURNVALUE">xmlSecPtrListPtr</span></a>
+xmlSecPtrListCreate (<code class="PARAMETER"><font><span class="TYPE">xmlSecPtrListId</span></font> id</code>);</pre>
<p>Creates new list object. Caller is responsible for freeing returned list
by calling <a href="xmlsec-list.html#XMLSECPTRLISTDESTROY"><span class="TYPE">xmlSecPtrListDestroy</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN15115"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN15117"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>id</p></td>
+<td><p>the list klass.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11174"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list klass.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11179"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly allocated list or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN15126"></a><h4>Returns</h4>
+<p> pointer to newly allocated list or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTDESTROY"></a><h3>xmlSecPtrListDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecPtrListDestroy (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list);</pre>
-<p>Destroys <code class="PARAMETER">list</code> created with <a href="xmlsec-list.html#XMLSECPTRLISTCREATE"><span class="TYPE">xmlSecPtrListCreate</span></a> function.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecPtrListDestroy (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>);</pre>
+<p>Destroys <code class="PARAMETER">list</code>
+ created with <a href="xmlsec-list.html#XMLSECPTRLISTCREATE"><span class="TYPE">xmlSecPtrListCreate</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN15143"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN15145"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN11197"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTEMPTY"></a><h3>xmlSecPtrListEmpty ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecPtrListEmpty (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list);</pre>
-<p>Remove all items from <code class="PARAMETER">list</code> (if any).</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecPtrListEmpty (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>);</pre>
+<p>Remove all items from <code class="PARAMETER">list</code>
+ (if any).</p>
+<div class="REFSECT3">
+<a name="AEN15166"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN15168"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN11213"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTCOPY"></a><h3>xmlSecPtrListCopy ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecPtrListCopy (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> dst,
- <a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> src);</pre>
-<p>Copies <code class="PARAMETER">src</code> list items to <code class="PARAMETER">dst</code> list using <font><span class="TYPE">duplicateItem</span></font> method
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecPtrListCopy (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> dst</code>,
+ <code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> src</code>);</pre>
+<p>Copies <code class="PARAMETER">src</code>
+ list items to <code class="PARAMETER">dst</code>
+ list using <font><span class="TYPE">duplicateItem</span></font> method
of the list klass. If <font><span class="TYPE">duplicateItem</span></font> method is NULL then
we jsut copy pointers to items.</p>
+<div class="REFSECT3">
+<a name="AEN15197"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN15199"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11235"><span style="white-space: nowrap"><code class="PARAMETER">dst</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to destination list.</p></td>
+<td><p>dst</p></td>
+<td><p>the pointer to destination list.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11240"><span style="white-space: nowrap"><code class="PARAMETER">src</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to source list.</p></td>
+<td><p>src</p></td>
+<td><p>the pointer to source list.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11245"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN15214"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTDUPLICATE"></a><h3>xmlSecPtrListDuplicate ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecPtrListPtr</font> xmlSecPtrListDuplicate (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list);</pre>
-<p>Creates a new copy of <code class="PARAMETER">list</code> and all its items.</p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="RETURNVALUE">xmlSecPtrListPtr</span></a>
+xmlSecPtrListDuplicate (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>);</pre>
+<p>Creates a new copy of <code class="PARAMETER">list</code>
+ and all its items.</p>
+<div class="REFSECT3">
+<a name="AEN15229"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN15231"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11261"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11266"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly allocated list or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN15240"></a><h4>Returns</h4>
+<p> pointer to newly allocated list or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTGETSIZE"></a><h3>xmlSecPtrListGetSize ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecPtrListGetSize (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a>
+xmlSecPtrListGetSize (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>);</pre>
<p>Gets list size.</p>
+<div class="REFSECT3">
+<a name="AEN15254"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN15256"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11281"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11286"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the number of itmes in <code class="PARAMETER">list</code>.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN15265"></a><h4>Returns</h4>
+<p> the number of itmes in <code class="PARAMETER">list</code>
+.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTGETITEM"></a><h3>xmlSecPtrListGetItem ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECPTR">xmlSecPtr</a> xmlSecPtrListGetItem (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecPtr</span></font>
+xmlSecPtrListGetItem (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> pos</code>);</pre>
<p>Gets item from the list.</p>
+<div class="REFSECT3">
+<a name="AEN15283"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN15285"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11303"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11308"><span style="white-space: nowrap"><code class="PARAMETER">pos</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the item position.</p></td>
+<td><p>pos</p></td>
+<td><p>the item position.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11313"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list item at position <code class="PARAMETER">pos</code> or NULL if <code class="PARAMETER">pos</code> is greater
-than the number of items in the list or an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN15300"></a><h4>Returns</h4>
+<p> the list item at position <code class="PARAMETER">pos</code>
+or NULL if <code class="PARAMETER">pos</code>
+is greater
+than the number of items in the list or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTADD"></a><h3>xmlSecPtrListAdd ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecPtrListAdd (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>xmlSecPtr</font> item);</pre>
-<p>Adds <code class="PARAMETER">item</code> to the end of the <code class="PARAMETER">list</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecPtrListAdd (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecPtr</span></font> item</code>);</pre>
+<p>Adds <code class="PARAMETER">item</code>
+ to the end of the <code class="PARAMETER">list</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN15321"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN15323"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11333"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11338"><span style="white-space: nowrap"><code class="PARAMETER">item</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the item.</p></td>
+<td><p>item</p></td>
+<td><p>the item.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11343"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN15338"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTSET"></a><h3>xmlSecPtrListSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecPtrListSet (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>xmlSecPtr</font> item,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);</pre>
-<p>Sets the value of list item at position <code class="PARAMETER">pos</code>. The old value
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecPtrListSet (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecPtr</span></font> item</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> pos</code>);</pre>
+<p>Sets the value of list item at position <code class="PARAMETER">pos</code>
+. The old value
is destroyed.</p>
+<div class="REFSECT3">
+<a name="AEN15359"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11361"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
-</tr>
+<a name="AEN15361"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11366"><span style="white-space: nowrap"><code class="PARAMETER">item</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the item.</p></td>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11371"><span style="white-space: nowrap"><code class="PARAMETER">pos</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pos.</p></td>
+<td><p>item</p></td>
+<td><p>the item.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11376"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>pos</p></td>
+<td><p>the pos.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN15382"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTREMOVE"></a><h3>xmlSecPtrListRemove ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecPtrListRemove (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);</pre>
-<p>Destroys list item at the position <code class="PARAMETER">pos</code> and sets it value to NULL.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecPtrListRemove (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> pos</code>);</pre>
+<p>Destroys list item at the position <code class="PARAMETER">pos</code>
+ and sets it value to NULL.</p>
+<div class="REFSECT3">
+<a name="AEN15400"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11393"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
-</tr>
+<a name="AEN15402"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11398"><span style="white-space: nowrap"><code class="PARAMETER">pos</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the position.</p></td>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11403"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>pos</p></td>
+<td><p>the position.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN15417"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTREMOVEANDRETURN"></a><h3>xmlSecPtrListRemoveAndReturn ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECPTR">xmlSecPtr</a> xmlSecPtrListRemoveAndReturn (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);</pre>
-<p>Remove the list item at the position <code class="PARAMETER">pos</code> and return it back.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecPtr</span></font>
+xmlSecPtrListRemoveAndReturn (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> pos</code>);</pre>
+<p>Remove the list item at the position <code class="PARAMETER">pos</code>
+ and return it back.</p>
+<div class="REFSECT3">
+<a name="AEN15435"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11420"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
-</tr>
+<a name="AEN15437"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11425"><span style="white-space: nowrap"><code class="PARAMETER">pos</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the position.</p></td>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11430"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the list item.</p></td>
+<td><p>pos</p></td>
+<td><p>the position.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN15452"></a><h4>Returns</h4>
+<p> the pointer to the list item.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTDEBUGDUMP"></a><h3>xmlSecPtrListDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecPtrListDebugDump (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>FILE</font> *output);</pre>
-<p>Prints debug information about <code class="PARAMETER">list</code> to the <code class="PARAMETER">output</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecPtrListDebugDump (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints debug information about <code class="PARAMETER">list</code>
+ to the <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN15471"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN15473"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11448"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11453"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTDEBUGXMLDUMP"></a><h3>xmlSecPtrListDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecPtrListDebugXmlDump (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>FILE</font> *output);</pre>
-<p>Prints debug information about <code class="PARAMETER">list</code> to the <code class="PARAMETER">output</code> in XML format.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecPtrListDebugXmlDump (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints debug information about <code class="PARAMETER">list</code>
+ to the <code class="PARAMETER">output</code>
+ in XML format.</p>
+<div class="REFSECT3">
+<a name="AEN15504"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN15506"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11471"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11476"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTGETNAME"></a><h3>xmlSecPtrListGetName()</h3>
<pre class="PROGRAMLISTING">#define xmlSecPtrListGetName(list)</pre>
<p>Macro. Returns lists's name.</p>
+<div class="REFSECT3">
+<a name="AEN15527"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN15529"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>list</p></td>
+<td><p>the ponter to list.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN11489"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the ponter to list.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTISVALID"></a><h3>xmlSecPtrListIsValid()</h3>
<pre class="PROGRAMLISTING">#define xmlSecPtrListIsValid(list)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">list</code> is not NULL and <code class="PARAMETER">list</code>->id is not NULL
+<p>Macro. Returns 1 if <code class="PARAMETER">list</code>
+ is not NULL and <code class="PARAMETER">list->id</code>
+ is not NULL
or 0 otherwise.</p>
+<div class="REFSECT3">
+<a name="AEN15546"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN15548"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN11504"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPTRLISTCHECKID"></a><h3>xmlSecPtrListCheckId()</h3>
<pre class="PROGRAMLISTING">#define xmlSecPtrListCheckId(list, dataId)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">list</code> is valid and <code class="PARAMETER">list</code>'s id is equal to <code class="PARAMETER">dataId</code>.</p>
-<p></p>
+<p>Macro. Returns 1 if <code class="PARAMETER">list</code>
+ is valid and <code class="PARAMETER">list</code>
+'s id is equal to <code class="PARAMETER">dataId</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN15566"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN15568"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11520"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list.</p></td>
+<td><p>list</p></td>
+<td><p>the pointer to list.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11525"><span style="white-space: nowrap"><code class="PARAMETER">dataId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list Id.</p></td>
+<td><p>dataId</p></td>
+<td><p>the list Id.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECPTRLISTIDUNKNOWN"></a><h3>xmlSecPtrListIdUnknown</h3>
-<pre class="PROGRAMLISTING">#define xmlSecPtrListIdUnknown NULL</pre>
-<p>The "unknown" id.</p>
+<a name="XMLSECPTRDUPLICATEITEMMETHOD"></a><h3>xmlSecPtrDuplicateItemMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecPtr</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecPtrDuplicateItemMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><font><span class="TYPE">xmlSecPtr</span></font> ptr</code>);</pre>
+<p>Duplicates item <code class="PARAMETER">ptr</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN15597"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN15599"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>ptr</p></td>
+<td><p>the poinetr to list item.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN15608"></a><h4>Returns</h4>
+<p> pointer to new item copy or NULL if an error occurs.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECPTRDUPLICATEITEMMETHOD"></a><h3>xmlSecPtrDuplicateItemMethod ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECPTR">xmlSecPtr</a> (*xmlSecPtrDuplicateItemMethod) (<font>xmlSecPtr</font> ptr);</pre>
-<p>Duplicates item <code class="PARAMETER">ptr</code>.</p>
+<a name="XMLSECPTRDESTROYITEMMETHOD"></a><h3>xmlSecPtrDestroyItemMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecPtrDestroyItemMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><font><span class="TYPE">xmlSecPtr</span></font> ptr</code>);</pre>
+<p>Destroys list item <code class="PARAMETER">ptr</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN15625"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN15627"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>ptr</p></td>
+<td><p>the poinetr to list item.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECPTRDEBUGDUMPITEMMETHOD"></a><h3>xmlSecPtrDebugDumpItemMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecPtrDebugDumpItemMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><font><span class="TYPE">xmlSecPtr</span></font> ptr</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints debug information about <code class="PARAMETER">item</code>
+ to <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN15654"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN15656"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11548"><span style="white-space: nowrap"><code class="PARAMETER">ptr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the poinetr to list item.</p></td>
+<td><p>ptr</p></td>
+<td><p>the poinetr to list item.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11553"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to new item copy or NULL if an error occurs.</p></td>
+<td><p>output</p></td>
+<td><p>the output FILE.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECPTRDESTROYITEMMETHOD"></a><h3>xmlSecPtrDestroyItemMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> (*xmlSecPtrDestroyItemMethod) (<font>xmlSecPtr</font> ptr);</pre>
-<p>Destroys list item <code class="PARAMETER">ptr</code>.</p>
+<a name="XMLSECPTRLISTKLASSGETNAME"></a><h3>xmlSecPtrListKlassGetName()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecPtrListKlassGetName(klass)</pre>
+<p>Macro. Returns the list klass name.</p>
+<div class="REFSECT3">
+<a name="AEN15677"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN15679"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>klass</p></td>
+<td><p>the list klass.
+2</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN11569"><span style="white-space: nowrap"><code class="PARAMETER">ptr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the poinetr to list item.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECPTRDEBUGDUMPITEMMETHOD"></a><h3>xmlSecPtrDebugDumpItemMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> (*xmlSecPtrDebugDumpItemMethod) (<font>xmlSecPtr</font> ptr,
- <font>FILE</font> *output);</pre>
-<p>Prints debug information about <code class="PARAMETER">item</code> to <code class="PARAMETER">output</code>.</p>
-<p></p>
+<a name="XMLSECSTRINGLISTGETKLASS"></a><h3>xmlSecStringListGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecPtrListId</span></font>
+xmlSecStringListGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The strins list class.</p>
+<div class="REFSECT3">
+<a name="AEN15698"></a><h4>Returns</h4>
+<p> strings list klass.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-LIST.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECPTRLIST"></a><h3>struct xmlSecPtrList</h3>
+<pre class="PROGRAMLISTING">struct xmlSecPtrList {
+ xmlSecPtrListId id;
+
+ xmlSecPtr* data;
+ xmlSecSize use;
+ xmlSecSize max;
+ xmlSecAllocMode allocMode;
+};</pre>
+<p>The pointers list.</p>
+<div class="REFSECT3">
+<a name="AEN15709"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN15711"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p><font><span class="TYPE">xmlSecPtrListId</span></font> <code class="STRUCTFIELD">id</code>;</p></td>
+<td><p>the list items description.</p></td>
+<td> </td>
+</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11587"><span style="white-space: nowrap"><code class="PARAMETER">ptr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the poinetr to list item.</p></td>
+<td><p><font><span class="TYPE">xmlSecPtr</span></font> *<code class="STRUCTFIELD">data</code>;</p></td>
+<td><p>the list data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11592"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output FILE.</p></td>
+<td><p><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> <code class="STRUCTFIELD">use</code>;</p></td>
+<td><p>the current list size.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+<tr>
+<td><p><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> <code class="STRUCTFIELD">max</code>;</p></td>
+<td><p>the max (allocated) list size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-buffer.html#XMLSECALLOCMODE"><span class="TYPE">xmlSecAllocMode</span></a> <code class="STRUCTFIELD">allocMode</code>;</p></td>
+<td><p>the memory allocation mode.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECPTRLISTIDUNKNOWN"></a><h3>xmlSecPtrListIdUnknown</h3>
+<pre class="PROGRAMLISTING">#define xmlSecPtrListIdUnknown NULL</pre>
+<p>The "unknown" id.</p>
</div>
<hr>
<div class="REFSECT2">
@@ -604,62 +1112,51 @@ or 0 otherwise.</p>
xmlSecPtrDebugDumpItemMethod debugXmlDumpItem;
};</pre>
<p>List klass.</p>
+<div class="REFSECT3">
+<a name="AEN15771"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN15773"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11605"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">name</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list klass name.</p></td>
+<td><p>const <font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">name</code>;</p></td>
+<td><p>the list klass name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11611"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRDUPLICATEITEMMETHOD">xmlSecPtrDuplicateItemMethod</a> <code class="STRUCTFIELD">duplicateItem</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the duplciate item method.</p></td>
+<td><p><a href="xmlsec-list.html#XMLSECPTRDUPLICATEITEMMETHOD"><span class="TYPE">xmlSecPtrDuplicateItemMethod</span></a> <code class="STRUCTFIELD">duplicateItem</code>;</p></td>
+<td><p>the duplciate item method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11617"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRDESTROYITEMMETHOD">xmlSecPtrDestroyItemMethod</a> <code class="STRUCTFIELD">destroyItem</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destroy item method.</p></td>
+<td><p><a href="xmlsec-list.html#XMLSECPTRDESTROYITEMMETHOD"><span class="TYPE">xmlSecPtrDestroyItemMethod</span></a> <code class="STRUCTFIELD">destroyItem</code>;</p></td>
+<td><p>the destroy item method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11623"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRDEBUGDUMPITEMMETHOD">xmlSecPtrDebugDumpItemMethod</a> <code class="STRUCTFIELD">debugDumpItem</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the debug dump item method.</p></td>
+<td><p><a href="xmlsec-list.html#XMLSECPTRDEBUGDUMPITEMMETHOD"><span class="TYPE">xmlSecPtrDebugDumpItemMethod</span></a> <code class="STRUCTFIELD">debugDumpItem</code>;</p></td>
+<td><p>the debug dump item method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11629"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRDEBUGDUMPITEMMETHOD">xmlSecPtrDebugDumpItemMethod</a> <code class="STRUCTFIELD">debugXmlDumpItem</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the debug dump item in xml format method.</p></td>
+<td><p><a href="xmlsec-list.html#XMLSECPTRDEBUGDUMPITEMMETHOD"><span class="TYPE">xmlSecPtrDebugDumpItemMethod</span></a> <code class="STRUCTFIELD">debugXmlDumpItem</code>;</p></td>
+<td><p>the debug dump item in xml format method.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECPTRLISTKLASSGETNAME"></a><h3>xmlSecPtrListKlassGetName()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecPtrListKlassGetName(klass)</pre>
-<p>Macro. Returns the list klass name.</p>
-<p></p>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN11643"><span style="white-space: nowrap"><code class="PARAMETER">klass</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list klass.
-2</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECSTRINGLISTID"></a><h3>xmlSecStringListId</h3>
<pre class="PROGRAMLISTING">#define xmlSecStringListId</pre>
<p>Strings list klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECSTRINGLISTGETKLASS"></a><h3>xmlSecStringListGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecPtrListId</font> xmlSecStringListGetKlass (void);</pre>
-<p>The strins list class.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN11664"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> strings list klass.</p></td>
-</tr></tbody></table>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-membuf.html b/docs/api/xmlsec-membuf.html
index ab1e68a..9761b68 100644
--- a/docs/api/xmlsec-membuf.html
+++ b/docs/api/xmlsec-membuf.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="list" href="xmlsec-list.html">
<link rel="NEXT" title="nodeset" href="xmlsec-nodeset.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,63 +101,107 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-list.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-list.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-nodeset.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-nodeset.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-MEMBUF"></a>membuf</h1>
<div class="REFNAMEDIV">
-<a name="AEN11674"></a><h2>Name</h2>membuf -- Memory buffer transform implementation.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-MEMBUF.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">#define <a href="xmlsec-membuf.html#XMLSECTRANSFORMMEMBUFID">xmlSecTransformMemBufId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-membuf.html#XMLSECTRANSFORMMEMBUFGETKLASS">xmlSecTransformMemBufGetKlass</a> (void);
-<font>xmlSecBufferPtr</font> <a href="xmlsec-membuf.html#XMLSECTRANSFORMMEMBUFGETBUFFER">xmlSecTransformMemBufGetBuffer</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform);</pre>
+<a name="AEN15832"></a><h2>Name</h2>membuf -- Memory buffer transform implementation.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MEMBUF.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN15837"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-membuf.html#XMLSECTRANSFORMMEMBUFGETKLASS">xmlSecTransformMemBufGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="RETURNVALUE">xmlSecBufferPtr</span></a></td>
+<td>
+<a href="xmlsec-membuf.html#XMLSECTRANSFORMMEMBUFGETBUFFER">xmlSecTransformMemBufGetBuffer</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MEMBUF.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN15856"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody><tr>
+<td>#define</td>
+<td><a href="xmlsec-membuf.html#XMLSECTRANSFORMMEMBUFID">xmlSecTransformMemBufId</a></td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-MEMBUF.DESCRIPTION"></a><h2>Description</h2>
<p>Memory buffer transform implementation.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-MEMBUF.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMMEMBUFID"></a><h3>xmlSecTransformMemBufId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformMemBufId</pre>
-<p>The Memory Buffer transform klass.</p>
-<p></p>
-</div>
-<hr>
+<a name="XMLSEC-MEMBUF.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMMEMBUFGETKLASS"></a><h3>xmlSecTransformMemBufGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformMemBufGetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformMemBufGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The memory buffer transorm (used to store the data that go through it).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN11707"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> memory buffer transform klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN15878"></a><h4>Returns</h4>
+<p> memory buffer transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMMEMBUFGETBUFFER"></a><h3>xmlSecTransformMemBufGetBuffer ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecBufferPtr</font> xmlSecTransformMemBufGetBuffer (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="RETURNVALUE">xmlSecBufferPtr</span></a>
+xmlSecTransformMemBufGetBuffer (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>);</pre>
<p>Gets the pointer to memory buffer transform buffer.</p>
+<div class="REFSECT3">
+<a name="AEN15892"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN15894"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>transform</p></td>
+<td><p>the pointer to memory buffer transform.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11722"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to memory buffer transform.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11727"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the transform's <a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBuffer</span></a>.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN15903"></a><h4>Returns</h4>
+<p> pointer to the transform's <a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBuffer</span></a>.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MEMBUF.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMMEMBUFID"></a><h3>xmlSecTransformMemBufId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformMemBufId</pre>
+<p>The Memory Buffer transform klass.</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-mscrypto-app.html b/docs/api/xmlsec-mscrypto-app.html
index 8e9da61..6bc441b 100644
--- a/docs/api/xmlsec-mscrypto-app.html
+++ b/docs/api/xmlsec-mscrypto-app.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for MSCrypto API Reference." href="xmlsec-mscrypto-ref.html">
<link rel="PREVIOUS" title="XML Security Library for MSCrypto API Reference." href="xmlsec-mscrypto-ref.html">
<link rel="NEXT" title="certkeys" href="xmlsec-mscrypto-certkeys.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,688 +101,1046 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-mscrypto-ref.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-mscrypto-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-mscrypto-ref.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-mscrypto-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-mscrypto-certkeys.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-mscrypto-certkeys.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-MSCRYPTO-APP"></a>app</h1>
<div class="REFNAMEDIV">
-<a name="AEN31279"></a><h2>Name</h2>app -- Application functions implementation for MS Crypto.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-MSCRYPTO-APP.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPINIT">xmlSecMSCryptoAppInit</a> (const <font>char</font> *config);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPSHUTDOWN">xmlSecMSCryptoAppShutdown</a> (void);
-<font>LPCTSTR</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPGETCERTSTORENAME">xmlSecMSCryptoAppGetCertStoreName</a> (void);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRINIT">xmlSecMSCryptoAppDefaultKeysMngrInit</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRADOPTKEY">xmlSecMSCryptoAppDefaultKeysMngrAdoptKey</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRLOAD">xmlSecMSCryptoAppDefaultKeysMngrLoad</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *uri);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRSAVE">xmlSecMSCryptoAppDefaultKeysMngrSave</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRPRIVATEKEYLOAD">xmlSecMSCryptoAppDefaultKeysMngrPrivateKeyLoad</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>HCRYPTKEY</font> hKey);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRPUBLICKEYLOAD">xmlSecMSCryptoAppDefaultKeysMngrPublicKeyLoad</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>HCRYPTKEY</font> hKey);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRSYMKEYLOAD">xmlSecMSCryptoAppDefaultKeysMngrSymKeyLoad</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>HCRYPTKEY</font> hKey);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRADOPTKEYSTORE">xmlSecMSCryptoAppDefaultKeysMngrAdoptKeyStore</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>HCERTSTORE</font> keyStore);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRADOPTTRUSTEDSTORE">xmlSecMSCryptoAppDefaultKeysMngrAdoptTrustedStore</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>HCERTSTORE</font> trustedStore);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRADOPTUNTRUSTEDSTORE">xmlSecMSCryptoAppDefaultKeysMngrAdoptUntrustedStore</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>HCERTSTORE</font> untrustedStore);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPKEYSMNGRCERTLOAD">xmlSecMSCryptoAppKeysMngrCertLoad</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPKEYSMNGRCERTLOADMEMORY">xmlSecMSCryptoAppKeysMngrCertLoadMemory</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPKEYLOAD">xmlSecMSCryptoAppKeyLoad</a> (const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPKEYLOADMEMORY">xmlSecMSCryptoAppKeyLoadMemory</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPPKCS12LOAD">xmlSecMSCryptoAppPkcs12Load</a> (const <font>char</font> *filename,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPPKCS12LOADMEMORY">xmlSecMSCryptoAppPkcs12LoadMemory</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPKEYCERTLOAD">xmlSecMSCryptoAppKeyCertLoad</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<font>int</font> <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPKEYCERTLOADMEMORY">xmlSecMSCryptoAppKeyCertLoadMemory</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<font>void</font>* <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPGETDEFAULTPWDCALLBACK">xmlSecMSCryptoAppGetDefaultPwdCallback</a>
- (void);</pre>
+<a name="AEN42067"></a><h2>Name</h2>app -- Application functions implementation for MS Crypto.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MSCRYPTO-APP.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN42072"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPINIT">xmlSecMSCryptoAppInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPSHUTDOWN">xmlSecMSCryptoAppShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">LPCTSTR</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPGETCERTSTORENAME">xmlSecMSCryptoAppGetCertStoreName</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRINIT">xmlSecMSCryptoAppDefaultKeysMngrInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRADOPTKEY">xmlSecMSCryptoAppDefaultKeysMngrAdoptKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRLOAD">xmlSecMSCryptoAppDefaultKeysMngrLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRSAVE">xmlSecMSCryptoAppDefaultKeysMngrSave</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRPRIVATEKEYLOAD">xmlSecMSCryptoAppDefaultKeysMngrPrivateKeyLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRPUBLICKEYLOAD">xmlSecMSCryptoAppDefaultKeysMngrPublicKeyLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRSYMKEYLOAD">xmlSecMSCryptoAppDefaultKeysMngrSymKeyLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRADOPTKEYSTORE">xmlSecMSCryptoAppDefaultKeysMngrAdoptKeyStore</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRADOPTTRUSTEDSTORE">xmlSecMSCryptoAppDefaultKeysMngrAdoptTrustedStore</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRADOPTUNTRUSTEDSTORE">xmlSecMSCryptoAppDefaultKeysMngrAdoptUntrustedStore</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPKEYSMNGRCERTLOAD">xmlSecMSCryptoAppKeysMngrCertLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPKEYSMNGRCERTLOADMEMORY">xmlSecMSCryptoAppKeysMngrCertLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPKEYLOAD">xmlSecMSCryptoAppKeyLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPKEYLOADMEMORY">xmlSecMSCryptoAppKeyLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPPKCS12LOAD">xmlSecMSCryptoAppPkcs12Load</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPPKCS12LOADMEMORY">xmlSecMSCryptoAppPkcs12LoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPKEYCERTLOAD">xmlSecMSCryptoAppKeyCertLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPKEYCERTLOADMEMORY">xmlSecMSCryptoAppKeyCertLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">void</span></font> *</td>
+<td>
+<a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPGETDEFAULTPWDCALLBACK">xmlSecMSCryptoAppGetDefaultPwdCallback</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-MSCRYPTO-APP.DESCRIPTION"></a><h2>Description</h2>
<p>Application functions implementation for MS Crypto.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-MSCRYPTO-APP.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-MSCRYPTO-APP.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPINIT"></a><h3>xmlSecMSCryptoAppInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppInit (const <font>char</font> *config);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppInit (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *config</code>);</pre>
<p>General crypto engine initialization. This function is used
by XMLSec command line utility and called before
-<code class="PARAMETER">xmlSecInit</code> function.</p>
+<code class="PARAMETER">xmlSecInit</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN42246"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN42248"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>config</p></td>
+<td><p>the name of another then the default ms certificate store.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31402"><span style="white-space: nowrap"><code class="PARAMETER">config</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the name of another then the default ms certificate store.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31407"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42257"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPSHUTDOWN"></a><h3>xmlSecMSCryptoAppShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppShutdown (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>General crypto engine shutdown. This function is used
by XMLSec command line utility and called after
-<code class="PARAMETER">xmlSecShutdown</code> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN31422"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<code class="PARAMETER">xmlSecShutdown</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN42271"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPGETCERTSTORENAME"></a><h3>xmlSecMSCryptoAppGetCertStoreName ()</h3>
-<pre class="PROGRAMLISTING"><font>LPCTSTR</font> xmlSecMSCryptoAppGetCertStoreName (void);</pre>
-<p>Gets the MS Crypto certs store name set by <code class="PARAMETER">xmlSecMSCryptoAppInit</code> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN31437"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the MS Crypto certs name used by xmlsec-mscrypto.</p></td>
-</tr></tbody></table>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">LPCTSTR</span></font>
+xmlSecMSCryptoAppGetCertStoreName (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Gets the MS Crypto certs store name set by <code class="PARAMETER">xmlSecMSCryptoAppInit</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN42285"></a><h4>Returns</h4>
+<p> the MS Crypto certs name used by xmlsec-mscrypto.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRINIT"></a><h3>xmlSecMSCryptoAppDefaultKeysMngrInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppDefaultKeysMngrInit
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);</pre>
-<p>Initializes <code class="PARAMETER">mngr</code> with simple keys store <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREID"><span class="TYPE">xmlSecSimpleKeysStoreId</span></a>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppDefaultKeysMngrInit (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>);</pre>
+<p>Initializes <code class="PARAMETER">mngr</code>
+ with simple keys store <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREID"><span class="TYPE">xmlSecSimpleKeysStoreId</span></a>
and a default MSCrypto crypto key data stores.</p>
+<div class="REFSECT3">
+<a name="AEN42302"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN42304"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31455"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31460"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42313"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRADOPTKEY"></a><h3>xmlSecMSCryptoAppDefaultKeysMngrAdoptKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppDefaultKeysMngrAdoptKey
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Adds <code class="PARAMETER">key</code> to the keys manager <code class="PARAMETER">mngr</code> created with <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecMSCryptoAppDefaultKeysMngrInit</span></a>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppDefaultKeysMngrAdoptKey
+ (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Adds <code class="PARAMETER">key</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+ created with <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecMSCryptoAppDefaultKeysMngrInit</span></a>
function.</p>
+<div class="REFSECT3">
+<a name="AEN42334"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31480"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
+<a name="AEN42336"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31485"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31490"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42351"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRLOAD"></a><h3>xmlSecMSCryptoAppDefaultKeysMngrLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppDefaultKeysMngrLoad
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *uri);</pre>
-<p>Loads XML keys file from <code class="PARAMETER">uri</code> to the keys manager <code class="PARAMETER">mngr</code> created
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppDefaultKeysMngrLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *uri</code>);</pre>
+<p>Loads XML keys file from <code class="PARAMETER">uri</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+ created
with <a href="xmlsec-mscrypto-app.html#XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecMSCryptoAppDefaultKeysMngrInit</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN42372"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31510"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
+<a name="AEN42374"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31515"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the uri.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31520"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>uri</p></td>
+<td><p>the uri.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42389"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRSAVE"></a><h3>xmlSecMSCryptoAppDefaultKeysMngrSave ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppDefaultKeysMngrSave
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Saves keys from <code class="PARAMETER">mngr</code> to XML keys file.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppDefaultKeysMngrSave (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Saves keys from <code class="PARAMETER">mngr</code>
+ to XML keys file.</p>
+<div class="REFSECT3">
+<a name="AEN42410"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31538"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
+<a name="AEN42412"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31543"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination filename.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31548"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the type of keys to save (public/private/symmetric).</p></td>
+<td><p>filename</p></td>
+<td><p>the destination filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31553"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>type</p></td>
+<td><p>the type of keys to save (public/private/symmetric).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42433"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRPRIVATEKEYLOAD"></a><h3>xmlSecMSCryptoAppDefaultKeysMngrPrivateKeyLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppDefaultKeysMngrPrivateKeyLoad
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>HCRYPTKEY</font> hKey);</pre>
-<p>Adds private key <code class="PARAMETER">hKey</code> to the keys manager <code class="PARAMETER">mngr</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppDefaultKeysMngrPrivateKeyLoad
+ (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><font><span class="TYPE">HCRYPTKEY</span></font> hKey</code>);</pre>
+<p>Adds private key <code class="PARAMETER">hKey</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN42452"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31571"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
+<a name="AEN42454"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31576"><span style="white-space: nowrap"><code class="PARAMETER">hKey</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key handle.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31581"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>hKey</p></td>
+<td><p>the key handle.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42469"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRPUBLICKEYLOAD"></a><h3>xmlSecMSCryptoAppDefaultKeysMngrPublicKeyLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppDefaultKeysMngrPublicKeyLoad
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>HCRYPTKEY</font> hKey);</pre>
-<p>Adds public key <code class="PARAMETER">hKey</code> to the keys manager <code class="PARAMETER">mngr</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppDefaultKeysMngrPublicKeyLoad
+ (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><font><span class="TYPE">HCRYPTKEY</span></font> hKey</code>);</pre>
+<p>Adds public key <code class="PARAMETER">hKey</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN42488"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN42490"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31599"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31604"><span style="white-space: nowrap"><code class="PARAMETER">hKey</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key handle.</p></td>
+<td><p>hKey</p></td>
+<td><p>the key handle.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31609"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42505"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRSYMKEYLOAD"></a><h3>xmlSecMSCryptoAppDefaultKeysMngrSymKeyLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppDefaultKeysMngrSymKeyLoad
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>HCRYPTKEY</font> hKey);</pre>
-<p>Adds symmetric key <code class="PARAMETER">hKey</code> to the keys manager <code class="PARAMETER">mngr</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppDefaultKeysMngrSymKeyLoad
+ (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><font><span class="TYPE">HCRYPTKEY</span></font> hKey</code>);</pre>
+<p>Adds symmetric key <code class="PARAMETER">hKey</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN42524"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN42526"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31627"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31632"><span style="white-space: nowrap"><code class="PARAMETER">hKey</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key handle.</p></td>
+<td><p>hKey</p></td>
+<td><p>the key handle.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31637"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42541"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRADOPTKEYSTORE"></a><h3>xmlSecMSCryptoAppDefaultKeysMngrAdoptKeyStore ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppDefaultKeysMngrAdoptKeyStore
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>HCERTSTORE</font> keyStore);</pre>
-<p>Adds <code class="PARAMETER">keyStore</code> to the list of key stores in the keys manager <code class="PARAMETER">mngr</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppDefaultKeysMngrAdoptKeyStore
+ (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><font><span class="TYPE">HCERTSTORE</span></font> keyStore</code>);</pre>
+<p>Adds <code class="PARAMETER">keyStore</code>
+ to the list of key stores in the keys manager <code class="PARAMETER">mngr</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN42560"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN42562"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31655"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31660"><span style="white-space: nowrap"><code class="PARAMETER">keyStore</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys store.</p></td>
+<td><p>keyStore</p></td>
+<td><p>the pointer to keys store.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31665"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42577"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRADOPTTRUSTEDSTORE"></a><h3>xmlSecMSCryptoAppDefaultKeysMngrAdoptTrustedStore ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppDefaultKeysMngrAdoptTrustedStore
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>HCERTSTORE</font> trustedStore);</pre>
-<p>Adds <code class="PARAMETER">trustedStore</code> to the list of trusted cert stores in the keys manager <code class="PARAMETER">mngr</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppDefaultKeysMngrAdoptTrustedStore
+ (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><font><span class="TYPE">HCERTSTORE</span></font> trustedStore</code>);</pre>
+<p>Adds <code class="PARAMETER">trustedStore</code>
+ to the list of trusted cert stores in the keys manager <code class="PARAMETER">mngr</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN42596"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN42598"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31683"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31688"><span style="white-space: nowrap"><code class="PARAMETER">trustedStore</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to certs store.</p></td>
+<td><p>trustedStore</p></td>
+<td><p>the pointer to certs store.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31693"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42613"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPDEFAULTKEYSMNGRADOPTUNTRUSTEDSTORE"></a><h3>xmlSecMSCryptoAppDefaultKeysMngrAdoptUntrustedStore ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppDefaultKeysMngrAdoptUntrustedStore
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>HCERTSTORE</font> untrustedStore);</pre>
-<p>Adds <code class="PARAMETER">trustedStore</code> to the list of un-trusted cert stores in the keys manager <code class="PARAMETER">mngr</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppDefaultKeysMngrAdoptUntrustedStore
+ (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><font><span class="TYPE">HCERTSTORE</span></font> untrustedStore</code>);</pre>
+<p>Adds <code class="PARAMETER">trustedStore</code>
+ to the list of un-trusted cert stores in the keys manager <code class="PARAMETER">mngr</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN42632"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN42634"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31711"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31716"><span style="white-space: nowrap"><code class="PARAMETER">untrustedStore</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to certs store.</p></td>
+<td><p>untrustedStore</p></td>
+<td><p>the pointer to certs store.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31721"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42649"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPKEYSMNGRCERTLOAD"></a><h3>xmlSecMSCryptoAppKeysMngrCertLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppKeysMngrCertLoad (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Reads cert from <code class="PARAMETER">filename</code> and adds to the list of trusted or known
-untrusted certs in <code class="PARAMETER">store</code> (not implemented yet).</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppKeysMngrCertLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Reads cert from <code class="PARAMETER">filename</code>
+ and adds to the list of trusted or known
+untrusted certs in <code class="PARAMETER">store</code>
+ (not implemented yet).</p>
+<div class="REFSECT3">
+<a name="AEN42674"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN42676"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31741"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31746"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file.</p></td>
+<td><p>filename</p></td>
+<td><p>the certificate file.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31751"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31756"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag that indicates is the certificate in <code class="PARAMETER">filename</code>
- trusted or not.</p></td>
+<td><p>type</p></td>
+<td><p>the flag that indicates is the certificate in <code class="PARAMETER">filename</code>
+trusted or not.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31762"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42704"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPKEYSMNGRCERTLOADMEMORY"></a><h3>xmlSecMSCryptoAppKeysMngrCertLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppKeysMngrCertLoadMemory
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Reads cert from <code class="PARAMETER">data</code> and adds to the list of trusted or known
-untrusted certs in <code class="PARAMETER">store</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppKeysMngrCertLoadMemory
+ (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Reads cert from <code class="PARAMETER">data</code>
+ and adds to the list of trusted or known
+untrusted certs in <code class="PARAMETER">store</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN42732"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31783"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
-</tr>
+<a name="AEN42734"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31788"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the binary certificate.</p></td>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31793"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> size of binary certificate (data)</p></td>
+<td><p>data</p></td>
+<td><p>the binary certificate.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31798"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>dataSize</p></td>
+<td><p>size of binary certificate (data)</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31803"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag that indicates is the certificate in <code class="PARAMETER">filename</code>
- trusted or not.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31809"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>type</p></td>
+<td><p>the flag that indicates is the certificate in <code class="PARAMETER">filename</code>
+trusted or not.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42768"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPKEYLOAD"></a><h3>xmlSecMSCryptoAppKeyLoad ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecMSCryptoAppKeyLoad (const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecMSCryptoAppKeyLoad (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key from the a file.</p>
+<div class="REFSECT3">
+<a name="AEN42794"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31828"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key filename.</p></td>
-</tr>
+<a name="AEN42796"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31833"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file format.</p></td>
+<td><p>filename</p></td>
+<td><p>the key filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31838"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file password.</p></td>
+<td><p>format</p></td>
+<td><p>the key file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31843"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the key file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31848"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the key password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31853"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42829"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPKEYLOADMEMORY"></a><h3>xmlSecMSCryptoAppKeyLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecMSCryptoAppKeyLoadMemory (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecMSCryptoAppKeyLoadMemory (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key from the a file.</p>
+<div class="REFSECT3">
+<a name="AEN42858"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31873"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key binary data.</p></td>
-</tr>
+<a name="AEN42860"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31878"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key data size.</p></td>
+<td><p>data</p></td>
+<td><p>the key binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31883"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key format.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the key data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31888"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password.</p></td>
+<td><p>format</p></td>
+<td><p>the key format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31893"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the key password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31898"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the key password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31903"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42899"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPPKCS12LOAD"></a><h3>xmlSecMSCryptoAppPkcs12Load ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecMSCryptoAppPkcs12Load (const <font>char</font> *filename,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecMSCryptoAppPkcs12Load (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key and all associated certificates from the PKCS12 file</p>
+<div class="REFSECT3">
+<a name="AEN42922"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31921"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 key filename.</p></td>
-</tr>
+<a name="AEN42924"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31926"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 file password.</p></td>
+<td><p>filename</p></td>
+<td><p>the PKCS12 key filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31931"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the PKCS12 file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31936"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31941"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42951"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPPKCS12LOADMEMORY"></a><h3>xmlSecMSCryptoAppPkcs12LoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecMSCryptoAppPkcs12LoadMemory (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecMSCryptoAppPkcs12LoadMemory (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key and all associated certificates from the PKCS12 binary</p>
+<div class="REFSECT3">
+<a name="AEN42977"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31960"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the binary PKCS12 key in data.</p></td>
-</tr>
+<a name="AEN42979"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31965"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> size of binary pkcs12 data</p></td>
+<td><p>data</p></td>
+<td><p>the binary PKCS12 key in data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31970"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 file password.</p></td>
+<td><p>dataSize</p></td>
+<td><p>size of binary pkcs12 data</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31975"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the PKCS12 file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31980"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31985"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN43012"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPKEYCERTLOAD"></a><h3>xmlSecMSCryptoAppKeyCertLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppKeyCertLoad (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
-<p>Reads the certificate from $<code class="PARAMETER">filename</code> and adds it to key.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppKeyCertLoad (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
+<p>Reads the certificate from $<code class="PARAMETER">filename</code>
+ and adds it to key.</p>
+<div class="REFSECT3">
+<a name="AEN43033"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32003"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
+<a name="AEN43035"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32008"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate filename.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32013"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>filename</p></td>
+<td><p>the certificate filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32018"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN43056"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPKEYCERTLOADMEMORY"></a><h3>xmlSecMSCryptoAppKeyCertLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoAppKeyCertLoadMemory (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
-<p>Reads the certificate from $<code class="PARAMETER">data</code> and adds it to key.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoAppKeyCertLoadMemory (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
+<p>Reads the certificate from $<code class="PARAMETER">data</code>
+ and adds it to key.</p>
+<div class="REFSECT3">
+<a name="AEN43080"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32037"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
+<a name="AEN43082"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32042"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the binary certificate.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32047"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> size of certificate binary (data)</p></td>
+<td><p>data</p></td>
+<td><p>the binary certificate.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32052"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>dataSize</p></td>
+<td><p>size of certificate binary (data)</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32057"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN43109"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOAPPGETDEFAULTPWDCALLBACK"></a><h3>xmlSecMSCryptoAppGetDefaultPwdCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font>* xmlSecMSCryptoAppGetDefaultPwdCallback
- (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font> *
+xmlSecMSCryptoAppGetDefaultPwdCallback
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Gets default password callback.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32071"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> default password callback.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN43122"></a><h4>Returns</h4>
+<p> default password callback.</p>
+</div>
</div>
</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MSCRYPTO-APP.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<p></p>
+</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-mscrypto-ref.html"><b><<< XML Security Library for MSCrypto API Reference.</b></a></td>
<td align="right"><a accesskey="n" href="xmlsec-mscrypto-certkeys.html"><b>certkeys >>></b></a></td>
diff --git a/docs/api/xmlsec-mscrypto-certkeys.html b/docs/api/xmlsec-mscrypto-certkeys.html
index dd31619..3df1040 100644
--- a/docs/api/xmlsec-mscrypto-certkeys.html
+++ b/docs/api/xmlsec-mscrypto-certkeys.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for MSCrypto API Reference." href="xmlsec-mscrypto-ref.html">
<link rel="PREVIOUS" title="app" href="xmlsec-mscrypto-app.html">
<link rel="NEXT" title="crypto" href="xmlsec-mscrypto-crypto.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,178 +101,314 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-mscrypto-app.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-mscrypto-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-mscrypto-app.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-mscrypto-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-mscrypto-crypto.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-mscrypto-crypto.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-MSCRYPTO-CERTKEYS"></a>certkeys</h1>
<div class="REFNAMEDIV">
-<a name="AEN32081"></a><h2>Name</h2>certkeys -- MS Crypto certificates helper functions.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-MSCRYPTO-CERTKEYS.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>PCCERT_CONTEXT</font> <a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETCERT">xmlSecMSCryptoKeyDataGetCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>HCRYPTKEY</font> <a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETKEY">xmlSecMSCryptoKeyDataGetKey</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>HCRYPTKEY</font> <a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETDECRYPTKEY">xmlSecMSCryptoKeyDataGetDecryptKey</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>PCCERT_CONTEXT</font> <a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOCERTDUP">xmlSecMSCryptoCertDup</a> (<font>PCCERT_CONTEXT</font> pCert);
-<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> <a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOCERTADOPT">xmlSecMSCryptoCertAdopt</a> (<font>PCCERT_CONTEXT</font> pCert,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>HCRYPTPROV</font> <a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETMSCRYPTOPROVIDER">xmlSecMSCryptoKeyDataGetMSCryptoProvider</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>DWORD</font> <a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETMSCRYPTOKEYSPEC">xmlSecMSCryptoKeyDataGetMSCryptoKeySpec</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
+<a name="AEN43133"></a><h2>Name</h2>certkeys -- MS Crypto certificates helper functions.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MSCRYPTO-CERTKEYS.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN43138"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">PCCERT_CONTEXT</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETCERT">xmlSecMSCryptoKeyDataGetCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">HCRYPTKEY</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETKEY">xmlSecMSCryptoKeyDataGetKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">HCRYPTKEY</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETDECRYPTKEY">xmlSecMSCryptoKeyDataGetDecryptKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">PCCERT_CONTEXT</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOCERTDUP">xmlSecMSCryptoCertDup</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a></td>
+<td>
+<a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOCERTADOPT">xmlSecMSCryptoCertAdopt</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">HCRYPTPROV</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETMSCRYPTOPROVIDER">xmlSecMSCryptoKeyDataGetMSCryptoProvider</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">DWORD</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETMSCRYPTOKEYSPEC">xmlSecMSCryptoKeyDataGetMSCryptoKeySpec</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">PCRYPT_KEY_PROV_INFO</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-certkeys.html#XMLSECMSCRYPTOKEYDATAGETMSCRYPTOPROVIDERINFO">xmlSecMSCryptoKeyDataGetMSCryptoProviderInfo</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-MSCRYPTO-CERTKEYS.DESCRIPTION"></a><h2>Description</h2>
<p>MS Crypto certificates helper functions.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-MSCRYPTO-CERTKEYS.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-MSCRYPTO-CERTKEYS.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAGETCERT"></a><h3>xmlSecMSCryptoKeyDataGetCert ()</h3>
-<pre class="PROGRAMLISTING"><font>PCCERT_CONTEXT</font> xmlSecMSCryptoKeyDataGetCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">PCCERT_CONTEXT</span></font>
+xmlSecMSCryptoKeyDataGetCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
<p>Native MSCrypto certificate retrieval from xmlsec keydata. The
returned PCCERT_CONTEXT must not be released by the caller.</p>
+<div class="REFSECT3">
+<a name="AEN43213"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN43215"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the key data to retrieve certificate from.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32125"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key data to retrieve certificate from.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32130"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> PCCERT_CONTEXT on success or NULL otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN43224"></a><h4>Returns</h4>
+<p> PCCERT_CONTEXT on success or NULL otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAGETKEY"></a><h3>xmlSecMSCryptoKeyDataGetKey ()</h3>
-<pre class="PROGRAMLISTING"><font>HCRYPTKEY</font> xmlSecMSCryptoKeyDataGetKey (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">HCRYPTKEY</span></font>
+xmlSecMSCryptoKeyDataGetKey (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
<p>Native MSCrypto key retrieval from xmlsec keydata. The
returned HKEY must not be destroyed by the caller.</p>
+<div class="REFSECT3">
+<a name="AEN43241"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32146"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key data to retrieve certificate from.</p></td>
-</tr>
+<a name="AEN43243"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32151"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> type of key requested (public/private)</p></td>
+<td><p>data</p></td>
+<td><p>the key data to retrieve certificate from.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32156"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> HKEY on success or NULL otherwise.</p></td>
+<td><p>type</p></td>
+<td><p>type of key requested (public/private)</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN43258"></a><h4>Returns</h4>
+<p> HKEY on success or NULL otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAGETDECRYPTKEY"></a><h3>xmlSecMSCryptoKeyDataGetDecryptKey ()</h3>
-<pre class="PROGRAMLISTING"><font>HCRYPTKEY</font> xmlSecMSCryptoKeyDataGetDecryptKey (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">HCRYPTKEY</span></font>
+xmlSecMSCryptoKeyDataGetDecryptKey (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
<p>Native MSCrypto decrypt key retrieval from xmlsec keydata. The
returned HKEY must not be destroyed by the caller.</p>
+<div class="REFSECT3">
+<a name="AEN43272"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN43274"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the key data pointer</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32171"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key data pointer</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32176"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> HKEY on success or NULL otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN43283"></a><h4>Returns</h4>
+<p> HKEY on success or NULL otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOCERTDUP"></a><h3>xmlSecMSCryptoCertDup ()</h3>
-<pre class="PROGRAMLISTING"><font>PCCERT_CONTEXT</font> xmlSecMSCryptoCertDup (<font>PCCERT_CONTEXT</font> pCert);</pre>
-<p>Duplicates the <code class="PARAMETER">pCert</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">PCCERT_CONTEXT</span></font>
+xmlSecMSCryptoCertDup (<code class="PARAMETER"><font><span class="TYPE">PCCERT_CONTEXT</span></font> pCert</code>);</pre>
+<p>Duplicates the <code class="PARAMETER">pCert</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN43298"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN43300"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>pCert</p></td>
+<td><p>the pointer to cert.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32192"><span style="white-space: nowrap"><code class="PARAMETER">pCert</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to cert.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32197"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created PCCERT_CONTEXT object or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN43309"></a><h4>Returns</h4>
+<p> pointer to newly created PCCERT_CONTEXT object or
+NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOCERTADOPT"></a><h3>xmlSecMSCryptoCertAdopt ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> xmlSecMSCryptoCertAdopt (<font>PCCERT_CONTEXT</font> pCert,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a>
+xmlSecMSCryptoCertAdopt (<code class="PARAMETER"><font><span class="TYPE">PCCERT_CONTEXT</span></font> pCert</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
<p>Creates key data value from the cert.</p>
+<div class="REFSECT3">
+<a name="AEN43326"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32213"><span style="white-space: nowrap"><code class="PARAMETER">pCert</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to cert.</p></td>
-</tr>
+<a name="AEN43328"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32218"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the expected key type.</p></td>
+<td><p>pCert</p></td>
+<td><p>the pointer to cert.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32223"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created xmlsec key or NULL if an error occurs.</p></td>
+<td><p>type</p></td>
+<td><p>the expected key type.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN43343"></a><h4>Returns</h4>
+<p> pointer to newly created xmlsec key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAGETMSCRYPTOPROVIDER"></a><h3>xmlSecMSCryptoKeyDataGetMSCryptoProvider ()</h3>
-<pre class="PROGRAMLISTING"><font>HCRYPTPROV</font> xmlSecMSCryptoKeyDataGetMSCryptoProvider
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">HCRYPTPROV</span></font>
+xmlSecMSCryptoKeyDataGetMSCryptoProvider
+ (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
<p>Gets crypto provider handle</p>
+<div class="REFSECT3">
+<a name="AEN43357"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN43359"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the key data</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32238"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key data</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32243"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the crypto provider handler or 0 if there is an error.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN43368"></a><h4>Returns</h4>
+<p> the crypto provider handler or 0 if there is an error.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAGETMSCRYPTOKEYSPEC"></a><h3>xmlSecMSCryptoKeyDataGetMSCryptoKeySpec ()</h3>
-<pre class="PROGRAMLISTING"><font>DWORD</font> xmlSecMSCryptoKeyDataGetMSCryptoKeySpec
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">DWORD</span></font>
+xmlSecMSCryptoKeyDataGetMSCryptoKeySpec
+ (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
<p>Gets key spec info.</p>
+<div class="REFSECT3">
+<a name="AEN43382"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN43384"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the key data</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32258"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key data</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32263"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key spec info from key data</p></td>
-</tr>
-</tbody></table>
</div>
</div>
+<div class="REFSECT3">
+<a name="AEN43393"></a><h4>Returns</h4>
+<p> the key spec info from key data</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYDATAGETMSCRYPTOPROVIDERINFO"></a><h3>xmlSecMSCryptoKeyDataGetMSCryptoProviderInfo ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">PCRYPT_KEY_PROV_INFO</span></font>
+xmlSecMSCryptoKeyDataGetMSCryptoProviderInfo
+ (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MSCRYPTO-CERTKEYS.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<p></p>
+</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-mscrypto-app.html"><b><<< app</b></a></td>
<td align="right"><a accesskey="n" href="xmlsec-mscrypto-crypto.html"><b>crypto >>></b></a></td>
diff --git a/docs/api/xmlsec-mscrypto-crypto.html b/docs/api/xmlsec-mscrypto-crypto.html
index 48fe924..9bed684 100644
--- a/docs/api/xmlsec-mscrypto-crypto.html
+++ b/docs/api/xmlsec-mscrypto-crypto.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for MSCrypto API Reference." href="xmlsec-mscrypto-ref.html">
<link rel="PREVIOUS" title="certkeys" href="xmlsec-mscrypto-certkeys.html">
<link rel="NEXT" title="keysstore" href="xmlsec-mscrypto-keysstore.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,1155 +101,1570 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-mscrypto-certkeys.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-mscrypto-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-mscrypto-certkeys.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-mscrypto-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-mscrypto-keysstore.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-mscrypto-keysstore.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-MSCRYPTO-CRYPTO"></a>crypto</h1>
<div class="REFNAMEDIV">
-<a name="AEN32273"></a><h2>Name</h2>crypto -- Crypto transforms implementation for MS Crypto.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-MSCRYPTO-CRYPTO.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>xmlSecCryptoDLFunctionsPtr</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECCRYPTOGETFUNCTIONS-MSCRYPTO">xmlSecCryptoGetFunctions_mscrypto</a>
- (void);
-<font>int</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOINIT">xmlSecMSCryptoInit</a> (void);
-<font>int</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOSHUTDOWN">xmlSecMSCryptoShutdown</a> (void);
-<font>int</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYSMNGRINIT">xmlSecMSCryptoKeysMngrInit</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);
-<font>int</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOGENERATERANDOM">xmlSecMSCryptoGenerateRandom</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buffer,
- <font>size_t</font> size);
-<font>void</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOERRORSDEFAULTCALLBACK">xmlSecMSCryptoErrorsDefaultCallback</a> (const <font>char</font> *file,
- <font>int</font> line,
- const <font>char</font> *func,
- const <font>char</font> *errorObject,
- const <font>char</font> *errorSubject,
- <font>int</font> reason,
- const <font>char</font> *msg);
-<font>LPWSTR</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOCONVERTLOCALETOUNICODE">xmlSecMSCryptoConvertLocaleToUnicode</a>
- (const <font>char</font> *str);
-<font>LPWSTR</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOCONVERTUTF8TOUNICODE">xmlSecMSCryptoConvertUtf8ToUnicode</a> (const <font>xmlChar</font> *str);
-<font>xmlChar</font>* <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOCONVERTUNICODETOUTF8">xmlSecMSCryptoConvertUnicodeToUtf8</a> (<font>LPCWSTR</font> str);
-<font>xmlChar</font>* <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOCONVERTLOCALETOUTF8">xmlSecMSCryptoConvertLocaleToUtf8</a> (const <font>char</font> *str);
-<font>char</font>* <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOCONVERTUTF8TOLOCALE">xmlSecMSCryptoConvertUtf8ToLocale</a> (const <font>xmlChar</font> *str);
-<font>xmlChar</font>* <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOCONVERTTSTRTOUTF8">xmlSecMSCryptoConvertTstrToUtf8</a> (<font>LPCTSTR</font> str);
-<font>LPTSTR</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOCONVERTUTF8TOTSTR">xmlSecMSCryptoConvertUtf8ToTstr</a> (const <font>xmlChar</font> *str);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATADSAID">xmlSecMSCryptoKeyDataDsaId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATADSAGETKLASS">xmlSecMSCryptoKeyDataDsaGetKlass</a> (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMDSASHA1ID">xmlSecMSCryptoTransformDsaSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMDSASHA1GETKLASS">xmlSecMSCryptoTransformDsaSha1GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAGOST2001ID">xmlSecMSCryptoKeyDataGost2001Id</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAGOST2001GETKLASS">xmlSecMSCryptoKeyDataGost2001GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMGOST2001GOSTR3411-94ID">xmlSecMSCryptoTransformGost2001GostR3411_94Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMGOST2001GOSTR3411-94GETKLASS">xmlSecMSCryptoTransformGost2001GostR3411_94GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATARSAID">xmlSecMSCryptoKeyDataRsaId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATARSAGETKLASS">xmlSecMSCryptoKeyDataRsaGetKlass</a> (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSAMD5ID">xmlSecMSCryptoTransformRsaMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSAMD5GETKLASS">xmlSecMSCryptoTransformRsaMd5GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA1ID">xmlSecMSCryptoTransformRsaSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA1GETKLASS">xmlSecMSCryptoTransformRsaSha1GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA256ID">xmlSecMSCryptoTransformRsaSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA256GETKLASS">xmlSecMSCryptoTransformRsaSha256GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA384ID">xmlSecMSCryptoTransformRsaSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA384GETKLASS">xmlSecMSCryptoTransformRsaSha384GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA512ID">xmlSecMSCryptoTransformRsaSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA512GETKLASS">xmlSecMSCryptoTransformRsaSha512GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSAPKCS1ID">xmlSecMSCryptoTransformRsaPkcs1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSAPKCS1GETKLASS">xmlSecMSCryptoTransformRsaPkcs1GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSAOAEPID">xmlSecMSCryptoTransformRsaOaepId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSAOAEPGETKLASS">xmlSecMSCryptoTransformRsaOaepGetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMMD5ID">xmlSecMSCryptoTransformMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMMD5GETKLASS">xmlSecMSCryptoTransformMd5GetKlass</a> (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA1ID">xmlSecMSCryptoTransformSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA1GETKLASS">xmlSecMSCryptoTransformSha1GetKlass</a> (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA256ID">xmlSecMSCryptoTransformSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA256GETKLASS">xmlSecMSCryptoTransformSha256GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA384ID">xmlSecMSCryptoTransformSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA384GETKLASS">xmlSecMSCryptoTransformSha384GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA512ID">xmlSecMSCryptoTransformSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA512GETKLASS">xmlSecMSCryptoTransformSha512GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMGOSTR3411-94ID">xmlSecMSCryptoTransformGostR3411_94Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMGOSTR3411-94GETKLASS">xmlSecMSCryptoTransformGostR3411_94GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAAESID">xmlSecMSCryptoKeyDataAesId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAAESGETKLASS">xmlSecMSCryptoKeyDataAesGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAAESSET">xmlSecMSCryptoKeyDataAesSet</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMAES128CBCID">xmlSecMSCryptoTransformAes128CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMAES128CBCGETKLASS">xmlSecMSCryptoTransformAes128CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMAES192CBCID">xmlSecMSCryptoTransformAes192CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMAES192CBCGETKLASS">xmlSecMSCryptoTransformAes192CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMAES256CBCID">xmlSecMSCryptoTransformAes256CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMAES256CBCGETKLASS">xmlSecMSCryptoTransformAes256CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWAES128ID">xmlSecMSCryptoTransformKWAes128Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWAES128GETKLASS">xmlSecMSCryptoTransformKWAes128GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWAES192ID">xmlSecMSCryptoTransformKWAes192Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWAES192GETKLASS">xmlSecMSCryptoTransformKWAes192GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWAES256ID">xmlSecMSCryptoTransformKWAes256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWAES256GETKLASS">xmlSecMSCryptoTransformKWAes256GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATADESID">xmlSecMSCryptoKeyDataDesId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATADESGETKLASS">xmlSecMSCryptoKeyDataDesGetKlass</a> (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMDES3CBCID">xmlSecMSCryptoTransformDes3CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMDES3CBCGETKLASS">xmlSecMSCryptoTransformDes3CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWDES3ID">xmlSecMSCryptoTransformKWDes3Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWDES3GETKLASS">xmlSecMSCryptoTransformKWDes3GetKlass</a>
- (void);
-<font>int</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOHMACGETMINOUTPUTLENGTH">xmlSecMSCryptoHmacGetMinOutputLength</a>
- (void);
-<font>void</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOHMACSETMINOUTPUTLENGTH">xmlSecMSCryptoHmacSetMinOutputLength</a>
- (<font>int</font> min_length);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAHMACID">xmlSecMSCryptoKeyDataHmacId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAHMACGETKLASS">xmlSecMSCryptoKeyDataHmacGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAHMACSET">xmlSecMSCryptoKeyDataHmacSet</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACMD5ID">xmlSecMSCryptoTransformHmacMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACMD5GETKLASS">xmlSecMSCryptoTransformHmacMd5GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA1ID">xmlSecMSCryptoTransformHmacSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA1GETKLASS">xmlSecMSCryptoTransformHmacSha1GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA256ID">xmlSecMSCryptoTransformHmacSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA256GETKLASS">xmlSecMSCryptoTransformHmacSha256GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA384ID">xmlSecMSCryptoTransformHmacSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA384GETKLASS">xmlSecMSCryptoTransformHmacSha384GetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA512ID">xmlSecMSCryptoTransformHmacSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA512GETKLASS">xmlSecMSCryptoTransformHmacSha512GetKlass</a>
- (void);</pre>
-</div>
-<div class="REFSECT1">
-<a name="XMLSEC-MSCRYPTO-CRYPTO.DESCRIPTION"></a><h2>Description</h2>
-<p>Crypto transforms implementation for MS Crypto.</p>
-</div>
+<a name="AEN43415"></a><h2>Name</h2>crypto -- Crypto transforms implementation for MS Crypto.</div>
<div class="REFSECT1">
-<a name="XMLSEC-MSCRYPTO-CRYPTO.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECCRYPTOGETFUNCTIONS-MSCRYPTO"></a><h3>xmlSecCryptoGetFunctions_mscrypto ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecCryptoDLFunctionsPtr</font> xmlSecCryptoGetFunctions_mscrypto
- (void);</pre>
-<p>Gets MSCrypto specific functions table.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32453"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> xmlsec-mscrypto functions table.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOINIT"></a><h3>xmlSecMSCryptoInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoInit (void);</pre>
-<p>XMLSec library specific crypto engine initialization.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32467"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOSHUTDOWN"></a><h3>xmlSecMSCryptoShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoShutdown (void);</pre>
-<p>XMLSec library specific crypto engine shutdown.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32481"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYSMNGRINIT"></a><h3>xmlSecMSCryptoKeysMngrInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoKeysMngrInit (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);</pre>
-<p>Adds MSCrypto specific key data stores in keys manager.</p>
-<p></p>
+<a name="XMLSEC-MSCRYPTO-CRYPTO.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN43420"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32496"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecCryptoDLFunctionsPtr</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECCRYPTOGETFUNCTIONS-MSCRYPTO">xmlSecCryptoGetFunctions_mscrypto</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32501"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOINIT">xmlSecMSCryptoInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOGENERATERANDOM"></a><h3>xmlSecMSCryptoGenerateRandom ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoGenerateRandom (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buffer,
- <font>size_t</font> size);</pre>
-<p>Generates <code class="PARAMETER">size</code> random bytes and puts result in <code class="PARAMETER">buffer</code>
-(not implemented yet).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32519"><span style="white-space: nowrap"><code class="PARAMETER">buffer</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination buffer.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOSHUTDOWN">xmlSecMSCryptoShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32524"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the numer of bytes to generate.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYSMNGRINIT">xmlSecMSCryptoKeysMngrInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32529"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOGENERATERANDOM">xmlSecMSCryptoGenerateRandom</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOERRORSDEFAULTCALLBACK"></a><h3>xmlSecMSCryptoErrorsDefaultCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecMSCryptoErrorsDefaultCallback (const <font>char</font> *file,
- <font>int</font> line,
- const <font>char</font> *func,
- const <font>char</font> *errorObject,
- const <font>char</font> *errorSubject,
- <font>int</font> reason,
- const <font>char</font> *msg);</pre>
-<p>The default errors reporting callback function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32550"><span style="white-space: nowrap"><code class="PARAMETER">file</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location file name (__FILE__ macro).</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOERRORSDEFAULTCALLBACK">xmlSecMSCryptoErrorsDefaultCallback</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32555"><span style="white-space: nowrap"><code class="PARAMETER">line</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location line number (__LINE__ macro).</p></td>
+<td><font><span class="RETURNVALUE">LPWSTR</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOCONVERTLOCALETOUNICODE">xmlSecMSCryptoConvertLocaleToUnicode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32560"><span style="white-space: nowrap"><code class="PARAMETER">func</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location function name (__FUNCTION__ macro).</p></td>
+<td><font><span class="RETURNVALUE">LPWSTR</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOCONVERTUTF8TOUNICODE">xmlSecMSCryptoConvertUtf8ToUnicode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32565"><span style="white-space: nowrap"><code class="PARAMETER">errorObject</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error specific error object</p></td>
+<td>
+<font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOCONVERTUNICODETOUTF8">xmlSecMSCryptoConvertUnicodeToUtf8</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32570"><span style="white-space: nowrap"><code class="PARAMETER">errorSubject</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error specific error subject.</p></td>
+<td>
+<font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOCONVERTLOCALETOUTF8">xmlSecMSCryptoConvertLocaleToUtf8</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32575"><span style="white-space: nowrap"><code class="PARAMETER">reason</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error code.</p></td>
+<td>
+<font><span class="RETURNVALUE">char</span></font> *</td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOCONVERTUTF8TOLOCALE">xmlSecMSCryptoConvertUtf8ToLocale</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32580"><span style="white-space: nowrap"><code class="PARAMETER">msg</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the additional error message.</p></td>
+<td>
+<font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOCONVERTTSTRTOUTF8">xmlSecMSCryptoConvertTstrToUtf8</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOCONVERTLOCALETOUNICODE"></a><h3>xmlSecMSCryptoConvertLocaleToUnicode ()</h3>
-<pre class="PROGRAMLISTING"><font>LPWSTR</font> xmlSecMSCryptoConvertLocaleToUnicode
- (const <font>char</font> *str);</pre>
-<p>Converts input string from current system locale to Unicode.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32595"><span style="white-space: nowrap"><code class="PARAMETER">str</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string to convert.</p></td>
+<td><font><span class="RETURNVALUE">LPTSTR</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOCONVERTUTF8TOTSTR">xmlSecMSCryptoConvertUtf8ToTstr</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32600"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> a pointer to newly allocated string (must be freed with xmlFree) or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATADSAGETKLASS">xmlSecMSCryptoKeyDataDsaGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOCONVERTUTF8TOUNICODE"></a><h3>xmlSecMSCryptoConvertUtf8ToUnicode ()</h3>
-<pre class="PROGRAMLISTING"><font>LPWSTR</font> xmlSecMSCryptoConvertUtf8ToUnicode (const <font>xmlChar</font> *str);</pre>
-<p>Converts input string from UTF8 to Unicode.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32615"><span style="white-space: nowrap"><code class="PARAMETER">str</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string to convert.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMDSASHA1GETKLASS">xmlSecMSCryptoTransformDsaSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32620"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> a pointer to newly allocated string (must be freed with xmlFree) or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAGOST2001GETKLASS">xmlSecMSCryptoKeyDataGost2001GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOCONVERTUNICODETOUTF8"></a><h3>xmlSecMSCryptoConvertUnicodeToUtf8 ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlChar</font>* xmlSecMSCryptoConvertUnicodeToUtf8 (<font>LPCWSTR</font> str);</pre>
-<p>Converts input string from Unicode to UTF8.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32635"><span style="white-space: nowrap"><code class="PARAMETER">str</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string to convert.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMGOST2001GOSTR3411-94GETKLASS">xmlSecMSCryptoTransformGost2001GostR3411_94GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32640"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> a pointer to newly allocated string (must be freed with xmlFree) or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATARSAGETKLASS">xmlSecMSCryptoKeyDataRsaGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOCONVERTLOCALETOUTF8"></a><h3>xmlSecMSCryptoConvertLocaleToUtf8 ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlChar</font>* xmlSecMSCryptoConvertLocaleToUtf8 (const <font>char</font> *str);</pre>
-<p>Converts input string from locale to UTF8.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32655"><span style="white-space: nowrap"><code class="PARAMETER">str</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string to convert.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSAMD5GETKLASS">xmlSecMSCryptoTransformRsaMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32660"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> a pointer to newly allocated string (must be freed with xmlFree) or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA1GETKLASS">xmlSecMSCryptoTransformRsaSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOCONVERTUTF8TOLOCALE"></a><h3>xmlSecMSCryptoConvertUtf8ToLocale ()</h3>
-<pre class="PROGRAMLISTING"><font>char</font>* xmlSecMSCryptoConvertUtf8ToLocale (const <font>xmlChar</font> *str);</pre>
-<p>Converts input string from UTF8 to locale.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32675"><span style="white-space: nowrap"><code class="PARAMETER">str</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string to convert.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA256GETKLASS">xmlSecMSCryptoTransformRsaSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32680"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> a pointer to newly allocated string (must be freed with xmlFree) or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA384GETKLASS">xmlSecMSCryptoTransformRsaSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOCONVERTTSTRTOUTF8"></a><h3>xmlSecMSCryptoConvertTstrToUtf8 ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlChar</font>* xmlSecMSCryptoConvertTstrToUtf8 (<font>LPCTSTR</font> str);</pre>
-<p>Converts input string from TSTR (locale or Unicode) to UTF8.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32695"><span style="white-space: nowrap"><code class="PARAMETER">str</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string to convert.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA512GETKLASS">xmlSecMSCryptoTransformRsaSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32700"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> a pointer to newly allocated string (must be freed with xmlFree) or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSAPKCS1GETKLASS">xmlSecMSCryptoTransformRsaPkcs1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOCONVERTUTF8TOTSTR"></a><h3>xmlSecMSCryptoConvertUtf8ToTstr ()</h3>
-<pre class="PROGRAMLISTING"><font>LPTSTR</font> xmlSecMSCryptoConvertUtf8ToTstr (const <font>xmlChar</font> *str);</pre>
-<p>Converts input string from UTF8 to TSTR (locale or Unicode).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32715"><span style="white-space: nowrap"><code class="PARAMETER">str</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string to convert.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSAOAEPGETKLASS">xmlSecMSCryptoTransformRsaOaepGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN32720"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> a pointer to newly allocated string (must be freed with xmlFree) or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMMD5GETKLASS">xmlSecMSCryptoTransformMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYDATADSAID"></a><h3>xmlSecMSCryptoKeyDataDsaId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeyDataDsaId</pre>
-<p>The DSA key klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYDATADSAGETKLASS"></a><h3>xmlSecMSCryptoKeyDataDsaGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecMSCryptoKeyDataDsaGetKlass (void);</pre>
-<p>The DSA key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32741"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to DSA key data klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMDSASHA1ID"></a><h3>xmlSecMSCryptoTransformDsaSha1Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformDsaSha1Id</pre>
-<p>The DSA SHA1 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMDSASHA1GETKLASS"></a><h3>xmlSecMSCryptoTransformDsaSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformDsaSha1GetKlass
- (void);</pre>
-<p>The DSA-SHA1 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32762"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DSA-SHA1 signature transform klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYDATAGOST2001ID"></a><h3>xmlSecMSCryptoKeyDataGost2001Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeyDataGost2001Id</pre>
-<p>The GOST2001 key klass.</p>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA1GETKLASS">xmlSecMSCryptoTransformSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA256GETKLASS">xmlSecMSCryptoTransformSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA384GETKLASS">xmlSecMSCryptoTransformSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA512GETKLASS">xmlSecMSCryptoTransformSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMGOSTR3411-94GETKLASS">xmlSecMSCryptoTransformGostR3411_94GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAAESGETKLASS">xmlSecMSCryptoKeyDataAesGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAAESSET">xmlSecMSCryptoKeyDataAesSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMAES128CBCGETKLASS">xmlSecMSCryptoTransformAes128CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMAES192CBCGETKLASS">xmlSecMSCryptoTransformAes192CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMAES256CBCGETKLASS">xmlSecMSCryptoTransformAes256CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWAES128GETKLASS">xmlSecMSCryptoTransformKWAes128GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWAES192GETKLASS">xmlSecMSCryptoTransformKWAes192GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWAES256GETKLASS">xmlSecMSCryptoTransformKWAes256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATADESGETKLASS">xmlSecMSCryptoKeyDataDesGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMDES3CBCGETKLASS">xmlSecMSCryptoTransformDes3CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWDES3GETKLASS">xmlSecMSCryptoTransformKWDes3GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOHMACGETMINOUTPUTLENGTH">xmlSecMSCryptoHmacGetMinOutputLength</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOHMACSETMINOUTPUTLENGTH">xmlSecMSCryptoHmacSetMinOutputLength</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAHMACGETKLASS">xmlSecMSCryptoKeyDataHmacGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAHMACSET">xmlSecMSCryptoKeyDataHmacSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACMD5GETKLASS">xmlSecMSCryptoTransformHmacMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA1GETKLASS">xmlSecMSCryptoTransformHmacSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA256GETKLASS">xmlSecMSCryptoTransformHmacSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA384GETKLASS">xmlSecMSCryptoTransformHmacSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA512GETKLASS">xmlSecMSCryptoTransformHmacSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYDATAGOST2001GETKLASS"></a><h3>xmlSecMSCryptoKeyDataGost2001GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecMSCryptoKeyDataGost2001GetKlass
- (void);</pre>
-<p>The GOST2001 key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32783"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to GOST2001 key data klass.</p></td>
-</tr></tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMGOST2001GOSTR3411-94ID"></a><h3>xmlSecMSCryptoTransformGost2001GostR3411_94Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformGost2001GostR3411_94Id</pre>
-<p>The GOST2001 GOSTR3411_94 signature transform klass.</p>
+<div class="REFSECT1">
+<a name="XMLSEC-MSCRYPTO-CRYPTO.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
<p></p>
-</div>
+<a name="AEN43782"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATADSAID">xmlSecMSCryptoKeyDataDsaId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMDSASHA1ID">xmlSecMSCryptoTransformDsaSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAGOST2001ID">xmlSecMSCryptoKeyDataGost2001Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMGOST2001GOSTR3411-94ID">xmlSecMSCryptoTransformGost2001GostR3411_94Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATARSAID">xmlSecMSCryptoKeyDataRsaId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSAMD5ID">xmlSecMSCryptoTransformRsaMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA1ID">xmlSecMSCryptoTransformRsaSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA256ID">xmlSecMSCryptoTransformRsaSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA384ID">xmlSecMSCryptoTransformRsaSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSASHA512ID">xmlSecMSCryptoTransformRsaSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSAPKCS1ID">xmlSecMSCryptoTransformRsaPkcs1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMRSAOAEPID">xmlSecMSCryptoTransformRsaOaepId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMMD5ID">xmlSecMSCryptoTransformMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA1ID">xmlSecMSCryptoTransformSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA256ID">xmlSecMSCryptoTransformSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA384ID">xmlSecMSCryptoTransformSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMSHA512ID">xmlSecMSCryptoTransformSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMGOSTR3411-94ID">xmlSecMSCryptoTransformGostR3411_94Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAAESID">xmlSecMSCryptoKeyDataAesId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMAES128CBCID">xmlSecMSCryptoTransformAes128CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMAES192CBCID">xmlSecMSCryptoTransformAes192CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMAES256CBCID">xmlSecMSCryptoTransformAes256CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWAES128ID">xmlSecMSCryptoTransformKWAes128Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWAES192ID">xmlSecMSCryptoTransformKWAes192Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWAES256ID">xmlSecMSCryptoTransformKWAes256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATADESID">xmlSecMSCryptoKeyDataDesId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMDES3CBCID">xmlSecMSCryptoTransformDes3CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMKWDES3ID">xmlSecMSCryptoTransformKWDes3Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOKEYDATAHMACID">xmlSecMSCryptoKeyDataHmacId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACMD5ID">xmlSecMSCryptoTransformHmacMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA1ID">xmlSecMSCryptoTransformHmacSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA256ID">xmlSecMSCryptoTransformHmacSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA384ID">xmlSecMSCryptoTransformHmacSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-crypto.html#XMLSECMSCRYPTOTRANSFORMHMACSHA512ID">xmlSecMSCryptoTransformHmacSha512Id</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MSCRYPTO-CRYPTO.DESCRIPTION"></a><h2>Description</h2>
+<p>Crypto transforms implementation for MS Crypto.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MSCRYPTO-CRYPTO.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
+<div class="REFSECT2">
+<a name="XMLSECCRYPTOGETFUNCTIONS-MSCRYPTO"></a><h3>xmlSecCryptoGetFunctions_mscrypto ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecCryptoDLFunctionsPtr</span></font>
+xmlSecCryptoGetFunctions_mscrypto (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Gets MSCrypto specific functions table.</p>
+<div class="REFSECT3">
+<a name="AEN43936"></a><h4>Returns</h4>
+<p> xmlsec-mscrypto functions table.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMGOST2001GOSTR3411-94GETKLASS"></a><h3>xmlSecMSCryptoTransformGost2001GostR3411_94GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformGost2001GostR3411_94GetKlass
- (void);</pre>
-<p>The GOST2001-GOSTR3411_94 signature transform klass.</p>
+<a name="XMLSECMSCRYPTOINIT"></a><h3>xmlSecMSCryptoInit ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoInit (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>XMLSec library specific crypto engine initialization.</p>
+<div class="REFSECT3">
+<a name="AEN43949"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOSHUTDOWN"></a><h3>xmlSecMSCryptoShutdown ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>XMLSec library specific crypto engine shutdown.</p>
+<div class="REFSECT3">
+<a name="AEN43962"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYSMNGRINIT"></a><h3>xmlSecMSCryptoKeysMngrInit ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoKeysMngrInit (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>);</pre>
+<p>Adds MSCrypto specific key data stores in keys manager.</p>
+<div class="REFSECT3">
+<a name="AEN43976"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN43978"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN43987"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOGENERATERANDOM"></a><h3>xmlSecMSCryptoGenerateRandom ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoGenerateRandom (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buffer</code>,
+ <code class="PARAMETER"><font><span class="TYPE">size_t</span></font> size</code>);</pre>
+<p>Generates <code class="PARAMETER">size</code>
+ random bytes and puts result in <code class="PARAMETER">buffer</code>
+
+(not implemented yet).</p>
+<div class="REFSECT3">
+<a name="AEN44006"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN44008"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>buffer</p></td>
+<td><p>the destination buffer.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>size</p></td>
+<td><p>the numer of bytes to generate.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32804"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> GOST2001-GOSTR3411_94 signature transform klass.</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN44023"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYDATARSAID"></a><h3>xmlSecMSCryptoKeyDataRsaId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeyDataRsaId</pre>
-<p>The RSA key klass.</p>
+<a name="XMLSECMSCRYPTOERRORSDEFAULTCALLBACK"></a><h3>xmlSecMSCryptoErrorsDefaultCallback ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecMSCryptoErrorsDefaultCallback (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *file</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> line</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *func</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *errorObject</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *errorSubject</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> reason</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *msg</code>);</pre>
+<p>The default errors reporting callback function.</p>
+<div class="REFSECT3">
+<a name="AEN44055"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN44057"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>file</p></td>
+<td><p>the error location file name (__FILE__ macro).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>line</p></td>
+<td><p>the error location line number (__LINE__ macro).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>func</p></td>
+<td><p>the error location function name (__FUNCTION__ macro).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>errorObject</p></td>
+<td><p>the error specific error object</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>errorSubject</p></td>
+<td><p>the error specific error subject.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>reason</p></td>
+<td><p>the error code.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>msg</p></td>
+<td><p>the additional error message.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYDATARSAGETKLASS"></a><h3>xmlSecMSCryptoKeyDataRsaGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecMSCryptoKeyDataRsaGetKlass (void);</pre>
-<p>The MSCrypto RSA CertKey data klass.</p>
+<a name="XMLSECMSCRYPTOCONVERTLOCALETOUNICODE"></a><h3>xmlSecMSCryptoConvertLocaleToUnicode ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">LPWSTR</span></font>
+xmlSecMSCryptoConvertLocaleToUnicode (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *str</code>);</pre>
+<p>Converts input string from current system locale to Unicode.</p>
+<div class="REFSECT3">
+<a name="AEN44113"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN44115"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>str</p></td>
+<td><p>the string to convert.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN44124"></a><h4>Returns</h4>
+<p> a pointer to newly allocated string (must be freed with xmlFree) or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOCONVERTUTF8TOUNICODE"></a><h3>xmlSecMSCryptoConvertUtf8ToUnicode ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">LPWSTR</span></font>
+xmlSecMSCryptoConvertUtf8ToUnicode (<code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *str</code>);</pre>
+<p>Converts input string from UTF8 to Unicode.</p>
+<div class="REFSECT3">
+<a name="AEN44138"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN44140"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>str</p></td>
+<td><p>the string to convert.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32825"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to MSCrypto RSA key data klass.</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN44149"></a><h4>Returns</h4>
+<p> a pointer to newly allocated string (must be freed with xmlFree) or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMRSAMD5ID"></a><h3>xmlSecMSCryptoTransformRsaMd5Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformRsaMd5Id</pre>
-<p>The RSA-MD5 signature transform klass.</p>
+<a name="XMLSECMSCRYPTOCONVERTUNICODETOUTF8"></a><h3>xmlSecMSCryptoConvertUnicodeToUtf8 ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecMSCryptoConvertUnicodeToUtf8 (<code class="PARAMETER"><font><span class="TYPE">LPCWSTR</span></font> str</code>);</pre>
+<p>Converts input string from Unicode to UTF8.</p>
+<div class="REFSECT3">
+<a name="AEN44163"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN44165"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>str</p></td>
+<td><p>the string to convert.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN44174"></a><h4>Returns</h4>
+<p> a pointer to newly allocated string (must be freed with xmlFree) or NULL if an error occurs.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMRSAMD5GETKLASS"></a><h3>xmlSecMSCryptoTransformRsaMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformRsaMd5GetKlass
- (void);</pre>
-<p>The RSA-MD5 signature transform klass.</p>
+<a name="XMLSECMSCRYPTOCONVERTLOCALETOUTF8"></a><h3>xmlSecMSCryptoConvertLocaleToUtf8 ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecMSCryptoConvertLocaleToUtf8 (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *str</code>);</pre>
+<p>Converts input string from locale to UTF8.</p>
+<div class="REFSECT3">
+<a name="AEN44188"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN44190"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>str</p></td>
+<td><p>the string to convert.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN44199"></a><h4>Returns</h4>
+<p> a pointer to newly allocated string (must be freed with xmlFree) or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOCONVERTUTF8TOLOCALE"></a><h3>xmlSecMSCryptoConvertUtf8ToLocale ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">char</span></font> *
+xmlSecMSCryptoConvertUtf8ToLocale (<code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *str</code>);</pre>
+<p>Converts input string from UTF8 to locale.</p>
+<div class="REFSECT3">
+<a name="AEN44213"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN44215"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>str</p></td>
+<td><p>the string to convert.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32846"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-MD5 signature transform klass.</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN44224"></a><h4>Returns</h4>
+<p> a pointer to newly allocated string (must be freed with xmlFree) or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMRSASHA1ID"></a><h3>xmlSecMSCryptoTransformRsaSha1Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformRsaSha1Id</pre>
-<p>The RSA-SHA1 signature transform klass.</p>
+<a name="XMLSECMSCRYPTOCONVERTTSTRTOUTF8"></a><h3>xmlSecMSCryptoConvertTstrToUtf8 ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecMSCryptoConvertTstrToUtf8 (<code class="PARAMETER"><font><span class="TYPE">LPCTSTR</span></font> str</code>);</pre>
+<p>Converts input string from TSTR (locale or Unicode) to UTF8.</p>
+<div class="REFSECT3">
+<a name="AEN44238"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN44240"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>str</p></td>
+<td><p>the string to convert.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN44249"></a><h4>Returns</h4>
+<p> a pointer to newly allocated string (must be freed with xmlFree) or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOCONVERTUTF8TOTSTR"></a><h3>xmlSecMSCryptoConvertUtf8ToTstr ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">LPTSTR</span></font>
+xmlSecMSCryptoConvertUtf8ToTstr (<code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *str</code>);</pre>
+<p>Converts input string from UTF8 to TSTR (locale or Unicode).</p>
+<div class="REFSECT3">
+<a name="AEN44263"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN44265"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>str</p></td>
+<td><p>the string to convert.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN44274"></a><h4>Returns</h4>
+<p> a pointer to newly allocated string (must be freed with xmlFree) or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYDATADSAGETKLASS"></a><h3>xmlSecMSCryptoKeyDataDsaGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecMSCryptoKeyDataDsaGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DSA key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN44287"></a><h4>Returns</h4>
+<p> pointer to DSA key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMDSASHA1GETKLASS"></a><h3>xmlSecMSCryptoTransformDsaSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformDsaSha1GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DSA-SHA1 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44300"></a><h4>Returns</h4>
+<p> DSA-SHA1 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYDATAGOST2001GETKLASS"></a><h3>xmlSecMSCryptoKeyDataGost2001GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecMSCryptoKeyDataGost2001GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The GOST2001 key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN44313"></a><h4>Returns</h4>
+<p> pointer to GOST2001 key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMGOST2001GOSTR3411-94GETKLASS"></a><h3>xmlSecMSCryptoTransformGost2001GostR3411_94GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformGost2001GostR3411_94GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The GOST2001-GOSTR3411_94 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44326"></a><h4>Returns</h4>
+<p> GOST2001-GOSTR3411_94 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYDATARSAGETKLASS"></a><h3>xmlSecMSCryptoKeyDataRsaGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecMSCryptoKeyDataRsaGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The MSCrypto RSA CertKey data klass.</p>
+<div class="REFSECT3">
+<a name="AEN44339"></a><h4>Returns</h4>
+<p> pointer to MSCrypto RSA key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMRSAMD5GETKLASS"></a><h3>xmlSecMSCryptoTransformRsaMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformRsaMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-MD5 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44352"></a><h4>Returns</h4>
+<p> RSA-MD5 signature transform klass.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMRSASHA1GETKLASS"></a><h3>xmlSecMSCryptoTransformRsaSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformRsaSha1GetKlass
- (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformRsaSha1GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The RSA-SHA1 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32867"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA1 signature transform klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN44365"></a><h4>Returns</h4>
+<p> RSA-SHA1 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMRSASHA256ID"></a><h3>xmlSecMSCryptoTransformRsaSha256Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformRsaSha256Id</pre>
+<a name="XMLSECMSCRYPTOTRANSFORMRSASHA256GETKLASS"></a><h3>xmlSecMSCryptoTransformRsaSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformRsaSha256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The RSA-SHA256 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44378"></a><h4>Returns</h4>
+<p> RSA-SHA256 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMRSASHA384GETKLASS"></a><h3>xmlSecMSCryptoTransformRsaSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformRsaSha384GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA384 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44391"></a><h4>Returns</h4>
+<p> RSA-SHA384 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMRSASHA512GETKLASS"></a><h3>xmlSecMSCryptoTransformRsaSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformRsaSha512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA512 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44404"></a><h4>Returns</h4>
+<p> RSA-SHA512 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMRSAPKCS1GETKLASS"></a><h3>xmlSecMSCryptoTransformRsaPkcs1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformRsaPkcs1GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-PKCS1 key transport transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44417"></a><h4>Returns</h4>
+<p> RSA-PKCS1 key transport transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMRSAOAEPGETKLASS"></a><h3>xmlSecMSCryptoTransformRsaOaepGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformRsaOaepGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-OAEP key transport transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44430"></a><h4>Returns</h4>
+<p> RSA-OAEP key transport transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMMD5GETKLASS"></a><h3>xmlSecMSCryptoTransformMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA-1 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44443"></a><h4>Returns</h4>
+<p> pointer to SHA-1 digest transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMSHA1GETKLASS"></a><h3>xmlSecMSCryptoTransformSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA-1 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44456"></a><h4>Returns</h4>
+<p> pointer to SHA-1 digest transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMSHA256GETKLASS"></a><h3>xmlSecMSCryptoTransformSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformSha256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA-256 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44469"></a><h4>Returns</h4>
+<p> pointer to SHA-256 digest transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMSHA384GETKLASS"></a><h3>xmlSecMSCryptoTransformSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformSha384GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA-384 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44482"></a><h4>Returns</h4>
+<p> pointer to SHA-384 digest transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMSHA512GETKLASS"></a><h3>xmlSecMSCryptoTransformSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformSha512GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA-512 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44495"></a><h4>Returns</h4>
+<p> pointer to SHA-512 digest transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMGOSTR3411-94GETKLASS"></a><h3>xmlSecMSCryptoTransformGostR3411_94GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformGostR3411_94GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>GOSTR3411_94 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44508"></a><h4>Returns</h4>
+<p> pointer to GOSTR3411_94 digest transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYDATAAESGETKLASS"></a><h3>xmlSecMSCryptoKeyDataAesGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecMSCryptoKeyDataAesGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN44521"></a><h4>Returns</h4>
+<p> AES key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYDATAAESSET"></a><h3>xmlSecMSCryptoKeyDataAesSet ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoKeyDataAesSet (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
+<p>Sets the value of AES key data.</p>
+<div class="REFSECT3">
+<a name="AEN44541"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN44543"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to AES key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buf</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the key value size (in bytes).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN44564"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMRSASHA256GETKLASS"></a><h3>xmlSecMSCryptoTransformRsaSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformRsaSha256GetKlass
- (void);</pre>
-<p>The RSA-SHA256 signature transform klass.</p>
+<a name="XMLSECMSCRYPTOTRANSFORMAES128CBCGETKLASS"></a><h3>xmlSecMSCryptoTransformAes128CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformAes128CbcGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 128 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44577"></a><h4>Returns</h4>
+<p> pointer to AES 128 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMAES192CBCGETKLASS"></a><h3>xmlSecMSCryptoTransformAes192CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformAes192CbcGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 192 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44590"></a><h4>Returns</h4>
+<p> pointer to AES 192 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMAES256CBCGETKLASS"></a><h3>xmlSecMSCryptoTransformAes256CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformAes256CbcGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 256 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44603"></a><h4>Returns</h4>
+<p> pointer to AES 256 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMKWAES128GETKLASS"></a><h3>xmlSecMSCryptoTransformKWAes128GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformKWAes128GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-128 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44616"></a><h4>Returns</h4>
+<p> AES-128 kew wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMKWAES192GETKLASS"></a><h3>xmlSecMSCryptoTransformKWAes192GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformKWAes192GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-192 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44629"></a><h4>Returns</h4>
+<p> AES-192 kew wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMKWAES256GETKLASS"></a><h3>xmlSecMSCryptoTransformKWAes256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformKWAes256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-256 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44642"></a><h4>Returns</h4>
+<p> AES-256 kew wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYDATADESGETKLASS"></a><h3>xmlSecMSCryptoKeyDataDesGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecMSCryptoKeyDataDesGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DES key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN44655"></a><h4>Returns</h4>
+<p> DES key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMDES3CBCGETKLASS"></a><h3>xmlSecMSCryptoTransformDes3CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformDes3CbcGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Triple DES CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44668"></a><h4>Returns</h4>
+<p> pointer to Triple DES encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMKWDES3GETKLASS"></a><h3>xmlSecMSCryptoTransformKWDes3GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformKWDes3GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The Triple DES key wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44681"></a><h4>Returns</h4>
+<p> Triple DES key wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOHMACGETMINOUTPUTLENGTH"></a><h3>xmlSecMSCryptoHmacGetMinOutputLength ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoHmacGetMinOutputLength (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Gets the value of min HMAC length.</p>
+<div class="REFSECT3">
+<a name="AEN44694"></a><h4>Returns</h4>
+<p> the min HMAC output length</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOHMACSETMINOUTPUTLENGTH"></a><h3>xmlSecMSCryptoHmacSetMinOutputLength ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecMSCryptoHmacSetMinOutputLength (<code class="PARAMETER"><font><span class="TYPE">int</span></font> min_length</code>);</pre>
+<p>Sets the min HMAC output length</p>
+<div class="REFSECT3">
+<a name="AEN44708"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN44710"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>min_length</p></td>
+<td><p>the new min length</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYDATAHMACGETKLASS"></a><h3>xmlSecMSCryptoKeyDataHmacGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecMSCryptoKeyDataHmacGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN44729"></a><h4>Returns</h4>
+<p> HMAC key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYDATAHMACSET"></a><h3>xmlSecMSCryptoKeyDataHmacSet ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoKeyDataHmacSet (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
+<p>Sets the value of HMAC key data.</p>
+<div class="REFSECT3">
+<a name="AEN44749"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN44751"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to HMAC key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buf</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the key value size (in bytes).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32888"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA256 signature transform klass.</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN44772"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMHMACMD5GETKLASS"></a><h3>xmlSecMSCryptoTransformHmacMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformHmacMd5GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-MD5 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44785"></a><h4>Returns</h4>
+<p> the HMAC-MD5 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMHMACSHA1GETKLASS"></a><h3>xmlSecMSCryptoTransformHmacSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformHmacSha1GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA1 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44798"></a><h4>Returns</h4>
+<p> the HMAC-SHA1 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMHMACSHA256GETKLASS"></a><h3>xmlSecMSCryptoTransformHmacSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformHmacSha256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA256 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44811"></a><h4>Returns</h4>
+<p> the HMAC-SHA256 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMHMACSHA384GETKLASS"></a><h3>xmlSecMSCryptoTransformHmacSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformHmacSha384GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA384 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44824"></a><h4>Returns</h4>
+<p> the HMAC-SHA384 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMHMACSHA512GETKLASS"></a><h3>xmlSecMSCryptoTransformHmacSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecMSCryptoTransformHmacSha512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA512 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN44837"></a><h4>Returns</h4>
+<p> the HMAC-SHA512 transform klass.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MSCRYPTO-CRYPTO.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYDATADSAID"></a><h3>xmlSecMSCryptoKeyDataDsaId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeyDataDsaId</pre>
+<p>The DSA key klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMDSASHA1ID"></a><h3>xmlSecMSCryptoTransformDsaSha1Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformDsaSha1Id</pre>
+<p>The DSA SHA1 signature transform klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYDATAGOST2001ID"></a><h3>xmlSecMSCryptoKeyDataGost2001Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeyDataGost2001Id</pre>
+<p>The GOST2001 key klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMGOST2001GOSTR3411-94ID"></a><h3>xmlSecMSCryptoTransformGost2001GostR3411_94Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformGost2001GostR3411_94Id</pre>
+<p>The GOST2001 GOSTR3411_94 signature transform klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYDATARSAID"></a><h3>xmlSecMSCryptoKeyDataRsaId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeyDataRsaId</pre>
+<p>The RSA key klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMRSAMD5ID"></a><h3>xmlSecMSCryptoTransformRsaMd5Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformRsaMd5Id</pre>
+<p>The RSA-MD5 signature transform klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOTRANSFORMRSASHA1ID"></a><h3>xmlSecMSCryptoTransformRsaSha1Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformRsaSha1Id</pre>
+<p>The RSA-SHA1 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMRSASHA384ID"></a><h3>xmlSecMSCryptoTransformRsaSha384Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformRsaSha384Id</pre>
-<p>The RSA-SHA384 signature transform klass.</p>
-<p></p>
+<a name="XMLSECMSCRYPTOTRANSFORMRSASHA256ID"></a><h3>xmlSecMSCryptoTransformRsaSha256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformRsaSha256Id</pre>
+<p>The RSA-SHA256 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMRSASHA384GETKLASS"></a><h3>xmlSecMSCryptoTransformRsaSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformRsaSha384GetKlass
- (void);</pre>
+<a name="XMLSECMSCRYPTOTRANSFORMRSASHA384ID"></a><h3>xmlSecMSCryptoTransformRsaSha384Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformRsaSha384Id</pre>
<p>The RSA-SHA384 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32909"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA384 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMRSASHA512ID"></a><h3>xmlSecMSCryptoTransformRsaSha512Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformRsaSha512Id</pre>
<p>The RSA-SHA512 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMRSASHA512GETKLASS"></a><h3>xmlSecMSCryptoTransformRsaSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformRsaSha512GetKlass
- (void);</pre>
-<p>The RSA-SHA512 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32930"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA512 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMRSAPKCS1ID"></a><h3>xmlSecMSCryptoTransformRsaPkcs1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformRsaPkcs1Id</pre>
<p>The RSA PKCS1 key transport transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMRSAPKCS1GETKLASS"></a><h3>xmlSecMSCryptoTransformRsaPkcs1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformRsaPkcs1GetKlass
- (void);</pre>
-<p>The RSA-PKCS1 key transport transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32951"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-PKCS1 key transport transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMRSAOAEPID"></a><h3>xmlSecMSCryptoTransformRsaOaepId</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformRsaOaepId</pre>
<p>The RSA PKCS1 key transport transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMRSAOAEPGETKLASS"></a><h3>xmlSecMSCryptoTransformRsaOaepGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformRsaOaepGetKlass
- (void);</pre>
-<p>The RSA-OAEP key transport transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32972"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-OAEP key transport transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMMD5ID"></a><h3>xmlSecMSCryptoTransformMd5Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformMd5Id</pre>
<p>The MD5 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMMD5GETKLASS"></a><h3>xmlSecMSCryptoTransformMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformMd5GetKlass (void);</pre>
-<p>SHA-1 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN32993"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA-1 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMSHA1ID"></a><h3>xmlSecMSCryptoTransformSha1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformSha1Id</pre>
<p>The SHA1 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMSHA1GETKLASS"></a><h3>xmlSecMSCryptoTransformSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformSha1GetKlass (void);</pre>
-<p>SHA-1 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33014"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA-1 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMSHA256ID"></a><h3>xmlSecMSCryptoTransformSha256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformSha256Id</pre>
<p>The SHA256 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMSHA256GETKLASS"></a><h3>xmlSecMSCryptoTransformSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformSha256GetKlass
- (void);</pre>
-<p>SHA-256 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33035"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA-256 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMSHA384ID"></a><h3>xmlSecMSCryptoTransformSha384Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformSha384Id</pre>
<p>The SHA384 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMSHA384GETKLASS"></a><h3>xmlSecMSCryptoTransformSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformSha384GetKlass
- (void);</pre>
-<p>SHA-384 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33056"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA-384 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMSHA512ID"></a><h3>xmlSecMSCryptoTransformSha512Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformSha512Id</pre>
<p>The SHA512 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMSHA512GETKLASS"></a><h3>xmlSecMSCryptoTransformSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformSha512GetKlass
- (void);</pre>
-<p>SHA-512 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33077"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA-512 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMGOSTR3411-94ID"></a><h3>xmlSecMSCryptoTransformGostR3411_94Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformGostR3411_94Id</pre>
<p>The GOSTR3411_94 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMGOSTR3411-94GETKLASS"></a><h3>xmlSecMSCryptoTransformGostR3411_94GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformGostR3411_94GetKlass
- (void);</pre>
-<p>GOSTR3411_94 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33098"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to GOSTR3411_94 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAAESID"></a><h3>xmlSecMSCryptoKeyDataAesId</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeyDataAesId</pre>
<p>The AES key data klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYDATAAESGETKLASS"></a><h3>xmlSecMSCryptoKeyDataAesGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecMSCryptoKeyDataAesGetKlass (void);</pre>
-<p>The AES key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33119"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES key data klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYDATAAESSET"></a><h3>xmlSecMSCryptoKeyDataAesSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoKeyDataAesSet (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
-<p>Sets the value of AES key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33136"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to AES key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33141"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33146"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value size (in bytes).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33151"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMAES128CBCID"></a><h3>xmlSecMSCryptoTransformAes128CbcId</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformAes128CbcId</pre>
<p>The AES128 CBC cipher transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMAES128CBCGETKLASS"></a><h3>xmlSecMSCryptoTransformAes128CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformAes128CbcGetKlass
- (void);</pre>
-<p>AES 128 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33172"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 128 CBC encryption transform.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMAES192CBCID"></a><h3>xmlSecMSCryptoTransformAes192CbcId</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformAes192CbcId</pre>
<p>The AES192 CBC cipher transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMAES192CBCGETKLASS"></a><h3>xmlSecMSCryptoTransformAes192CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformAes192CbcGetKlass
- (void);</pre>
-<p>AES 192 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33193"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 192 CBC encryption transform.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMAES256CBCID"></a><h3>xmlSecMSCryptoTransformAes256CbcId</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformAes256CbcId</pre>
<p>The AES256 CBC cipher transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMAES256CBCGETKLASS"></a><h3>xmlSecMSCryptoTransformAes256CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformAes256CbcGetKlass
- (void);</pre>
-<p>AES 256 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33214"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 256 CBC encryption transform.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMKWAES128ID"></a><h3>xmlSecMSCryptoTransformKWAes128Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformKWAes128Id</pre>
<p>The AES 128 key wrap transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMKWAES128GETKLASS"></a><h3>xmlSecMSCryptoTransformKWAes128GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformKWAes128GetKlass
- (void);</pre>
-<p>The AES-128 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33235"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-128 kew wrapper transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMKWAES192ID"></a><h3>xmlSecMSCryptoTransformKWAes192Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformKWAes192Id</pre>
<p>The AES 192 key wrap transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMKWAES192GETKLASS"></a><h3>xmlSecMSCryptoTransformKWAes192GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformKWAes192GetKlass
- (void);</pre>
-<p>The AES-192 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33256"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-192 kew wrapper transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMKWAES256ID"></a><h3>xmlSecMSCryptoTransformKWAes256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformKWAes256Id</pre>
<p>The AES 256 key wrap transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMKWAES256GETKLASS"></a><h3>xmlSecMSCryptoTransformKWAes256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformKWAes256GetKlass
- (void);</pre>
-<p>The AES-256 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33277"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-256 kew wrapper transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATADESID"></a><h3>xmlSecMSCryptoKeyDataDesId</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeyDataDesId</pre>
<p>The DES key data klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYDATADESGETKLASS"></a><h3>xmlSecMSCryptoKeyDataDesGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecMSCryptoKeyDataDesGetKlass (void);</pre>
-<p>The DES key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33298"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DES key data klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMDES3CBCID"></a><h3>xmlSecMSCryptoTransformDes3CbcId</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformDes3CbcId</pre>
<p>The DES3 CBC cipher transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMDES3CBCGETKLASS"></a><h3>xmlSecMSCryptoTransformDes3CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformDes3CbcGetKlass
- (void);</pre>
-<p>Triple DES CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33319"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to Triple DES encryption transform.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMKWDES3ID"></a><h3>xmlSecMSCryptoTransformKWDes3Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformKWDes3Id</pre>
<p>The DES3 KW transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMKWDES3GETKLASS"></a><h3>xmlSecMSCryptoTransformKWDes3GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformKWDes3GetKlass
- (void);</pre>
-<p>The Triple DES key wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33340"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> Triple DES key wrapper transform klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOHMACGETMINOUTPUTLENGTH"></a><h3>xmlSecMSCryptoHmacGetMinOutputLength ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoHmacGetMinOutputLength
- (void);</pre>
-<p>Gets the value of min HMAC length.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33354"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the min HMAC output length</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOHMACSETMINOUTPUTLENGTH"></a><h3>xmlSecMSCryptoHmacSetMinOutputLength ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecMSCryptoHmacSetMinOutputLength
- (<font>int</font> min_length);</pre>
-<p>Sets the min HMAC output length</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33369"><span style="white-space: nowrap"><code class="PARAMETER">min_length</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new min length</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAHMACID"></a><h3>xmlSecMSCryptoKeyDataHmacId</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeyDataHmacId</pre>
<p>The DHMAC key klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYDATAHMACGETKLASS"></a><h3>xmlSecMSCryptoKeyDataHmacGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecMSCryptoKeyDataHmacGetKlass (void);</pre>
-<p>The HMAC key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33390"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> HMAC key data klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYDATAHMACSET"></a><h3>xmlSecMSCryptoKeyDataHmacSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoKeyDataHmacSet (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
-<p>Sets the value of HMAC key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33407"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to HMAC key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33412"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33417"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value size (in bytes).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33422"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMHMACMD5ID"></a><h3>xmlSecMSCryptoTransformHmacMd5Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformHmacMd5Id</pre>
<p>The HMAC with MD5 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMHMACMD5GETKLASS"></a><h3>xmlSecMSCryptoTransformHmacMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformHmacMd5GetKlass
- (void);</pre>
-<p>The HMAC-MD5 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33443"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-MD5 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMHMACSHA1ID"></a><h3>xmlSecMSCryptoTransformHmacSha1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformHmacSha1Id</pre>
<p>The HMAC with SHA1 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMHMACSHA1GETKLASS"></a><h3>xmlSecMSCryptoTransformHmacSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformHmacSha1GetKlass
- (void);</pre>
-<p>The HMAC-SHA1 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33464"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA1 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMHMACSHA256ID"></a><h3>xmlSecMSCryptoTransformHmacSha256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformHmacSha256Id</pre>
<p>The HMAC with SHA256 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMHMACSHA256GETKLASS"></a><h3>xmlSecMSCryptoTransformHmacSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformHmacSha256GetKlass
- (void);</pre>
-<p>The HMAC-SHA256 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33485"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA256 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMHMACSHA384ID"></a><h3>xmlSecMSCryptoTransformHmacSha384Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformHmacSha384Id</pre>
<p>The HMAC with SHA384 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMHMACSHA384GETKLASS"></a><h3>xmlSecMSCryptoTransformHmacSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformHmacSha384GetKlass
- (void);</pre>
-<p>The HMAC-SHA384 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33506"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA384 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOTRANSFORMHMACSHA512ID"></a><h3>xmlSecMSCryptoTransformHmacSha512Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecMSCryptoTransformHmacSha512Id</pre>
<p>The HMAC with SHA512 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOTRANSFORMHMACSHA512GETKLASS"></a><h3>xmlSecMSCryptoTransformHmacSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecMSCryptoTransformHmacSha512GetKlass
- (void);</pre>
-<p>The HMAC-SHA512 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33527"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA512 transform klass.</p></td>
-</tr></tbody></table>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-mscrypto-keysstore.html b/docs/api/xmlsec-mscrypto-keysstore.html
index 5975a5c..584b476 100644
--- a/docs/api/xmlsec-mscrypto-keysstore.html
+++ b/docs/api/xmlsec-mscrypto-keysstore.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for MSCrypto API Reference." href="xmlsec-mscrypto-ref.html">
<link rel="PREVIOUS" title="crypto" href="xmlsec-mscrypto-crypto.html">
<link rel="NEXT" title="x509" href="xmlsec-mscrypto-x509.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,131 +101,214 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-mscrypto-crypto.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-mscrypto-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-mscrypto-crypto.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-mscrypto-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-mscrypto-x509.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-mscrypto-x509.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-MSCRYPTO-KEYSSTORE"></a>keysstore</h1>
<div class="REFNAMEDIV">
-<a name="AEN33537"></a><h2>Name</h2>keysstore -- Keys store implementation for MS Crypto.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-MSCRYPTO-KEYSSTORE.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">#define <a href="xmlsec-mscrypto-keysstore.html#XMLSECMSCRYPTOKEYSSTOREID">xmlSecMSCryptoKeysStoreId</a>
-<font>xmlSecKeyStoreId</font> <a href="xmlsec-mscrypto-keysstore.html#XMLSECMSCRYPTOKEYSSTOREGETKLASS">xmlSecMSCryptoKeysStoreGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-mscrypto-keysstore.html#XMLSECMSCRYPTOKEYSSTOREADOPTKEY">xmlSecMSCryptoKeysStoreAdoptKey</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> <a href="xmlsec-mscrypto-keysstore.html#XMLSECMSCRYPTOKEYSSTORELOAD">xmlSecMSCryptoKeysStoreLoad</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>char</font> *uri,
- <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);
-<font>int</font> <a href="xmlsec-mscrypto-keysstore.html#XMLSECMSCRYPTOKEYSSTORESAVE">xmlSecMSCryptoKeysStoreSave</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
+<a name="AEN45051"></a><h2>Name</h2>keysstore -- Keys store implementation for MS Crypto.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MSCRYPTO-KEYSSTORE.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN45056"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyStoreId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-keysstore.html#XMLSECMSCRYPTOKEYSSTOREGETKLASS">xmlSecMSCryptoKeysStoreGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-keysstore.html#XMLSECMSCRYPTOKEYSSTOREADOPTKEY">xmlSecMSCryptoKeysStoreAdoptKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-keysstore.html#XMLSECMSCRYPTOKEYSSTORELOAD">xmlSecMSCryptoKeysStoreLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-keysstore.html#XMLSECMSCRYPTOKEYSSTORESAVE">xmlSecMSCryptoKeysStoreSave</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MSCRYPTO-KEYSSTORE.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN45089"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody><tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-keysstore.html#XMLSECMSCRYPTOKEYSSTOREID">xmlSecMSCryptoKeysStoreId</a></td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-MSCRYPTO-KEYSSTORE.DESCRIPTION"></a><h2>Description</h2>
<p>Keys store implementation for MS Crypto.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-MSCRYPTO-KEYSSTORE.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYSSTOREID"></a><h3>xmlSecMSCryptoKeysStoreId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeysStoreId xmlSecMSCryptoKeysStoreGetKlass()</pre>
-<p>A MSCrypto keys store klass id.</p>
-<p></p>
-</div>
-<hr>
+<a name="XMLSEC-MSCRYPTO-KEYSSTORE.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYSSTOREGETKLASS"></a><h3>xmlSecMSCryptoKeysStoreGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyStoreId</font> xmlSecMSCryptoKeysStoreGetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyStoreId</span></font>
+xmlSecMSCryptoKeysStoreGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The MSCrypto list based keys store klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33581"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> MSCrypto list based keys store klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN45111"></a><h4>Returns</h4>
+<p> MSCrypto list based keys store klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYSSTOREADOPTKEY"></a><h3>xmlSecMSCryptoKeysStoreAdoptKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoKeysStoreAdoptKey (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Adds <code class="PARAMETER">key</code> to the <code class="PARAMETER">store</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoKeysStoreAdoptKey (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Adds <code class="PARAMETER">key</code>
+ to the <code class="PARAMETER">store</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN45130"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33599"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to MSCrypto keys store.</p></td>
-</tr>
+<a name="AEN45132"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33604"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to MSCrypto keys store.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33609"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN45147"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYSSTORELOAD"></a><h3>xmlSecMSCryptoKeysStoreLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoKeysStoreLoad (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>char</font> *uri,
- <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoKeysStoreLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *uri</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> keysMngr</code>);</pre>
<p>Reads keys from an XML file.</p>
+<div class="REFSECT3">
+<a name="AEN45167"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN45169"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33626"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to MSCrypto keys store.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to MSCrypto keys store.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33631"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the filename.</p></td>
+<td><p>uri</p></td>
+<td><p>the filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33636"><span style="white-space: nowrap"><code class="PARAMETER">keysMngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to associated keys manager.</p></td>
+<td><p>keysMngr</p></td>
+<td><p>the pointer to associated keys manager.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33641"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN45190"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYSSTORESAVE"></a><h3>xmlSecMSCryptoKeysStoreSave ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoKeysStoreSave (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Writes keys from <code class="PARAMETER">store</code> to an XML file.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoKeysStoreSave (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Writes keys from <code class="PARAMETER">store</code>
+ to an XML file.</p>
+<div class="REFSECT3">
+<a name="AEN45211"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN45213"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33659"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to MSCrypto keys store.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to MSCrypto keys store.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33664"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the filename.</p></td>
+<td><p>filename</p></td>
+<td><p>the filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33669"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the saved keys type (public, private, ...).</p></td>
+<td><p>type</p></td>
+<td><p>the saved keys type (public, private, ...).</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33674"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN45234"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MSCRYPTO-KEYSSTORE.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYSSTOREID"></a><h3>xmlSecMSCryptoKeysStoreId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeysStoreId xmlSecMSCryptoKeysStoreGetKlass()</pre>
+<p>A MSCrypto keys store klass id.</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-mscrypto-ref.html b/docs/api/xmlsec-mscrypto-ref.html
index 78e7828..1d71e0e 100644
--- a/docs/api/xmlsec-mscrypto-ref.html
+++ b/docs/api/xmlsec-mscrypto-ref.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library API Reference." href="xmlsec-reference.html">
<link rel="PREVIOUS" title="x509" href="xmlsec-nss-x509.html">
<link rel="NEXT" title="app" href="xmlsec-mscrypto-app.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-nss-x509.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-reference.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-nss-x509.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-mscrypto-app.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-mscrypto-app.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-mscrypto-x509.html b/docs/api/xmlsec-mscrypto-x509.html
index 04cc7f8..63e2bcb 100644
--- a/docs/api/xmlsec-mscrypto-x509.html
+++ b/docs/api/xmlsec-mscrypto-x509.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for MSCrypto API Reference." href="xmlsec-mscrypto-ref.html">
<link rel="PREVIOUS" title="keysstore" href="xmlsec-mscrypto-keysstore.html">
<link rel="NEXT" title="XML Security Library Reference Index" href="xmlsec-index.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,414 +101,672 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-mscrypto-keysstore.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-mscrypto-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-mscrypto-keysstore.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-mscrypto-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-index.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-index.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-MSCRYPTO-X509"></a>x509</h1>
<div class="REFNAMEDIV">
-<a name="AEN33684"></a><h2>Name</h2>x509 -- X509 certificates support implementation for MS Crypto.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-MSCRYPTO-X509.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">#define <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509ID">xmlSecMSCryptoKeyDataX509Id</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509GETKLASS">xmlSecMSCryptoKeyDataX509GetKlass</a> (void);
-<font>PCCERT_CONTEXT</font> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509GETKEYCERT">xmlSecMSCryptoKeyDataX509GetKeyCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509ADOPTKEYCERT">xmlSecMSCryptoKeyDataX509AdoptKeyCert</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>PCCERT_CONTEXT</font> cert);
-<font>int</font> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509ADOPTCERT">xmlSecMSCryptoKeyDataX509AdoptCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>PCCERT_CONTEXT</font> cert);
-<font>PCCERT_CONTEXT</font> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509GETCERT">xmlSecMSCryptoKeyDataX509GetCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);
-<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509GETCERTSSIZE">xmlSecMSCryptoKeyDataX509GetCertsSize</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509ADOPTCRL">xmlSecMSCryptoKeyDataX509AdoptCrl</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>PCCRL_CONTEXT</font> crl);
-<font>PCCRL_CONTEXT</font> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509GETCRL">xmlSecMSCryptoKeyDataX509GetCrl</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);
-<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509GETCRLSSIZE">xmlSecMSCryptoKeyDataX509GetCrlsSize</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-#define <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATARAWX509CERTID">xmlSecMSCryptoKeyDataRawX509CertId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATARAWX509CERTGETKLASS">xmlSecMSCryptoKeyDataRawX509CertGetKlass</a>
- (void);
-#define <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOX509STOREID">xmlSecMSCryptoX509StoreId</a>
-<font>xmlSecKeyDataStoreId</font> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOX509STOREGETKLASS">xmlSecMSCryptoX509StoreGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOX509STOREADOPTCERT">xmlSecMSCryptoX509StoreAdoptCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>PCCERT_CONTEXT</font> cert,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOX509STOREADOPTKEYSTORE">xmlSecMSCryptoX509StoreAdoptKeyStore</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>HCERTSTORE</font> keyStore);
-<font>int</font> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOX509STOREADOPTTRUSTEDSTORE">xmlSecMSCryptoX509StoreAdoptTrustedStore</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>HCERTSTORE</font> trustedStore);
-<font>int</font> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOX509STOREADOPTUNTRUSTEDSTORE">xmlSecMSCryptoX509StoreAdoptUntrustedStore</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>HCERTSTORE</font> untrustedStore);
-<font>void</font> <a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOX509STOREENABLESYSTEMTRUSTEDCERTS">xmlSecMSCryptoX509StoreEnableSystemTrustedCerts</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>int</font> val);</pre>
+<a name="AEN45250"></a><h2>Name</h2>x509 -- X509 certificates support implementation for MS Crypto.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MSCRYPTO-X509.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN45255"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509GETKLASS">xmlSecMSCryptoKeyDataX509GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">PCCERT_CONTEXT</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509GETKEYCERT">xmlSecMSCryptoKeyDataX509GetKeyCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509ADOPTKEYCERT">xmlSecMSCryptoKeyDataX509AdoptKeyCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509ADOPTCERT">xmlSecMSCryptoKeyDataX509AdoptCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">PCCERT_CONTEXT</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509GETCERT">xmlSecMSCryptoKeyDataX509GetCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509GETCERTSSIZE">xmlSecMSCryptoKeyDataX509GetCertsSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509ADOPTCRL">xmlSecMSCryptoKeyDataX509AdoptCrl</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">PCCRL_CONTEXT</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509GETCRL">xmlSecMSCryptoKeyDataX509GetCrl</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509GETCRLSSIZE">xmlSecMSCryptoKeyDataX509GetCrlsSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATARAWX509CERTGETKLASS">xmlSecMSCryptoKeyDataRawX509CertGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataStoreId</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOX509STOREGETKLASS">xmlSecMSCryptoX509StoreGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOX509STOREADOPTCERT">xmlSecMSCryptoX509StoreAdoptCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOX509STOREADOPTKEYSTORE">xmlSecMSCryptoX509StoreAdoptKeyStore</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOX509STOREADOPTTRUSTEDSTORE">xmlSecMSCryptoX509StoreAdoptTrustedStore</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOX509STOREADOPTUNTRUSTEDSTORE">xmlSecMSCryptoX509StoreAdoptUntrustedStore</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOX509STOREENABLESYSTEMTRUSTEDCERTS">xmlSecMSCryptoX509StoreEnableSystemTrustedCerts</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MSCRYPTO-X509.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN45372"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATAX509ID">xmlSecMSCryptoKeyDataX509Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOKEYDATARAWX509CERTID">xmlSecMSCryptoKeyDataRawX509CertId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-mscrypto-x509.html#XMLSECMSCRYPTOX509STOREID">xmlSecMSCryptoX509StoreId</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-MSCRYPTO-X509.DESCRIPTION"></a><h2>Description</h2>
<p>X509 certificates support implementation for MS Crypto.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-MSCRYPTO-X509.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYDATAX509ID"></a><h3>xmlSecMSCryptoKeyDataX509Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeyDataX509Id</pre>
-<p>The MSCrypto X509 data klass.</p>
-<p></p>
-</div>
-<hr>
+<a name="XMLSEC-MSCRYPTO-X509.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAX509GETKLASS"></a><h3>xmlSecMSCryptoKeyDataX509GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecMSCryptoKeyDataX509GetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecMSCryptoKeyDataX509GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The MSCrypto X509 key data klass (http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-X509Data</span></font>).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33772"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the X509 data klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN45404"></a><h4>Returns</h4>
+<p> the X509 data klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAX509GETKEYCERT"></a><h3>xmlSecMSCryptoKeyDataX509GetKeyCert ()</h3>
-<pre class="PROGRAMLISTING"><font>PCCERT_CONTEXT</font> xmlSecMSCryptoKeyDataX509GetKeyCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">PCCERT_CONTEXT</span></font>
+xmlSecMSCryptoKeyDataX509GetKeyCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
<p>Gets the certificate from which the key was extracted.</p>
+<div class="REFSECT3">
+<a name="AEN45418"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN45420"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33787"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33792"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key's certificate or NULL if key data was not used for key
-extraction or an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN45429"></a><h4>Returns</h4>
+<p> the key's certificate or NULL if key data was not used for key
+extraction or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAX509ADOPTKEYCERT"></a><h3>xmlSecMSCryptoKeyDataX509AdoptKeyCert ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoKeyDataX509AdoptKeyCert
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>PCCERT_CONTEXT</font> cert);</pre>
-<p>Sets the key's certificate in <code class="PARAMETER">data</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoKeyDataX509AdoptKeyCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">PCCERT_CONTEXT</span></font> cert</code>);</pre>
+<p>Sets the key's certificate in <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN45447"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN45449"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>cert</p></td>
+<td><p>the pointer to MSCRYPTO X509 certificate.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33809"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33814"><span style="white-space: nowrap"><code class="PARAMETER">cert</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to MSCRYPTO X509 certificate.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33819"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN45464"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAX509ADOPTCERT"></a><h3>xmlSecMSCryptoKeyDataX509AdoptCert ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoKeyDataX509AdoptCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>PCCERT_CONTEXT</font> cert);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoKeyDataX509AdoptCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">PCCERT_CONTEXT</span></font> cert</code>);</pre>
<p>Adds certificate to the X509 key data.</p>
+<div class="REFSECT3">
+<a name="AEN45481"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33835"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
+<a name="AEN45483"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33840"><span style="white-space: nowrap"><code class="PARAMETER">cert</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to MSCRYPTO X509 certificate.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33845"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>cert</p></td>
+<td><p>the pointer to MSCRYPTO X509 certificate.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN45498"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAX509GETCERT"></a><h3>xmlSecMSCryptoKeyDataX509GetCert ()</h3>
-<pre class="PROGRAMLISTING"><font>PCCERT_CONTEXT</font> xmlSecMSCryptoKeyDataX509GetCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">PCCERT_CONTEXT</span></font>
+xmlSecMSCryptoKeyDataX509GetCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> pos</code>);</pre>
<p>Gets a certificate from X509 key data.</p>
+<div class="REFSECT3">
+<a name="AEN45515"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33861"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
+<a name="AEN45517"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33866"><span style="white-space: nowrap"><code class="PARAMETER">pos</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired certificate position.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33871"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to certificate or NULL if <code class="PARAMETER">pos</code> is larger than the
-number of certificates in <code class="PARAMETER">data</code> or an error occurs.</p></td>
+<td><p>pos</p></td>
+<td><p>the desired certificate position.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN45532"></a><h4>Returns</h4>
+<p> the pointer to certificate or NULL if <code class="PARAMETER">pos</code>
+is larger than the
+number of certificates in <code class="PARAMETER">data</code>
+or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAX509GETCERTSSIZE"></a><h3>xmlSecMSCryptoKeyDataX509GetCertsSize ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecMSCryptoKeyDataX509GetCertsSize
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the number of certificates in <code class="PARAMETER">data</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a>
+xmlSecMSCryptoKeyDataX509GetCertsSize (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the number of certificates in <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN45549"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN45551"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33889"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33894"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> te number of certificates in <code class="PARAMETER">data</code>.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN45560"></a><h4>Returns</h4>
+<p> te number of certificates in <code class="PARAMETER">data</code>
+.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAX509ADOPTCRL"></a><h3>xmlSecMSCryptoKeyDataX509AdoptCrl ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoKeyDataX509AdoptCrl (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>PCCRL_CONTEXT</font> crl);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoKeyDataX509AdoptCrl (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">PCCRL_CONTEXT</span></font> crl</code>);</pre>
<p>Adds CRL to the X509 key data.</p>
+<div class="REFSECT3">
+<a name="AEN45578"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN45580"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33911"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33916"><span style="white-space: nowrap"><code class="PARAMETER">crl</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to MSCrypto X509 CRL.</p></td>
+<td><p>crl</p></td>
+<td><p>the pointer to MSCrypto X509 CRL.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33921"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN45595"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAX509GETCRL"></a><h3>xmlSecMSCryptoKeyDataX509GetCrl ()</h3>
-<pre class="PROGRAMLISTING"><font>PCCRL_CONTEXT</font> xmlSecMSCryptoKeyDataX509GetCrl (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">PCCRL_CONTEXT</span></font>
+xmlSecMSCryptoKeyDataX509GetCrl (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> pos</code>);</pre>
<p>Gets a CRL from X509 key data.</p>
+<div class="REFSECT3">
+<a name="AEN45612"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN45614"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33937"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33942"><span style="white-space: nowrap"><code class="PARAMETER">pos</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired CRL position.</p></td>
+<td><p>pos</p></td>
+<td><p>the desired CRL position.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33947"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to CRL or NULL if <code class="PARAMETER">pos</code> is larger than the
-number of CRLs in <code class="PARAMETER">data</code> or an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN45629"></a><h4>Returns</h4>
+<p> the pointer to CRL or NULL if <code class="PARAMETER">pos</code>
+is larger than the
+number of CRLs in <code class="PARAMETER">data</code>
+or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATAX509GETCRLSSIZE"></a><h3>xmlSecMSCryptoKeyDataX509GetCrlsSize ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecMSCryptoKeyDataX509GetCrlsSize
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the number of CRLs in <code class="PARAMETER">data</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a>
+xmlSecMSCryptoKeyDataX509GetCrlsSize (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the number of CRLs in <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN45646"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN45648"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33965"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN33970"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> te number of CRLs in <code class="PARAMETER">data</code>.</p></td>
-</tr>
-</tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOKEYDATARAWX509CERTID"></a><h3>xmlSecMSCryptoKeyDataRawX509CertId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeyDataRawX509CertId</pre>
-<p>The MSCrypto raw X509 certificate klass.</p>
-<p></p>
+</div>
+<div class="REFSECT3">
+<a name="AEN45657"></a><h4>Returns</h4>
+<p> te number of CRLs in <code class="PARAMETER">data</code>
+.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOKEYDATARAWX509CERTGETKLASS"></a><h3>xmlSecMSCryptoKeyDataRawX509CertGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecMSCryptoKeyDataRawX509CertGetKlass
- (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecMSCryptoKeyDataRawX509CertGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The raw X509 certificates key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN33992"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> raw X509 certificates key data klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN45671"></a><h4>Returns</h4>
+<p> raw X509 certificates key data klass.</p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECMSCRYPTOX509STOREID"></a><h3>xmlSecMSCryptoX509StoreId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecMSCryptoX509StoreId</pre>
-<p>The MSCrypto X509 store klass.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOX509STOREGETKLASS"></a><h3>xmlSecMSCryptoX509StoreGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataStoreId</font> xmlSecMSCryptoX509StoreGetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataStoreId</span></font>
+xmlSecMSCryptoX509StoreGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The MSCrypto X509 certificates key data store klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN34013"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to MSCrypto X509 certificates key data store klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN45684"></a><h4>Returns</h4>
+<p> pointer to MSCrypto X509 certificates key data store klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOX509STOREADOPTCERT"></a><h3>xmlSecMSCryptoX509StoreAdoptCert ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoX509StoreAdoptCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>PCCERT_CONTEXT</font> cert,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoX509StoreAdoptCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><font><span class="TYPE">PCCERT_CONTEXT</span></font> cert</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
<p>Adds trusted (root) or untrusted certificate to the store.</p>
+<div class="REFSECT3">
+<a name="AEN45704"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN45706"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34030"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data store klass.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to X509 key data store klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34035"><span style="white-space: nowrap"><code class="PARAMETER">cert</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to PCCERT_CONTEXT X509 certificate.</p></td>
+<td><p>cert</p></td>
+<td><p>the pointer to PCCERT_CONTEXT X509 certificate.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34040"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate type (trusted/untrusted).</p></td>
+<td><p>type</p></td>
+<td><p>the certificate type (trusted/untrusted).</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34045"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN45727"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOX509STOREADOPTKEYSTORE"></a><h3>xmlSecMSCryptoX509StoreAdoptKeyStore ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoX509StoreAdoptKeyStore
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>HCERTSTORE</font> keyStore);</pre>
-<p>Adds <code class="PARAMETER">keyStore</code> to the list of key stores.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoX509StoreAdoptKeyStore (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><font><span class="TYPE">HCERTSTORE</span></font> keyStore</code>);</pre>
+<p>Adds <code class="PARAMETER">keyStore</code>
+ to the list of key stores.</p>
+<div class="REFSECT3">
+<a name="AEN45745"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN45747"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>store</p></td>
+<td><p>the pointer to X509 key data store klass.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>keyStore</p></td>
+<td><p>the pointer to keys store.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34062"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data store klass.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34067"><span style="white-space: nowrap"><code class="PARAMETER">keyStore</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys store.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34072"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN45762"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOX509STOREADOPTTRUSTEDSTORE"></a><h3>xmlSecMSCryptoX509StoreAdoptTrustedStore ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoX509StoreAdoptTrustedStore
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>HCERTSTORE</font> trustedStore);</pre>
-<p>Adds <code class="PARAMETER">trustedStore</code> to the list of trusted certs stores.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoX509StoreAdoptTrustedStore
+ (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><font><span class="TYPE">HCERTSTORE</span></font> trustedStore</code>);</pre>
+<p>Adds <code class="PARAMETER">trustedStore</code>
+ to the list of trusted certs stores.</p>
+<div class="REFSECT3">
+<a name="AEN45780"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN45782"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>store</p></td>
+<td><p>the pointer to X509 key data store klass.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>trustedStore</p></td>
+<td><p>the pointer to certs store.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34089"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data store klass.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34094"><span style="white-space: nowrap"><code class="PARAMETER">trustedStore</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to certs store.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34099"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN45797"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOX509STOREADOPTUNTRUSTEDSTORE"></a><h3>xmlSecMSCryptoX509StoreAdoptUntrustedStore ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecMSCryptoX509StoreAdoptUntrustedStore
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>HCERTSTORE</font> untrustedStore);</pre>
-<p>Adds <code class="PARAMETER">trustedStore</code> to the list of un-trusted certs stores.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecMSCryptoX509StoreAdoptUntrustedStore
+ (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><font><span class="TYPE">HCERTSTORE</span></font> untrustedStore</code>);</pre>
+<p>Adds <code class="PARAMETER">trustedStore</code>
+ to the list of un-trusted certs stores.</p>
+<div class="REFSECT3">
+<a name="AEN45815"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN45817"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>store</p></td>
+<td><p>the pointer to X509 key data store klass.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>untrustedStore</p></td>
+<td><p>the pointer to certs store.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34116"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data store klass.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34121"><span style="white-space: nowrap"><code class="PARAMETER">untrustedStore</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to certs store.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34126"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN45832"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECMSCRYPTOX509STOREENABLESYSTEMTRUSTEDCERTS"></a><h3>xmlSecMSCryptoX509StoreEnableSystemTrustedCerts ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecMSCryptoX509StoreEnableSystemTrustedCerts
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>int</font> val);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecMSCryptoX509StoreEnableSystemTrustedCerts
+ (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> val</code>);</pre>
<p>Enables/disables the system trusted certs.</p>
+<div class="REFSECT3">
+<a name="AEN45849"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN45851"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34142"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data store klass.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to X509 key data store klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN34147"><span style="white-space: nowrap"><code class="PARAMETER">val</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the enable/disable flag</p></td>
+<td><p>val</p></td>
+<td><p>the enable/disable flag</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-MSCRYPTO-X509.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYDATAX509ID"></a><h3>xmlSecMSCryptoKeyDataX509Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeyDataX509Id</pre>
+<p>The MSCrypto X509 data klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOKEYDATARAWX509CERTID"></a><h3>xmlSecMSCryptoKeyDataRawX509CertId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecMSCryptoKeyDataRawX509CertId</pre>
+<p>The MSCrypto raw X509 certificate klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECMSCRYPTOX509STOREID"></a><h3>xmlSecMSCryptoX509StoreId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecMSCryptoX509StoreId</pre>
+<p>The MSCrypto X509 store klass.</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-mscrypto.sgml b/docs/api/xmlsec-mscrypto.sgml
deleted file mode 100644
index dc58235..0000000
--- a/docs/api/xmlsec-mscrypto.sgml
+++ /dev/null
@@ -1,21 +0,0 @@
-<!doctype book PUBLIC "-//DavenPort//DTD DocBook V3.0//EN" [
-<!ENTITY xmlsec-mscrypto-certkeys SYSTEM "sgml/certkeys.sgml">
-<!ENTITY xmlsec-mscrypto-app SYSTEM "sgml/app.sgml">
-<!ENTITY xmlsec-mscrypto-crypto SYSTEM "sgml/crypto.sgml">
-<!ENTITY xmlsec-mscrypto-keysstore SYSTEM "sgml/keysstore.sgml">
-<!ENTITY xmlsec-mscrypto-x509 SYSTEM "sgml/x509.sgml">
-]>
-<book id="index">
- <bookinfo>
- <title>[Insert name here] Reference Manual</title>
- </bookinfo>
-
- <chapter>
- <title>[Insert title here]</title>
- &xmlsec-mscrypto-certkeys;
- &xmlsec-mscrypto-app;
- &xmlsec-mscrypto-crypto;
- &xmlsec-mscrypto-keysstore;
- &xmlsec-mscrypto-x509;
- </chapter>
-</book>
diff --git a/docs/api/xmlsec-nodeset.html b/docs/api/xmlsec-nodeset.html
index 21014cc..4d4e831 100644
--- a/docs/api/xmlsec-nodeset.html
+++ b/docs/api/xmlsec-nodeset.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="membuf" href="xmlsec-membuf.html">
<link rel="NEXT" title="parser" href="xmlsec-parser.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,473 +101,765 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-membuf.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-membuf.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-parser.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-parser.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-NODESET"></a>nodeset</h1>
<div class="REFNAMEDIV">
-<a name="AEN11739"></a><h2>Name</h2>nodeset -- Nodeset object implementation.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-NODESET.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">enum <a href="xmlsec-nodeset.html#XMLSECNODESETTYPE">xmlSecNodeSetType</a>;
-enum <a href="xmlsec-nodeset.html#XMLSECNODESETOP">xmlSecNodeSetOp</a>;
-struct <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSet</a>;
-<font>int</font> (<a href="xmlsec-nodeset.html#XMLSECNODESETWALKCALLBACK">*xmlSecNodeSetWalkCallback</a>) (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
- <font>xmlNodePtr</font> cur,
- <font>xmlNodePtr</font> parent,
- <font>void</font> *data);
-<font>xmlSecNodeSetPtr</font> <a href="xmlsec-nodeset.html#XMLSECNODESETCREATE">xmlSecNodeSetCreate</a> (<font>xmlDocPtr</font> doc,
- <font>xmlNodeSetPtr</font> nodes,
- <a href="xmlsec-nodeset.html#XMLSECNODESETTYPE">xmlSecNodeSetType</a> type);
-<font>void</font> <a href="xmlsec-nodeset.html#XMLSECNODESETDESTROY">xmlSecNodeSetDestroy</a> (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset);
-<font>void</font> <a href="xmlsec-nodeset.html#XMLSECNODESETDOCDESTROY">xmlSecNodeSetDocDestroy</a> (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset);
-<font>int</font> <a href="xmlsec-nodeset.html#XMLSECNODESETCONTAINS">xmlSecNodeSetContains</a> (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
- <font>xmlNodePtr</font> node,
- <font>xmlNodePtr</font> parent);
-<font>xmlSecNodeSetPtr</font> <a href="xmlsec-nodeset.html#XMLSECNODESETADD">xmlSecNodeSetAdd</a> (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> newNSet,
- <a href="xmlsec-nodeset.html#XMLSECNODESETOP">xmlSecNodeSetOp</a> op);
-<font>xmlSecNodeSetPtr</font> <a href="xmlsec-nodeset.html#XMLSECNODESETADDLIST">xmlSecNodeSetAddList</a> (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> newNSet,
- <a href="xmlsec-nodeset.html#XMLSECNODESETOP">xmlSecNodeSetOp</a> op);
-<font>xmlSecNodeSetPtr</font> <a href="xmlsec-nodeset.html#XMLSECNODESETGETCHILDREN">xmlSecNodeSetGetChildren</a> (<font>xmlDocPtr</font> doc,
- const <font>xmlNodePtr</font> parent,
- <font>int</font> withComments,
- <font>int</font> invert);
-<font>int</font> <a href="xmlsec-nodeset.html#XMLSECNODESETWALK">xmlSecNodeSetWalk</a> (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
- <a href="xmlsec-nodeset.html#XMLSECNODESETWALKCALLBACK">xmlSecNodeSetWalkCallback</a> walkFunc,
- <font>void</font> *data);
-<font>int</font> <a href="xmlsec-nodeset.html#XMLSECNODESETDUMPTEXTNODES">xmlSecNodeSetDumpTextNodes</a> (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
- <font>xmlOutputBufferPtr</font> out);
-<font>void</font> <a href="xmlsec-nodeset.html#XMLSECNODESETDEBUGDUMP">xmlSecNodeSetDebugDump</a> (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
- <font>FILE</font> *output);</pre>
-</div>
+<a name="AEN15921"></a><h2>Name</h2>nodeset -- Nodeset object implementation.</div>
<div class="REFSECT1">
-<a name="XMLSEC-NODESET.DESCRIPTION"></a><h2>Description</h2>
-<p>Nodeset object implementation.</p>
-</div>
-<div class="REFSECT1">
-<a name="XMLSEC-NODESET.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECNODESETTYPE"></a><h3>enum xmlSecNodeSetType</h3>
-<pre class="PROGRAMLISTING">typedef enum {
- xmlSecNodeSetNormal = 0,
- xmlSecNodeSetInvert,
- xmlSecNodeSetTree,
- xmlSecNodeSetTreeWithoutComments,
- xmlSecNodeSetTreeInvert,
- xmlSecNodeSetTreeWithoutCommentsInvert,
- xmlSecNodeSetList
-} xmlSecNodeSetType;</pre>
-<p>The basic nodes sets types.</p>
+<a name="XMLSEC-NODESET.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN15926"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-nodeset.html#XMLSECNODESETWALKCALLBACK">*xmlSecNodeSetWalkCallback</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECNODESETNORMAL"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetNormal</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> nodes set = nodes in the list.</p></td>
+<td><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="RETURNVALUE">xmlSecNodeSetPtr</span></a></td>
+<td>
+<a href="xmlsec-nodeset.html#XMLSECNODESETCREATE">xmlSecNodeSetCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECNODESETINVERT"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetInvert</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> nodes set = all document nodes minus nodes in the list.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-nodeset.html#XMLSECNODESETDESTROY">xmlSecNodeSetDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECNODESETTREE"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetTree</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> nodes set = nodes in the list and all their subtress.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-nodeset.html#XMLSECNODESETDOCDESTROY">xmlSecNodeSetDocDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECNODESETTREEWITHOUTCOMMENTS"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetTreeWithoutComments</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> nodes set = nodes in the list and
- all their subtress but no comment nodes.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nodeset.html#XMLSECNODESETCONTAINS">xmlSecNodeSetContains</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECNODESETTREEINVERT"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetTreeInvert</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> nodes set = all document nodes minus nodes in the
- list and all their subtress.</p></td>
+<td><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="RETURNVALUE">xmlSecNodeSetPtr</span></a></td>
+<td>
+<a href="xmlsec-nodeset.html#XMLSECNODESETADD">xmlSecNodeSetAdd</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECNODESETTREEWITHOUTCOMMENTSINVERT"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetTreeWithoutCommentsInvert</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> nodes set = all document nodes
- minus (nodes in the list and all their subtress
- plus all comment nodes).</p></td>
+<td><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="RETURNVALUE">xmlSecNodeSetPtr</span></a></td>
+<td>
+<a href="xmlsec-nodeset.html#XMLSECNODESETADDLIST">xmlSecNodeSetAddList</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECNODESETLIST"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetList</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> nodes set = all nodes in the chidren list of nodes sets.</p></td>
+<td><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="RETURNVALUE">xmlSecNodeSetPtr</span></a></td>
+<td>
+<a href="xmlsec-nodeset.html#XMLSECNODESETGETCHILDREN">xmlSecNodeSetGetChildren</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNODESETOP"></a><h3>enum xmlSecNodeSetOp</h3>
-<pre class="PROGRAMLISTING">typedef enum {
- xmlSecNodeSetIntersection = 0,
- xmlSecNodeSetSubtraction,
- xmlSecNodeSetUnion
-} xmlSecNodeSetOp;</pre>
-<p>The simple nodes sets operations.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECNODESETINTERSECTION"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetIntersection</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> intersection.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nodeset.html#XMLSECNODESETWALK">xmlSecNodeSetWalk</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECNODESETSUBTRACTION"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetSubtraction</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> subtraction.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nodeset.html#XMLSECNODESETDUMPTEXTNODES">xmlSecNodeSetDumpTextNodes</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECNODESETUNION"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetUnion</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> union.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-nodeset.html#XMLSECNODESETDEBUGDUMP">xmlSecNodeSetDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNODESET"></a><h3>struct xmlSecNodeSet</h3>
-<pre class="PROGRAMLISTING">struct xmlSecNodeSet {
- xmlNodeSetPtr nodes;
- xmlDocPtr doc;
- int destroyDoc;
- xmlSecNodeSetType type;
- xmlSecNodeSetOp op;
- xmlSecNodeSetPtr next;
- xmlSecNodeSetPtr prev;
- xmlSecNodeSetPtr children;
-};</pre>
-<p>The enchanced nodes set.</p>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NODESET.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11878"><span style="white-space: nowrap"><font>xmlNodeSetPtr</font> <code class="STRUCTFIELD">nodes</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the nodes list.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11884"><span style="white-space: nowrap"><font>xmlDocPtr</font> <code class="STRUCTFIELD">doc</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the parent XML document.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11890"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">destroyDoc</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag: if set to 1 then <code class="PARAMETER">doc</code> will
- be destroyed when node set is destroyed.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11897"><span style="white-space: nowrap"><a href="xmlsec-nodeset.html#XMLSECNODESETTYPE">xmlSecNodeSetType</a> <code class="STRUCTFIELD">type</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the nodes set type.</p></td>
-</tr>
+<a name="AEN16010"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11903"><span style="white-space: nowrap"><a href="xmlsec-nodeset.html#XMLSECNODESETOP">xmlSecNodeSetOp</a> <code class="STRUCTFIELD">op</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the operation type.</p></td>
+<td>enum</td>
+<td><a href="xmlsec-nodeset.html#XMLSECNODESETTYPE">xmlSecNodeSetType</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11909"><span style="white-space: nowrap"><a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> <code class="STRUCTFIELD">next</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the next nodes set.</p></td>
+<td>enum</td>
+<td><a href="xmlsec-nodeset.html#XMLSECNODESETOP">xmlSecNodeSetOp</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11915"><span style="white-space: nowrap"><a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> <code class="STRUCTFIELD">prev</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the previous nodes set.</p></td>
+<td>struct</td>
+<td><a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSet</a></td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11921"><span style="white-space: nowrap"><a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> <code class="STRUCTFIELD">children</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the children list (valid only if type
- equal to <a href="xmlsec-nodeset.html#XMLSECNODESETLIST"><span class="TYPE">xmlSecNodeSetList</span></a>).</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
</div>
-<hr>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NODESET.DESCRIPTION"></a><h2>Description</h2>
+<p>Nodeset object implementation.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NODESET.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECNODESETWALKCALLBACK"></a><h3>xmlSecNodeSetWalkCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecNodeSetWalkCallback) (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
- <font>xmlNodePtr</font> cur,
- <font>xmlNodePtr</font> parent,
- <font>void</font> *data);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecNodeSetWalkCallback<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> nset</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> cur</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> parent</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *data</code>);</pre>
<p>The callback function called once per each node in the nodes set.</p>
+<div class="REFSECT3">
+<a name="AEN16052"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11942"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSet</span></a> structure.</p></td>
-</tr>
+<a name="AEN16054"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11949"><span style="white-space: nowrap"><code class="PARAMETER">cur</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer current XML node.</p></td>
+<td><p>nset</p></td>
+<td><p>the pointer to <a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSet</span></a> structure.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11954"><span style="white-space: nowrap"><code class="PARAMETER">parent</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the <code class="PARAMETER">cur</code> parent node.</p></td>
+<td><p>cur</p></td>
+<td><p>the pointer current XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11960"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to application specific data.</p></td>
+<td><p>parent</p></td>
+<td><p>the pointer to the <code class="PARAMETER">cur</code>
+parent node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11965"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs
-an walk procedure should be interrupted.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to application specific data.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN16084"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs
+an walk procedure should be interrupted.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNODESETCREATE"></a><h3>xmlSecNodeSetCreate ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecNodeSetPtr</font> xmlSecNodeSetCreate (<font>xmlDocPtr</font> doc,
- <font>xmlNodeSetPtr</font> nodes,
- <a href="xmlsec-nodeset.html#XMLSECNODESETTYPE">xmlSecNodeSetType</a> type);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="RETURNVALUE">xmlSecNodeSetPtr</span></a>
+xmlSecNodeSetCreate (<code class="PARAMETER"><font><span class="TYPE">xmlDocPtr</span></font> doc</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodeSetPtr</span></font> nodes</code>,
+ <code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESETTYPE"><span class="TYPE">xmlSecNodeSetType</span></a> type</code>);</pre>
<p>Creates new nodes set. Caller is responsible for freeing returned object
by calling <a href="xmlsec-nodeset.html#XMLSECNODESETDESTROY"><span class="TYPE">xmlSecNodeSetDestroy</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN16106"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11984"><span style="white-space: nowrap"><code class="PARAMETER">doc</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to parent XML document.</p></td>
-</tr>
+<a name="AEN16108"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11989"><span style="white-space: nowrap"><code class="PARAMETER">nodes</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list of nodes.</p></td>
+<td><p>doc</p></td>
+<td><p>the pointer to parent XML document.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11994"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the nodes set type.</p></td>
+<td><p>nodes</p></td>
+<td><p>the list of nodes.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN11999"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly allocated node set or NULL if an error occurs.</p></td>
+<td><p>type</p></td>
+<td><p>the nodes set type.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN16129"></a><h4>Returns</h4>
+<p> pointer to newly allocated node set or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNODESETDESTROY"></a><h3>xmlSecNodeSetDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecNodeSetDestroy (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecNodeSetDestroy (<code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> nset</code>);</pre>
<p>Destroys the nodes set created with <a href="xmlsec-nodeset.html#XMLSECNODESETCREATE"><span class="TYPE">xmlSecNodeSetCreate</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN16145"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN16147"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>nset</p></td>
+<td><p>the pointer to node set.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN12016"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node set.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNODESETDOCDESTROY"></a><h3>xmlSecNodeSetDocDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecNodeSetDocDestroy (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecNodeSetDocDestroy (<code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> nset</code>);</pre>
<p>Instructs node set to destroy nodes parent doc when node set is destroyed.</p>
+<div class="REFSECT3">
+<a name="AEN16167"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN16169"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>nset</p></td>
+<td><p>the pointer to node set.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN12031"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node set.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNODESETCONTAINS"></a><h3>xmlSecNodeSetContains ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNodeSetContains (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
- <font>xmlNodePtr</font> node,
- <font>xmlNodePtr</font> parent);</pre>
-<p>Checks whether the <code class="PARAMETER">node</code> is in the nodes set or not.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNodeSetContains (<code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> nset</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> parent</code>);</pre>
+<p>Checks whether the <code class="PARAMETER">node</code>
+ is in the nodes set or not.</p>
+<div class="REFSECT3">
+<a name="AEN16196"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12049"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node set.</p></td>
-</tr>
+<a name="AEN16198"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12054"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to XML node to check.</p></td>
+<td><p>nset</p></td>
+<td><p>the pointer to node set.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12059"><span style="white-space: nowrap"><code class="PARAMETER">parent</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <code class="PARAMETER">node</code> parent node.</p></td>
+<td><p>node</p></td>
+<td><p>the pointer to XML node to check.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12065"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 1 if the <code class="PARAMETER">node</code> is in the nodes set <code class="PARAMETER">nset</code>, 0 if it is not
-and a negative value if an error occurs.</p></td>
+<td><p>parent</p></td>
+<td><p>the pointer to <code class="PARAMETER">node</code>
+parent node.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN16220"></a><h4>Returns</h4>
+<p> 1 if the <code class="PARAMETER">node</code>
+is in the nodes set <code class="PARAMETER">nset</code>
+, 0 if it is not
+and a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNODESETADD"></a><h3>xmlSecNodeSetAdd ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecNodeSetPtr</font> xmlSecNodeSetAdd (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> newNSet,
- <a href="xmlsec-nodeset.html#XMLSECNODESETOP">xmlSecNodeSetOp</a> op);</pre>
-<p>Adds <code class="PARAMETER">newNSet</code> to the <code class="PARAMETER">nset</code> using operation <code class="PARAMETER">op</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="RETURNVALUE">xmlSecNodeSetPtr</span></a>
+xmlSecNodeSetAdd (<code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> nset</code>,
+ <code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> newNSet</code>,
+ <code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESETOP"><span class="TYPE">xmlSecNodeSetOp</span></a> op</code>);</pre>
+<p>Adds <code class="PARAMETER">newNSet</code>
+ to the <code class="PARAMETER">nset</code>
+ using operation <code class="PARAMETER">op</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN16245"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN16247"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12087"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to currrent nodes set (or NULL).</p></td>
+<td><p>nset</p></td>
+<td><p>the pointer to currrent nodes set (or NULL).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12092"><span style="white-space: nowrap"><code class="PARAMETER">newNSet</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to new nodes set.</p></td>
+<td><p>newNSet</p></td>
+<td><p>the pointer to new nodes set.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12097"><span style="white-space: nowrap"><code class="PARAMETER">op</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the operation type.</p></td>
+<td><p>op</p></td>
+<td><p>the operation type.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN16268"></a><h4>Returns</h4>
+<p> the pointer to combined nodes set or NULL if an error
+occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNODESETADDLIST"></a><h3>xmlSecNodeSetAddList ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="RETURNVALUE">xmlSecNodeSetPtr</span></a>
+xmlSecNodeSetAddList (<code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> nset</code>,
+ <code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> newNSet</code>,
+ <code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESETOP"><span class="TYPE">xmlSecNodeSetOp</span></a> op</code>);</pre>
+<p>Adds <code class="PARAMETER">newNSet</code>
+ to the <code class="PARAMETER">nset</code>
+ as child using operation <code class="PARAMETER">op</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN16291"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN16293"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>nset</p></td>
+<td><p>the pointer to currrent nodes set (or NULL).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12102"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to combined nodes set or NULL if an error
-occurs.</p></td>
+<td><p>newNSet</p></td>
+<td><p>the pointer to new nodes set.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+<tr>
+<td><p>op</p></td>
+<td><p>the operation type.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN16314"></a><h4>Returns</h4>
+<p> the pointer to combined nodes set or NULL if an error
+occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNODESETADDLIST"></a><h3>xmlSecNodeSetAddList ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecNodeSetPtr</font> xmlSecNodeSetAddList (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> newNSet,
- <a href="xmlsec-nodeset.html#XMLSECNODESETOP">xmlSecNodeSetOp</a> op);</pre>
-<p>Adds <code class="PARAMETER">newNSet</code> to the <code class="PARAMETER">nset</code> as child using operation <code class="PARAMETER">op</code>.</p>
+<a name="XMLSECNODESETGETCHILDREN"></a><h3>xmlSecNodeSetGetChildren ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="RETURNVALUE">xmlSecNodeSetPtr</span></a>
+xmlSecNodeSetGetChildren (<code class="PARAMETER"><font><span class="TYPE">xmlDocPtr</span></font> doc</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlNodePtr</span></font> parent</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> withComments</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> invert</code>);</pre>
+<p>Creates a new nodes set that contains:</p>
<p></p>
+<ul>
+<li><p>if <code class="PARAMETER">withComments</code>
+ is not 0 and <code class="PARAMETER">invert</code>
+ is 0:
+all nodes in the <code class="PARAMETER">parent</code>
+ subtree;</p></li>
+<li><p>if <code class="PARAMETER">withComments</code>
+ is 0 and <code class="PARAMETER">invert</code>
+ is 0:
+all nodes in the <code class="PARAMETER">parent</code>
+ subtree except comment nodes;</p></li>
+<li><p>if <code class="PARAMETER">withComments</code>
+ is not 0 and <code class="PARAMETER">invert</code>
+ not is 0:
+all nodes in the <code class="PARAMETER">doc</code>
+ except nodes in the <code class="PARAMETER">parent</code>
+ subtree;</p></li>
+<li><p>if <code class="PARAMETER">withComments</code>
+ is 0 and <code class="PARAMETER">invert</code>
+ is 0:
+all nodes in the <code class="PARAMETER">doc</code>
+ except nodes in the <code class="PARAMETER">parent</code>
+ subtree
+and comment nodes.</p></li>
+</ul>
+<div class="REFSECT3">
+<a name="AEN16360"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN16362"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12122"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to currrent nodes set (or NULL).</p></td>
+<td><p>doc</p></td>
+<td><p>the pointer to an XML document.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12127"><span style="white-space: nowrap"><code class="PARAMETER">newNSet</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to new nodes set.</p></td>
+<td><p>parent</p></td>
+<td><p>the pointer to parent XML node or NULL if we want to include all document nodes.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12132"><span style="white-space: nowrap"><code class="PARAMETER">op</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the operation type.</p></td>
+<td><p>withComments</p></td>
+<td><p>the flag include comments or not.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12137"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to combined nodes set or NULL if an error
-occurs.</p></td>
+<td><p>invert</p></td>
+<td><p>the "invert" flag.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN16389"></a><h4>Returns</h4>
+<p> pointer to the newly created <a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSet</span></a> structure
+or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNODESETGETCHILDREN"></a><h3>xmlSecNodeSetGetChildren ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecNodeSetPtr</font> xmlSecNodeSetGetChildren (<font>xmlDocPtr</font> doc,
- const <font>xmlNodePtr</font> parent,
- <font>int</font> withComments,
- <font>int</font> invert);</pre>
-<p>Creates a new nodes set that contains:
- - if <code class="PARAMETER">withComments</code> is not 0 and <code class="PARAMETER">invert</code> is 0:
- all nodes in the <code class="PARAMETER">parent</code> subtree;
- - if <code class="PARAMETER">withComments</code> is 0 and <code class="PARAMETER">invert</code> is 0:
- all nodes in the <code class="PARAMETER">parent</code> subtree except comment nodes;
- - if <code class="PARAMETER">withComments</code> is not 0 and <code class="PARAMETER">invert</code> not is 0:
- all nodes in the <code class="PARAMETER">doc</code> except nodes in the <code class="PARAMETER">parent</code> subtree;
- - if <code class="PARAMETER">withComments</code> is 0 and <code class="PARAMETER">invert</code> is 0:
- all nodes in the <code class="PARAMETER">doc</code> except nodes in the <code class="PARAMETER">parent</code> subtree
- and comment nodes.</p>
-<p></p>
+<a name="XMLSECNODESETWALK"></a><h3>xmlSecNodeSetWalk ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNodeSetWalk (<code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> nset</code>,
+ <code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESETWALKCALLBACK"><span class="TYPE">xmlSecNodeSetWalkCallback</span></a> walkFunc</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *data</code>);</pre>
+<p>Calls the function <code class="PARAMETER">walkFunc</code>
+ once per each node in the nodes set <code class="PARAMETER">nset</code>
+.
+If the <code class="PARAMETER">walkFunc</code>
+ returns a negative value, then the walk procedure
+is interrupted.</p>
+<div class="REFSECT3">
+<a name="AEN16414"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN16416"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12169"><span style="white-space: nowrap"><code class="PARAMETER">doc</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML document.</p></td>
+<td><p>nset</p></td>
+<td><p>the pointer to node set.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12174"><span style="white-space: nowrap"><code class="PARAMETER">parent</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to parent XML node or NULL if we want to include all document nodes.</p></td>
+<td><p>walkFunc</p></td>
+<td><p>the callback functions.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12179"><span style="white-space: nowrap"><code class="PARAMETER">withComments</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag include comments or not.</p></td>
+<td><p>data</p></td>
+<td><p>the application specific data passed to the <code class="PARAMETER">walkFunc</code>
+.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN16438"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNODESETDUMPTEXTNODES"></a><h3>xmlSecNodeSetDumpTextNodes ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNodeSetDumpTextNodes (<code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> nset</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlOutputBufferPtr</span></font> out</code>);</pre>
+<p>Dumps content of all the text nodes from <code class="PARAMETER">nset</code>
+ to <code class="PARAMETER">out</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN16457"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN16459"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12184"><span style="white-space: nowrap"><code class="PARAMETER">invert</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the "invert" flag.</p></td>
+<td><p>nset</p></td>
+<td><p>the pointer to node set.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12189"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the newly created <a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSet</span></a> structure
-or NULL if an error occurs.</p></td>
+<td><p>out</p></td>
+<td><p>the output buffer.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN16474"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNODESETWALK"></a><h3>xmlSecNodeSetWalk ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNodeSetWalk (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
- <a href="xmlsec-nodeset.html#XMLSECNODESETWALKCALLBACK">xmlSecNodeSetWalkCallback</a> walkFunc,
- <font>void</font> *data);</pre>
-<p>Calls the function <code class="PARAMETER">walkFunc</code> once per each node in the nodes set <code class="PARAMETER">nset</code>.
-If the <code class="PARAMETER">walkFunc</code> returns a negative value, then the walk procedure
-is interrupted.</p>
+<a name="XMLSECNODESETDEBUGDUMP"></a><h3>xmlSecNodeSetDebugDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecNodeSetDebugDump (<code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> nset</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints information about <code class="PARAMETER">nset</code>
+ to the <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN16493"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN16495"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>nset</p></td>
+<td><p>the pointer to node set.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+</div>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NODESET.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECNODESETTYPE"></a><h3>enum xmlSecNodeSetType</h3>
+<p>The basic nodes sets types.</p>
+<div class="REFSECT3">
+<a name="AEN16517"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN16519"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>xmlSecNodeSetNormal</p></td>
+<td><p>nodes set = nodes in the list.</p></td>
+<td> </td>
+</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12211"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node set.</p></td>
+<td><p>xmlSecNodeSetInvert</p></td>
+<td><p>nodes set = all document nodes minus nodes in the list.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12216"><span style="white-space: nowrap"><code class="PARAMETER">walkFunc</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the callback functions.</p></td>
+<td><p>xmlSecNodeSetTree</p></td>
+<td><p>nodes set = nodes in the list and all their subtress.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12221"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the application specific data passed to the <code class="PARAMETER">walkFunc</code>.</p></td>
+<td><p>xmlSecNodeSetTreeWithoutComments</p></td>
+<td><p>nodes set = nodes in the list and
+ all their subtress but no comment nodes.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecNodeSetTreeInvert</p></td>
+<td><p>nodes set = all document nodes minus nodes in the
+ list and all their subtress.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecNodeSetTreeWithoutCommentsInvert</p></td>
+<td><p>nodes set = all document nodes
+ minus (nodes in the list and all their subtress
+ plus all comment nodes).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12227"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>xmlSecNodeSetList</p></td>
+<td><p>nodes set = all nodes in the chidren list of nodes sets.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNODESETDUMPTEXTNODES"></a><h3>xmlSecNodeSetDumpTextNodes ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNodeSetDumpTextNodes (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
- <font>xmlOutputBufferPtr</font> out);</pre>
-<p>Dumps content of all the text nodes from <code class="PARAMETER">nset</code> to <code class="PARAMETER">out</code>.</p>
-<p></p>
+<a name="XMLSECNODESETOP"></a><h3>enum xmlSecNodeSetOp</h3>
+<p>The simple nodes sets operations.</p>
+<div class="REFSECT3">
+<a name="AEN16569"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN16571"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12245"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node set.</p></td>
+<td><p>xmlSecNodeSetIntersection</p></td>
+<td><p>intersection.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12250"><span style="white-space: nowrap"><code class="PARAMETER">out</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output buffer.</p></td>
+<td><p>xmlSecNodeSetSubtraction</p></td>
+<td><p>subtraction.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12255"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>xmlSecNodeSetUnion</p></td>
+<td><p>union.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNODESETDEBUGDUMP"></a><h3>xmlSecNodeSetDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecNodeSetDebugDump (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
- <font>FILE</font> *output);</pre>
-<p>Prints information about <code class="PARAMETER">nset</code> to the <code class="PARAMETER">output</code>.</p>
-<p></p>
+<a name="XMLSECNODESET"></a><h3>struct xmlSecNodeSet</h3>
+<pre class="PROGRAMLISTING">struct xmlSecNodeSet {
+ xmlNodeSetPtr nodes;
+ xmlDocPtr doc;
+ int destroyDoc;
+ xmlSecNodeSetType type;
+ xmlSecNodeSetOp op;
+ xmlSecNodeSetPtr next;
+ xmlSecNodeSetPtr prev;
+ xmlSecNodeSetPtr children;
+};</pre>
+<p>The enchanced nodes set.</p>
+<div class="REFSECT3">
+<a name="AEN16598"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN16600"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p><font><span class="TYPE">xmlNodeSetPtr</span></font> <code class="STRUCTFIELD">nodes</code>;</p></td>
+<td><p>the nodes list.</p></td>
+<td> </td>
+</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12273"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node set.</p></td>
+<td><p><font><span class="TYPE">xmlDocPtr</span></font> <code class="STRUCTFIELD">doc</code>;</p></td>
+<td><p>the parent XML document.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12278"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p><font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">destroyDoc</code>;</p></td>
+<td><p>the flag: if set to 1 then <code class="PARAMETER">doc</code>
+will
+be destroyed when node set is destroyed.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+<tr>
+<td><p><a href="xmlsec-nodeset.html#XMLSECNODESETTYPE"><span class="TYPE">xmlSecNodeSetType</span></a> <code class="STRUCTFIELD">type</code>;</p></td>
+<td><p>the nodes set type.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-nodeset.html#XMLSECNODESETOP"><span class="TYPE">xmlSecNodeSetOp</span></a> <code class="STRUCTFIELD">op</code>;</p></td>
+<td><p>the operation type.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> <code class="STRUCTFIELD">next</code>;</p></td>
+<td><p>the next nodes set.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> <code class="STRUCTFIELD">prev</code>;</p></td>
+<td><p>the previous nodes set.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> <code class="STRUCTFIELD">children</code>;</p></td>
+<td><p>the children list (valid only if type
+equal to <a href="xmlsec-nodeset.html#XMLSECNODESETLIST"><span class="TYPE">xmlSecNodeSetList</span></a>).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-notes-compiling-others.html b/docs/api/xmlsec-notes-compiling-others.html
index 3fc02a5..f97242d 100644
--- a/docs/api/xmlsec-notes-compiling-others.html
+++ b/docs/api/xmlsec-notes-compiling-others.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Building the application with XML Security Library." href="xmlsec-notes-compiling.html">
<link rel="PREVIOUS" title="Compiling and linking on Windows." href="xmlsec-notes-compiling-windows.html">
<link rel="NEXT" title="Initialization and shutdown." href="xmlsec-notes-init-shutdown.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-compiling-windows.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-compiling.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-compiling-windows.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-compiling.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-init-shutdown.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-init-shutdown.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-COMPILING-OTHERS">Compiling and linking on other systems.</a></h1>
diff --git a/docs/api/xmlsec-notes-compiling-unix.html b/docs/api/xmlsec-notes-compiling-unix.html
index 7778f7b..bd7d6be 100644
--- a/docs/api/xmlsec-notes-compiling-unix.html
+++ b/docs/api/xmlsec-notes-compiling-unix.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Building the application with XML Security Library." href="xmlsec-notes-compiling.html">
<link rel="PREVIOUS" title="Include files." href="xmlsec-notes-include-files.html">
<link rel="NEXT" title="Compiling and linking on Windows." href="xmlsec-notes-compiling-windows.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-include-files.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-compiling.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-include-files.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-compiling.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-compiling-windows.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-compiling-windows.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-COMPILING-UNIX">Compiling and linking on Unix.</a></h1>
@@ -214,7 +236,7 @@ clean:
</div>
</li>
</ul>
-</div>
+ </div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-notes-include-files.html"><b><<< Include files.</b></a></td>
<td align="right"><a accesskey="n" href="xmlsec-notes-compiling-windows.html"><b>Compiling and linking on Windows. >>></b></a></td>
diff --git a/docs/api/xmlsec-notes-compiling-windows.html b/docs/api/xmlsec-notes-compiling-windows.html
index c64aa39..2a3c46f 100644
--- a/docs/api/xmlsec-notes-compiling-windows.html
+++ b/docs/api/xmlsec-notes-compiling-windows.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Building the application with XML Security Library." href="xmlsec-notes-compiling.html">
<link rel="PREVIOUS" title="Compiling and linking on Unix." href="xmlsec-notes-compiling-unix.html">
<link rel="NEXT" title="Compiling and linking on other systems." href="xmlsec-notes-compiling-others.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-compiling-unix.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-compiling.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-compiling-unix.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-compiling.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-compiling-others.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-compiling-others.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-COMPILING-WINDOWS">Compiling and linking on Windows.</a></h1>
@@ -129,7 +151,7 @@
</div>
</li>
</ul>
-</div>
+ </div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-notes-compiling-unix.html"><b><<< Compiling and linking on Unix.</b></a></td>
<td align="right"><a accesskey="n" href="xmlsec-notes-compiling-others.html"><b>Compiling and linking on other systems. >>></b></a></td>
diff --git a/docs/api/xmlsec-notes-compiling.html b/docs/api/xmlsec-notes-compiling.html
index da14206..6f1ed9a 100644
--- a/docs/api/xmlsec-notes-compiling.html
+++ b/docs/api/xmlsec-notes-compiling.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="XML Security Library Structure." href="xmlsec-notes-structure.html">
<link rel="NEXT" title="Include files." href="xmlsec-notes-include-files.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-structure.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-structure.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-include-files.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-include-files.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-notes-contexts.html b/docs/api/xmlsec-notes-contexts.html
index f4ae785..85a0801 100644
--- a/docs/api/xmlsec-notes-contexts.html
+++ b/docs/api/xmlsec-notes-contexts.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="Transforms and transforms chain." href="xmlsec-notes-transforms.html">
<link rel="NEXT" title="Adding support for new cryptographic library." href="xmlsec-notes-new-crypto.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-transforms.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-transforms.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-new-crypto.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-new-crypto.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-notes-custom-keys-store.html b/docs/api/xmlsec-notes-custom-keys-store.html
index 2f9f0b5..b12dd6c 100644
--- a/docs/api/xmlsec-notes-custom-keys-store.html
+++ b/docs/api/xmlsec-notes-custom-keys-store.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Keys manager." href="xmlsec-notes-keysmngr.html">
<link rel="PREVIOUS" title="Using keys manager for verification/decryption." href="xmlsec-notes-keys-mngr-verify-decrypt.html">
<link rel="NEXT" title="Using X509 Certificates." href="xmlsec-notes-x509.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-keys-mngr-verify-decrypt.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-keysmngr.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-keys-mngr-verify-decrypt.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-keysmngr.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-x509.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-x509.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-CUSTOM-KEYS-STORE">Implementing a custom keys store.</a></h1>
diff --git a/docs/api/xmlsec-notes-decrypt.html b/docs/api/xmlsec-notes-decrypt.html
index 91379c3..5298c6b 100644
--- a/docs/api/xmlsec-notes-decrypt.html
+++ b/docs/api/xmlsec-notes-decrypt.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Verifing and decrypting documents." href="xmlsec-notes-verify-decrypt.html">
<link rel="PREVIOUS" title="Verifying a signed document" href="xmlsec-notes-verify.html">
<link rel="NEXT" title="Keys." href="xmlsec-notes-keys.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-verify.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-verify-decrypt.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-verify.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-verify-decrypt.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-keys.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-keys.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-DECRYPT">Decrypting an encrypted document</a></h1>
@@ -111,7 +133,7 @@
functions.
</p></li>
</ul>
-<p> </p>
+ <p> </p>
<div class="EXAMPLE">
<a name="AEN333"></a><p><b>Example 2. Decrypting a document.</b></p>
<pre class="PROGRAMLISTING">int
diff --git a/docs/api/xmlsec-notes-dynamic-encryption-templates.html b/docs/api/xmlsec-notes-dynamic-encryption-templates.html
index d7b3f11..a1ca1de 100644
--- a/docs/api/xmlsec-notes-dynamic-encryption-templates.html
+++ b/docs/api/xmlsec-notes-dynamic-encryption-templates.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Creating dynamic templates." href="xmlsec-notes-templates.html">
<link rel="PREVIOUS" title="Creating dynamic signature templates." href="xmlsec-notes-dynamic-signature-templates.html">
<link rel="NEXT" title="Verifing and decrypting documents." href="xmlsec-notes-verify-decrypt.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-dynamic-signature-templates.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-templates.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-dynamic-signature-templates.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-templates.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-verify-decrypt.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-verify-decrypt.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-DYNAMIC-ENCRYPTION-TEMPLATES">Creating dynamic encryption templates.</a></h1>
diff --git a/docs/api/xmlsec-notes-dynamic-signature-templates.html b/docs/api/xmlsec-notes-dynamic-signature-templates.html
index 2db6a45..b01f735 100644
--- a/docs/api/xmlsec-notes-dynamic-signature-templates.html
+++ b/docs/api/xmlsec-notes-dynamic-signature-templates.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Creating dynamic templates." href="xmlsec-notes-templates.html">
<link rel="PREVIOUS" title="Creating dynamic templates." href="xmlsec-notes-templates.html">
<link rel="NEXT" title="Creating dynamic encryption templates." href="xmlsec-notes-dynamic-encryption-templates.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-templates.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-templates.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-templates.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-templates.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-dynamic-encryption-templates.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-dynamic-encryption-templates.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-DYNAMIC-SIGNATURE-TEMPLATES">Creating dynamic signature templates.</a></h1>
diff --git a/docs/api/xmlsec-notes-encrypt.html b/docs/api/xmlsec-notes-encrypt.html
index b632d9a..56d12eb 100644
--- a/docs/api/xmlsec-notes-encrypt.html
+++ b/docs/api/xmlsec-notes-encrypt.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Signing and encrypting documents." href="xmlsec-notes-sign-encrypt.html">
<link rel="PREVIOUS" title="Signing a document." href="xmlsec-notes-sign.html">
<link rel="NEXT" title="Creating dynamic templates." href="xmlsec-notes-templates.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-sign.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-sign-encrypt.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-sign.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-sign-encrypt.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-templates.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-templates.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-ENCRYPT">Encrypting data.</a></h1>
@@ -118,7 +140,7 @@
<li><p> <a href="xmlsec-xmlenc.html#XMLSECENCCTXURIENCRYPT">xmlSecEncCtxUriEncrypt</a>
</p></li>
</ul>
-</li>
+ </li>
<li><p> Check returned value and if necessary consume encrypted data.
</p></li>
<li><p> Destroy encryption context <a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtx</a>
@@ -127,7 +149,7 @@
functions.
</p></li>
</ul>
-<p> </p>
+ <p> </p>
<div class="EXAMPLE">
<a name="AEN227"></a><p><b>Example 2. Encrypting binary data with a template.</b></p>
<pre class="PROGRAMLISTING">/**
diff --git a/docs/api/xmlsec-notes-include-files.html b/docs/api/xmlsec-notes-include-files.html
index 590e770..09928b6 100644
--- a/docs/api/xmlsec-notes-include-files.html
+++ b/docs/api/xmlsec-notes-include-files.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Building the application with XML Security Library." href="xmlsec-notes-compiling.html">
<link rel="PREVIOUS" title="Building the application with XML Security Library." href="xmlsec-notes-compiling.html">
<link rel="NEXT" title="Compiling and linking on Unix." href="xmlsec-notes-compiling-unix.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-compiling.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-compiling.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-compiling.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-compiling.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-compiling-unix.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-compiling-unix.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-INCLUDE-FILES">Include files.</a></h1>
@@ -110,7 +132,7 @@
automatic XML Security Crypto Library selection.
</p></li>
</ul>
-<p>If necessary, the application should also include LibXML,
+ <p>If necessary, the application should also include LibXML,
LibXSLT and crypto library header files.
</p>
<p> </p>
diff --git a/docs/api/xmlsec-notes-init-shutdown.html b/docs/api/xmlsec-notes-init-shutdown.html
index 758dc2c..fe65905 100644
--- a/docs/api/xmlsec-notes-init-shutdown.html
+++ b/docs/api/xmlsec-notes-init-shutdown.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="Compiling and linking on other systems." href="xmlsec-notes-compiling-others.html">
<link rel="NEXT" title="Signing and encrypting documents." href="xmlsec-notes-sign-encrypt.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-compiling-others.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-compiling-others.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-sign-encrypt.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-sign-encrypt.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
@@ -145,7 +167,7 @@
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/docs/api/xmlsec-notes-keys-manager-sign-enc.html b/docs/api/xmlsec-notes-keys-manager-sign-enc.html
index 39eead9..a697fd5 100644
--- a/docs/api/xmlsec-notes-keys-manager-sign-enc.html
+++ b/docs/api/xmlsec-notes-keys-manager-sign-enc.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Keys manager." href="xmlsec-notes-keysmngr.html">
<link rel="PREVIOUS" title="Simple keys store." href="xmlsec-notes-simple-keys-store.html">
<link rel="NEXT" title="Using keys manager for verification/decryption." href="xmlsec-notes-keys-mngr-verify-decrypt.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-simple-keys-store.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-keysmngr.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-simple-keys-store.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-keysmngr.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-keys-mngr-verify-decrypt.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-keys-mngr-verify-decrypt.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-KEYS-MANAGER-SIGN-ENC">Using keys manager for signatures/encryption.</a></h1>
diff --git a/docs/api/xmlsec-notes-keys-mngr-verify-decrypt.html b/docs/api/xmlsec-notes-keys-mngr-verify-decrypt.html
index 8cbcba3..6c64c90 100644
--- a/docs/api/xmlsec-notes-keys-mngr-verify-decrypt.html
+++ b/docs/api/xmlsec-notes-keys-mngr-verify-decrypt.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Keys manager." href="xmlsec-notes-keysmngr.html">
<link rel="PREVIOUS" title="Using keys manager for signatures/encryption." href="xmlsec-notes-keys-manager-sign-enc.html">
<link rel="NEXT" title="Implementing a custom keys store." href="xmlsec-notes-custom-keys-store.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-keys-manager-sign-enc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-keysmngr.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-keys-manager-sign-enc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-keysmngr.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-custom-keys-store.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-custom-keys-store.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-KEYS-MNGR-VERIFY-DECRYPT">Using keys manager for verification/decryption.</a></h1>
diff --git a/docs/api/xmlsec-notes-keys.html b/docs/api/xmlsec-notes-keys.html
index 68b94d5..5f543f1 100644
--- a/docs/api/xmlsec-notes-keys.html
+++ b/docs/api/xmlsec-notes-keys.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="Decrypting an encrypted document" href="xmlsec-notes-decrypt.html">
<link rel="NEXT" title="Keys manager." href="xmlsec-notes-keysmngr.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-decrypt.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-decrypt.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-keysmngr.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-keysmngr.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-notes-keysmngr.html b/docs/api/xmlsec-notes-keysmngr.html
index dff6889..ec5969e 100644
--- a/docs/api/xmlsec-notes-keysmngr.html
+++ b/docs/api/xmlsec-notes-keysmngr.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="Keys." href="xmlsec-notes-keys.html">
<link rel="NEXT" title="Simple keys store." href="xmlsec-notes-simple-keys-store.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-keys.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-keys.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-simple-keys-store.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-simple-keys-store.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-notes-new-crypto-functions.html b/docs/api/xmlsec-notes-new-crypto-functions.html
index c9d45d3..170f5b6 100644
--- a/docs/api/xmlsec-notes-new-crypto-functions.html
+++ b/docs/api/xmlsec-notes-new-crypto-functions.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Adding support for new cryptographic library." href="xmlsec-notes-new-crypto.html">
<link rel="PREVIOUS" title="Creating a framework from the skeleton." href="xmlsec-notes-new-crypto-skeleton.html">
<link rel="NEXT" title="Klasses and objects." href="xmlsec-notes-new-crypto-klasses.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-new-crypto-skeleton.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-new-crypto-skeleton.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-new-crypto-klasses.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-new-crypto-klasses.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-NEW-CRYPTO-FUNCTIONS">xmlSecCryptoApp* functions.</a></h1>
diff --git a/docs/api/xmlsec-notes-new-crypto-key-stores.html b/docs/api/xmlsec-notes-new-crypto-key-stores.html
index d9bd24d..af2c5f0 100644
--- a/docs/api/xmlsec-notes-new-crypto-key-stores.html
+++ b/docs/api/xmlsec-notes-new-crypto-key-stores.html
@@ -8,8 +8,59 @@
<link rel="UP" title="Adding support for new cryptographic library." href="xmlsec-notes-new-crypto.html">
<link rel="PREVIOUS" title="Keys." href="xmlsec-notes-new-crypto-keys.html">
<link rel="NEXT" title="Simple keys manager." href="xmlsec-notes-new-crypto-simple-keys-mngr.html">
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
diff --git a/docs/api/xmlsec-notes-new-crypto-keys.html b/docs/api/xmlsec-notes-new-crypto-keys.html
index f309630..2ab33bc 100644
--- a/docs/api/xmlsec-notes-new-crypto-keys.html
+++ b/docs/api/xmlsec-notes-new-crypto-keys.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Adding support for new cryptographic library." href="xmlsec-notes-new-crypto.html">
<link rel="PREVIOUS" title="Cryptographic transforms." href="xmlsec-notes-new-crypto-transforms.html">
<link rel="NEXT" title="Default keys manager." href="xmlsec-notes-new-crypto-simple-keys-mngr.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-new-crypto-transforms.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-new-crypto-transforms.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-new-crypto-simple-keys-mngr.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-new-crypto-simple-keys-mngr.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-NEW-CRYPTO-KEYS">Keys data and keys data stores.</a></h1>
diff --git a/docs/api/xmlsec-notes-new-crypto-klasses.html b/docs/api/xmlsec-notes-new-crypto-klasses.html
index 2a16672..9c0e7f8 100644
--- a/docs/api/xmlsec-notes-new-crypto-klasses.html
+++ b/docs/api/xmlsec-notes-new-crypto-klasses.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Adding support for new cryptographic library." href="xmlsec-notes-new-crypto.html">
<link rel="PREVIOUS" title="xmlSecCryptoApp* functions." href="xmlsec-notes-new-crypto-functions.html">
<link rel="NEXT" title="Cryptographic transforms." href="xmlsec-notes-new-crypto-transforms.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-new-crypto-functions.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-new-crypto-functions.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-new-crypto-transforms.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-new-crypto-transforms.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-NEW-CRYPTO-KLASSES">Klasses and objects.</a></h1>
@@ -208,7 +230,7 @@ xmlSecTransformXPathGetKlass(void) {
</div>
</li>
</ul>
-</div>
+ </div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-notes-new-crypto-functions.html"><b><<< xmlSecCryptoApp* functions.</b></a></td>
<td align="right"><a accesskey="n" href="xmlsec-notes-new-crypto-transforms.html"><b>Cryptographic transforms. >>></b></a></td>
diff --git a/docs/api/xmlsec-notes-new-crypto-sharing-results.html b/docs/api/xmlsec-notes-new-crypto-sharing-results.html
index 8161094..e39d41e 100644
--- a/docs/api/xmlsec-notes-new-crypto-sharing-results.html
+++ b/docs/api/xmlsec-notes-new-crypto-sharing-results.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Adding support for new cryptographic library." href="xmlsec-notes-new-crypto.html">
<link rel="PREVIOUS" title="Default keys manager." href="xmlsec-notes-new-crypto-simple-keys-mngr.html">
<link rel="NEXT" title="Examples." href="xmlsec-examples.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-new-crypto-simple-keys-mngr.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-new-crypto-simple-keys-mngr.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-examples.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-examples.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-NEW-CRYPTO-SHARING-RESULTS">Sharing the results.</a></h1>
@@ -94,29 +116,11 @@
and will use your library. Of course, you'll get all the credits
for your work.
</p>
-<p>The best way to submit your enchancements is to provide a diff
- with the current CVS version. In order to do this,
+<p>The best way to submit your enchancements is to send a pull request
+ through <a href="https://github.com/lsh123/xmlsec" target="_top">GitHub</a>.
+ I will try to review and merge your pool request as soon as possible.
</p>
-<p></p>
-<ul>
-<li><p>Checkout the sources from <a href="http://developer.gnome.org/tools/cvs.html" target="_top">GNOME CVS</a>
- (module name is "xmlsec").
- </p></li>
-<li><p>Add all the new files with "cvs add" command (this will not
- create files in CVS but mark them as "added" localy). You'll not be able
- to create new folders without a valid GNOME CVS account, let me know
- what you need and I'll be happy to help.
- </p></li>
-<li><p>Get a diff of all existing and new files using
- "cvs -z3 diff -u -N" command.
- </p></li>
-<li><p>Send the resulting diff file to the xmlsec mailing list
- with some information about yourself so I can update the authors
- and coping information.
- </p></li>
-</ul>
- I will try to review and check in your patch as soon as possible.
- </div>
+</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-notes-new-crypto-simple-keys-mngr.html"><b><<< Default keys manager.</b></a></td>
<td align="right"><a accesskey="n" href="xmlsec-examples.html"><b>Examples. >>></b></a></td>
diff --git a/docs/api/xmlsec-notes-new-crypto-simple-keys-mngr.html b/docs/api/xmlsec-notes-new-crypto-simple-keys-mngr.html
index 17dd615..2a2371e 100644
--- a/docs/api/xmlsec-notes-new-crypto-simple-keys-mngr.html
+++ b/docs/api/xmlsec-notes-new-crypto-simple-keys-mngr.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Adding support for new cryptographic library." href="xmlsec-notes-new-crypto.html">
<link rel="PREVIOUS" title="Keys data and keys data stores." href="xmlsec-notes-new-crypto-keys.html">
<link rel="NEXT" title="Sharing the results." href="xmlsec-notes-new-crypto-sharing-results.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-new-crypto-keys.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-new-crypto-keys.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-new-crypto-sharing-results.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-new-crypto-sharing-results.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-NEW-CRYPTO-SIMPLE-KEYS-MNGR">Default keys manager.</a></h1>
diff --git a/docs/api/xmlsec-notes-new-crypto-skeleton.html b/docs/api/xmlsec-notes-new-crypto-skeleton.html
index 9bcf8dd..e9cda62 100644
--- a/docs/api/xmlsec-notes-new-crypto-skeleton.html
+++ b/docs/api/xmlsec-notes-new-crypto-skeleton.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Adding support for new cryptographic library." href="xmlsec-notes-new-crypto.html">
<link rel="PREVIOUS" title="Adding support for new cryptographic library." href="xmlsec-notes-new-crypto.html">
<link rel="NEXT" title="xmlSecCryptoApp* functions." href="xmlsec-notes-new-crypto-functions.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-new-crypto.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-new-crypto.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-new-crypto-functions.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-new-crypto-functions.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-NEW-CRYPTO-SKELETON">Creating a framework from the skeleton.</a></h1>
@@ -96,20 +118,12 @@
<ul>
<li>
<p> Copy src/skeleton and include/xmlsec/skeleton folders to src/mycrypto and
- include/xmlsec/mycrypto folders and remove CVS folders from the result:
+ include/xmlsec/mycrypto folders:
</p>
<div class="EXAMPLE">
-<a name="AEN512"></a><p><b>Example 1. Coping skeleton folders.</b></p>
-<pre class="PROGRAMLISTING">cd src
-cp -r skeleton mycrypto
-cd mycrypto
-rm -rf CVS
-cd ../..
-cd include/xmlsec
-cp -r skeleton mycrypto
-cd mycrypto
-rm -rf CVS
-cd ../../..
+<a name="AEN512"></a><p><b>Example 1. Coping skeleton folders:</b></p>
+<pre class="PROGRAMLISTING">cp -r src/skeleton src/mycrypto
+cp -r include/xmlsec/skeleton include/xmlsec/mycrypto
</pre>
</div>
</li>
diff --git a/docs/api/xmlsec-notes-new-crypto-transforms.html b/docs/api/xmlsec-notes-new-crypto-transforms.html
index c9cb4d3..1209013 100644
--- a/docs/api/xmlsec-notes-new-crypto-transforms.html
+++ b/docs/api/xmlsec-notes-new-crypto-transforms.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Adding support for new cryptographic library." href="xmlsec-notes-new-crypto.html">
<link rel="PREVIOUS" title="Klasses and objects." href="xmlsec-notes-new-crypto-klasses.html">
<link rel="NEXT" title="Keys data and keys data stores." href="xmlsec-notes-new-crypto-keys.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-new-crypto-klasses.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-new-crypto-klasses.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-new-crypto.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-new-crypto-keys.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-new-crypto-keys.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-NEW-CRYPTO-TRANSFORMS">Cryptographic transforms.</a></h1>
diff --git a/docs/api/xmlsec-notes-new-crypto.html b/docs/api/xmlsec-notes-new-crypto.html
index a5dd086..c1b49d9 100644
--- a/docs/api/xmlsec-notes-new-crypto.html
+++ b/docs/api/xmlsec-notes-new-crypto.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="Using context objects." href="xmlsec-notes-contexts.html">
<link rel="NEXT" title="Creating a framework from the skeleton." href="xmlsec-notes-new-crypto-skeleton.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-contexts.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-contexts.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-new-crypto-skeleton.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-new-crypto-skeleton.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-notes-overview.html b/docs/api/xmlsec-notes-overview.html
index 0b8d4fe..dd8ea31 100644
--- a/docs/api/xmlsec-notes-overview.html
+++ b/docs/api/xmlsec-notes-overview.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="NEXT" title="XML Security Library Structure." href="xmlsec-notes-structure.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-structure.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-structure.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-notes-sign-encrypt.html b/docs/api/xmlsec-notes-sign-encrypt.html
index 42cbfa0..83b3ece 100644
--- a/docs/api/xmlsec-notes-sign-encrypt.html
+++ b/docs/api/xmlsec-notes-sign-encrypt.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="Initialization and shutdown." href="xmlsec-notes-init-shutdown.html">
<link rel="NEXT" title="Signing a document." href="xmlsec-notes-sign.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-init-shutdown.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-init-shutdown.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-sign.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-sign.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-notes-sign-x509.html b/docs/api/xmlsec-notes-sign-x509.html
index a72d899..7a91e2f 100644
--- a/docs/api/xmlsec-notes-sign-x509.html
+++ b/docs/api/xmlsec-notes-sign-x509.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Using X509 Certificates." href="xmlsec-notes-x509.html">
<link rel="PREVIOUS" title="Using X509 Certificates." href="xmlsec-notes-x509.html">
<link rel="NEXT" title="Verifing document signed with X509 certificates." href="xmlsec-notes-verify-x509.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-x509.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-x509.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-x509.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-x509.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-verify-x509.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-verify-x509.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-SIGN-X509">Signing data with X509 certificate.</a></h1>
@@ -102,8 +124,8 @@
<li><p> <a href="xmlsec-keys.html#XMLSECKEYADOPTDATA">xmlSecKeyAdoptData</a> - low level
function to add key data (including X509 key data) to the key.
</p></li>
-</ul>
-<div class="EXAMPLE">
+</ul>
+ <div class="EXAMPLE">
<a name="AEN423"></a><p><b>Example 1. Loading private key and X509 certificate.</b></p>
<pre class="PROGRAMLISTING"> /* load private key, assuming that there is not password */
key = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL);
diff --git a/docs/api/xmlsec-notes-sign.html b/docs/api/xmlsec-notes-sign.html
index 61da86d..5b4dac5 100644
--- a/docs/api/xmlsec-notes-sign.html
+++ b/docs/api/xmlsec-notes-sign.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Signing and encrypting documents." href="xmlsec-notes-sign-encrypt.html">
<link rel="PREVIOUS" title="Signing and encrypting documents." href="xmlsec-notes-sign-encrypt.html">
<link rel="NEXT" title="Encrypting data." href="xmlsec-notes-encrypt.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-sign-encrypt.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-sign-encrypt.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-sign-encrypt.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-sign-encrypt.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-encrypt.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-encrypt.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-SIGN">Signing a document.</a></h1>
@@ -118,7 +140,7 @@
functions.
</p></li>
</ul>
-<p> </p>
+ <p> </p>
<div class="EXAMPLE">
<a name="AEN182"></a><p><b>Example 1. Signing a template.</b></p>
<pre class="PROGRAMLISTING">/**
diff --git a/docs/api/xmlsec-notes-simple-keys-store.html b/docs/api/xmlsec-notes-simple-keys-store.html
index aad210f..d66797e 100644
--- a/docs/api/xmlsec-notes-simple-keys-store.html
+++ b/docs/api/xmlsec-notes-simple-keys-store.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Keys manager." href="xmlsec-notes-keysmngr.html">
<link rel="PREVIOUS" title="Keys manager." href="xmlsec-notes-keysmngr.html">
<link rel="NEXT" title="Using keys manager for signatures/encryption." href="xmlsec-notes-keys-manager-sign-enc.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-keysmngr.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-keysmngr.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-keysmngr.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-keysmngr.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-keys-manager-sign-enc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-keys-manager-sign-enc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-SIMPLE-KEYS-STORE">Simple keys store.</a></h1>
diff --git a/docs/api/xmlsec-notes-structure.html b/docs/api/xmlsec-notes-structure.html
index fa11cad..af17a3a 100644
--- a/docs/api/xmlsec-notes-structure.html
+++ b/docs/api/xmlsec-notes-structure.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="Overview." href="xmlsec-notes-overview.html">
<link rel="NEXT" title="Building the application with XML Security Library." href="xmlsec-notes-compiling.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-overview.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-overview.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-compiling.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-compiling.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-notes-templates.html b/docs/api/xmlsec-notes-templates.html
index 7c02a5c..fa495e8 100644
--- a/docs/api/xmlsec-notes-templates.html
+++ b/docs/api/xmlsec-notes-templates.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="Encrypting data." href="xmlsec-notes-encrypt.html">
<link rel="NEXT" title="Creating dynamic signature templates." href="xmlsec-notes-dynamic-signature-templates.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-encrypt.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-encrypt.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-dynamic-signature-templates.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-dynamic-signature-templates.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-notes-transforms.html b/docs/api/xmlsec-notes-transforms.html
index 0a34a5f..2df51ec 100644
--- a/docs/api/xmlsec-notes-transforms.html
+++ b/docs/api/xmlsec-notes-transforms.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="Verifing document signed with X509 certificates." href="xmlsec-notes-verify-x509.html">
<link rel="NEXT" title="Using context objects." href="xmlsec-notes-contexts.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-verify-x509.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-verify-x509.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-contexts.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-contexts.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
@@ -110,7 +132,7 @@
<li><p> <a href="xmlsec-transforms.html#XMLSECTRANSFORMPOPXMLMETHOD">pop xml data</a>.
</p></li>
</ul>
-<p>One additional <a href="xmlsec-transforms.html#XMLSECTRANSFORMEXECUTEMETHOD">execute</a>
+ <p>One additional <a href="xmlsec-transforms.html#XMLSECTRANSFORMEXECUTEMETHOD">execute</a>
callback was added to simplify the development and reduce code size.
This callback is used by default
implementations of the four external callbacks from the list above.
diff --git a/docs/api/xmlsec-notes-verify-decrypt.html b/docs/api/xmlsec-notes-verify-decrypt.html
index 46f410f..60a58d1 100644
--- a/docs/api/xmlsec-notes-verify-decrypt.html
+++ b/docs/api/xmlsec-notes-verify-decrypt.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="Creating dynamic encryption templates." href="xmlsec-notes-dynamic-encryption-templates.html">
<link rel="NEXT" title="Verifying a signed document" href="xmlsec-notes-verify.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-dynamic-encryption-templates.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-dynamic-encryption-templates.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-verify.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-verify.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-notes-verify-x509.html b/docs/api/xmlsec-notes-verify-x509.html
index 8a7c189..9506c48 100644
--- a/docs/api/xmlsec-notes-verify-x509.html
+++ b/docs/api/xmlsec-notes-verify-x509.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Using X509 Certificates." href="xmlsec-notes-x509.html">
<link rel="PREVIOUS" title="Signing data with X509 certificate." href="xmlsec-notes-sign-x509.html">
<link rel="NEXT" title="Transforms and transforms chain." href="xmlsec-notes-transforms.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-sign-x509.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-x509.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-sign-x509.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-x509.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-transforms.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-transforms.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-VERIFY-X509">Verifing document signed with X509 certificates.</a></h1>
diff --git a/docs/api/xmlsec-notes-verify.html b/docs/api/xmlsec-notes-verify.html
index f5f9f32..716d77d 100644
--- a/docs/api/xmlsec-notes-verify.html
+++ b/docs/api/xmlsec-notes-verify.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Verifing and decrypting documents." href="xmlsec-notes-verify-decrypt.html">
<link rel="PREVIOUS" title="Verifing and decrypting documents." href="xmlsec-notes-verify-decrypt.html">
<link rel="NEXT" title="Decrypting an encrypted document" href="xmlsec-notes-decrypt.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-verify-decrypt.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes-verify-decrypt.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-verify-decrypt.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes-verify-decrypt.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-decrypt.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-decrypt.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-NOTES-VERIFY">Verifying a signed document</a></h1>
@@ -115,7 +137,7 @@
functions.
</p></li>
</ul>
-<p> </p>
+ <p> </p>
<div class="EXAMPLE">
<a name="AEN303"></a><p><b>Example 1. Verifying a document.</b></p>
<pre class="PROGRAMLISTING">/**
diff --git a/docs/api/xmlsec-notes-x509.html b/docs/api/xmlsec-notes-x509.html
index 2b0c604..c58f772 100644
--- a/docs/api/xmlsec-notes-x509.html
+++ b/docs/api/xmlsec-notes-x509.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="Implementing a custom keys store." href="xmlsec-notes-custom-keys-store.html">
<link rel="NEXT" title="Signing data with X509 certificate." href="xmlsec-notes-sign-x509.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-notes-custom-keys-store.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-notes-custom-keys-store.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-sign-x509.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-sign-x509.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-notes.html b/docs/api/xmlsec-notes.html
index efdfc95..88c9b6f 100644
--- a/docs/api/xmlsec-notes.html
+++ b/docs/api/xmlsec-notes.html
@@ -6,7 +6,6 @@
<link rel="HOME" title="XML Security Library Reference Manual" href="index.html">
<link rel="PREVIOUS" title="XML Security Library Reference Manual" href="index.html">
<link rel="NEXT" title="Overview." href="xmlsec-notes-overview.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -36,8 +35,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -78,10 +100,10 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-notes-overview.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-notes-overview.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="PART">
<a name="XMLSEC-NOTES"></a><div class="TITLEPAGE">
diff --git a/docs/api/xmlsec-nss-app.html b/docs/api/xmlsec-nss-app.html
index 710f531..8464729 100644
--- a/docs/api/xmlsec-nss-app.html
+++ b/docs/api/xmlsec-nss-app.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for NSS API Reference." href="xmlsec-nss-ref.html">
<link rel="PREVIOUS" title="XML Security Library for NSS API Reference." href="xmlsec-nss-ref.html">
<link rel="NEXT" title="bignum" href="xmlsec-nss-bignum.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,679 +101,1021 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-nss-ref.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-nss-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-nss-ref.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-nss-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-nss-bignum.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-nss-bignum.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-NSS-APP"></a>app</h1>
<div class="REFNAMEDIV">
-<a name="AEN28500"></a><h2>Name</h2>app -- Application functions implementation for NSS.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-NSS-APP.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>int</font> <a href="xmlsec-nss-app.html#XMLSECNSSAPPINIT">xmlSecNssAppInit</a> (const <font>char</font> *config);
-<font>int</font> <a href="xmlsec-nss-app.html#XMLSECNSSAPPSHUTDOWN">xmlSecNssAppShutdown</a> (void);
-<font>int</font> <a href="xmlsec-nss-app.html#XMLSECNSSAPPDEFAULTKEYSMNGRINIT">xmlSecNssAppDefaultKeysMngrInit</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);
-<font>int</font> <a href="xmlsec-nss-app.html#XMLSECNSSAPPDEFAULTKEYSMNGRADOPTKEY">xmlSecNssAppDefaultKeysMngrAdoptKey</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> <a href="xmlsec-nss-app.html#XMLSECNSSAPPDEFAULTKEYSMNGRLOAD">xmlSecNssAppDefaultKeysMngrLoad</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *uri);
-<font>int</font> <a href="xmlsec-nss-app.html#XMLSECNSSAPPDEFAULTKEYSMNGRSAVE">xmlSecNssAppDefaultKeysMngrSave</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYSMNGRCERTLOAD">xmlSecNssAppKeysMngrCertLoad</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYSMNGRCERTLOADMEMORY">xmlSecNssAppKeysMngrCertLoadMemory</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYSMNGRCERTLOADSECITEM">xmlSecNssAppKeysMngrCertLoadSECItem</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>SECItem</font> *secItem,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYLOAD">xmlSecNssAppKeyLoad</a> (const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYLOADMEMORY">xmlSecNssAppKeyLoadMemory</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYLOADSECITEM">xmlSecNssAppKeyLoadSECItem</a> (<font>SECItem</font> *secItem,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-nss-app.html#XMLSECNSSAPPPKCS12LOAD">xmlSecNssAppPkcs12Load</a> (const <font>char</font> *filename,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-nss-app.html#XMLSECNSSAPPPKCS12LOADMEMORY">xmlSecNssAppPkcs12LoadMemory</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-nss-app.html#XMLSECNSSAPPPKCS12LOADSECITEM">xmlSecNssAppPkcs12LoadSECItem</a> (<font>SECItem</font> *secItem,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<font>int</font> <a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYCERTLOAD">xmlSecNssAppKeyCertLoad</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<font>int</font> <a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYCERTLOADMEMORY">xmlSecNssAppKeyCertLoadMemory</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<font>int</font> <a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYCERTLOADSECITEM">xmlSecNssAppKeyCertLoadSECItem</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>SECItem</font> *secItem,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYFROMCERTLOADSECITEM">xmlSecNssAppKeyFromCertLoadSECItem</a> (<font>SECItem</font> *secItem,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<font>void</font>* <a href="xmlsec-nss-app.html#XMLSECNSSAPPGETDEFAULTPWDCALLBACK">xmlSecNssAppGetDefaultPwdCallback</a> (void);</pre>
+<a name="AEN38411"></a><h2>Name</h2>app -- Application functions implementation for NSS.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-APP.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN38416"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPINIT">xmlSecNssAppInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPSHUTDOWN">xmlSecNssAppShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPDEFAULTKEYSMNGRINIT">xmlSecNssAppDefaultKeysMngrInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPDEFAULTKEYSMNGRADOPTKEY">xmlSecNssAppDefaultKeysMngrAdoptKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPDEFAULTKEYSMNGRLOAD">xmlSecNssAppDefaultKeysMngrLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPDEFAULTKEYSMNGRSAVE">xmlSecNssAppDefaultKeysMngrSave</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYSMNGRCERTLOAD">xmlSecNssAppKeysMngrCertLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYSMNGRCERTLOADMEMORY">xmlSecNssAppKeysMngrCertLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYSMNGRCERTLOADSECITEM">xmlSecNssAppKeysMngrCertLoadSECItem</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYLOAD">xmlSecNssAppKeyLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYLOADMEMORY">xmlSecNssAppKeyLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYLOADSECITEM">xmlSecNssAppKeyLoadSECItem</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPPKCS12LOAD">xmlSecNssAppPkcs12Load</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPPKCS12LOADMEMORY">xmlSecNssAppPkcs12LoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPPKCS12LOADSECITEM">xmlSecNssAppPkcs12LoadSECItem</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYCERTLOAD">xmlSecNssAppKeyCertLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYCERTLOADMEMORY">xmlSecNssAppKeyCertLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYCERTLOADSECITEM">xmlSecNssAppKeyCertLoadSECItem</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPKEYFROMCERTLOADSECITEM">xmlSecNssAppKeyFromCertLoadSECItem</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">void</span></font> *</td>
+<td>
+<a href="xmlsec-nss-app.html#XMLSECNSSAPPGETDEFAULTPWDCALLBACK">xmlSecNssAppGetDefaultPwdCallback</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-NSS-APP.DESCRIPTION"></a><h2>Description</h2>
<p>Application functions implementation for NSS.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-NSS-APP.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-NSS-APP.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECNSSAPPINIT"></a><h3>xmlSecNssAppInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssAppInit (const <font>char</font> *config);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssAppInit (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *config</code>);</pre>
<p>General crypto engine initialization. This function is used
by XMLSec command line utility and called before
-<code class="PARAMETER">xmlSecInit</code> function.</p>
+<code class="PARAMETER">xmlSecInit</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN38576"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN38578"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>config</p></td>
+<td><p>the path to NSS database files.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28625"><span style="white-space: nowrap"><code class="PARAMETER">config</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the path to NSS database files.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28630"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN38587"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPSHUTDOWN"></a><h3>xmlSecNssAppShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssAppShutdown (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssAppShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>General crypto engine shutdown. This function is used
by XMLSec command line utility and called after
-<code class="PARAMETER">xmlSecShutdown</code> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN28645"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<code class="PARAMETER">xmlSecShutdown</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN38601"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPDEFAULTKEYSMNGRINIT"></a><h3>xmlSecNssAppDefaultKeysMngrInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssAppDefaultKeysMngrInit (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);</pre>
-<p>Initializes <code class="PARAMETER">mngr</code> with NSS keys store <a href="xmlsec-nss-keysstore.html#XMLSECNSSKEYSSTOREID"><span class="TYPE">xmlSecNssKeysStoreId</span></a>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssAppDefaultKeysMngrInit (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>);</pre>
+<p>Initializes <code class="PARAMETER">mngr</code>
+ with NSS keys store <a href="xmlsec-nss-keysstore.html#XMLSECNSSKEYSSTOREID"><span class="TYPE">xmlSecNssKeysStoreId</span></a>
and a default NSS crypto key data stores.</p>
+<div class="REFSECT3">
+<a name="AEN38618"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN38620"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28663"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28668"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN38629"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPDEFAULTKEYSMNGRADOPTKEY"></a><h3>xmlSecNssAppDefaultKeysMngrAdoptKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssAppDefaultKeysMngrAdoptKey (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Adds <code class="PARAMETER">key</code> to the keys manager <code class="PARAMETER">mngr</code> created with <a href="xmlsec-nss-app.html#XMLSECNSSAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecNssAppDefaultKeysMngrInit</span></a>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssAppDefaultKeysMngrAdoptKey (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Adds <code class="PARAMETER">key</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+ created with <a href="xmlsec-nss-app.html#XMLSECNSSAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecNssAppDefaultKeysMngrInit</span></a>
function.</p>
+<div class="REFSECT3">
+<a name="AEN38650"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN38652"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28688"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28693"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28698"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN38667"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPDEFAULTKEYSMNGRLOAD"></a><h3>xmlSecNssAppDefaultKeysMngrLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssAppDefaultKeysMngrLoad (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *uri);</pre>
-<p>Loads XML keys file from <code class="PARAMETER">uri</code> to the keys manager <code class="PARAMETER">mngr</code> created
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssAppDefaultKeysMngrLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *uri</code>);</pre>
+<p>Loads XML keys file from <code class="PARAMETER">uri</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+ created
with <a href="xmlsec-nss-app.html#XMLSECNSSAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecNssAppDefaultKeysMngrInit</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN38688"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN38690"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28718"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28723"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the uri.</p></td>
+<td><p>uri</p></td>
+<td><p>the uri.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28728"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN38705"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPDEFAULTKEYSMNGRSAVE"></a><h3>xmlSecNssAppDefaultKeysMngrSave ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssAppDefaultKeysMngrSave (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Saves keys from <code class="PARAMETER">mngr</code> to XML keys file.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssAppDefaultKeysMngrSave (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Saves keys from <code class="PARAMETER">mngr</code>
+ to XML keys file.</p>
+<div class="REFSECT3">
+<a name="AEN38726"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28746"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
+<a name="AEN38728"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28751"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination filename.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28756"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the type of keys to save (public/private/symmetric).</p></td>
+<td><p>filename</p></td>
+<td><p>the destination filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28761"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>type</p></td>
+<td><p>the type of keys to save (public/private/symmetric).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN38749"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPKEYSMNGRCERTLOAD"></a><h3>xmlSecNssAppKeysMngrCertLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssAppKeysMngrCertLoad (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Reads cert from <code class="PARAMETER">filename</code> and adds to the list of trusted or known
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssAppKeysMngrCertLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Reads cert from <code class="PARAMETER">filename</code>
+ and adds to the list of trusted or known
untrusted certs in <code class="PARAMETER">store</code></p>
+<div class="REFSECT3">
+<a name="AEN38774"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28781"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
+<a name="AEN38776"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28786"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28791"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format (PEM or DER).</p></td>
+<td><p>filename</p></td>
+<td><p>the certificate file.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28796"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate type (trusted/untrusted).</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format (PEM or DER).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28801"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>type</p></td>
+<td><p>the certificate type (trusted/untrusted).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN38803"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPKEYSMNGRCERTLOADMEMORY"></a><h3>xmlSecNssAppKeysMngrCertLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssAppKeysMngrCertLoadMemory (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Reads cert from <code class="PARAMETER">data</code> and adds to the list of trusted or known
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssAppKeysMngrCertLoadMemory (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Reads cert from <code class="PARAMETER">data</code>
+ and adds to the list of trusted or known
untrusted certs in <code class="PARAMETER">store</code></p>
+<div class="REFSECT3">
+<a name="AEN38831"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN38833"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28822"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28827"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key binary data.</p></td>
+<td><p>data</p></td>
+<td><p>the key binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28832"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key binary data size.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the key binary data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28837"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate format (PEM or DER).</p></td>
+<td><p>format</p></td>
+<td><p>the certificate format (PEM or DER).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28842"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate type (trusted/untrusted).</p></td>
+<td><p>type</p></td>
+<td><p>the certificate type (trusted/untrusted).</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28847"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN38866"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPKEYSMNGRCERTLOADSECITEM"></a><h3>xmlSecNssAppKeysMngrCertLoadSECItem ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssAppKeysMngrCertLoadSECItem (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>SECItem</font> *secItem,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Reads cert from <code class="PARAMETER">secItem</code> and adds to the list of trusted or known
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssAppKeysMngrCertLoadSECItem (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><font><span class="TYPE">SECItem</span></font> *secItem</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Reads cert from <code class="PARAMETER">secItem</code>
+ and adds to the list of trusted or known
untrusted certs in <code class="PARAMETER">store</code></p>
+<div class="REFSECT3">
+<a name="AEN38891"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN38893"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28867"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28872"><span style="white-space: nowrap"><code class="PARAMETER">secItem</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to SECItem.</p></td>
+<td><p>secItem</p></td>
+<td><p>the pointer to SECItem.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28877"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate format (PEM or DER).</p></td>
+<td><p>format</p></td>
+<td><p>the certificate format (PEM or DER).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28882"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate type (trusted/untrusted).</p></td>
+<td><p>type</p></td>
+<td><p>the certificate type (trusted/untrusted).</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28887"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN38920"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPKEYLOAD"></a><h3>xmlSecNssAppKeyLoad ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecNssAppKeyLoad (const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecNssAppKeyLoad (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key from a file</p>
+<div class="REFSECT3">
+<a name="AEN38946"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28906"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key filename.</p></td>
-</tr>
+<a name="AEN38948"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28911"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file format.</p></td>
+<td><p>filename</p></td>
+<td><p>the key filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28916"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file password.</p></td>
+<td><p>format</p></td>
+<td><p>the key file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28921"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the key file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28926"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the key password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28931"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN38981"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPKEYLOADMEMORY"></a><h3>xmlSecNssAppKeyLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecNssAppKeyLoadMemory (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
-<p>Reads key from a binary <code class="PARAMETER">data</code>.</p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecNssAppKeyLoadMemory (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
+<p>Reads key from a binary <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN39011"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28952"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key binary data.</p></td>
-</tr>
+<a name="AEN39013"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28957"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key binary data size.</p></td>
+<td><p>data</p></td>
+<td><p>the key binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28962"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key data format.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the key binary data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28967"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key data2 password.</p></td>
+<td><p>format</p></td>
+<td><p>the key data format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28972"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the key data2 password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28977"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the key password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN28982"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN39052"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPKEYLOADSECITEM"></a><h3>xmlSecNssAppKeyLoadSECItem ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecNssAppKeyLoadSECItem (<font>SECItem</font> *secItem,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecNssAppKeyLoadSECItem (<code class="PARAMETER"><font><span class="TYPE">SECItem</span></font> *secItem</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key from a file</p>
+<div class="REFSECT3">
+<a name="AEN39078"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29001"><span style="white-space: nowrap"><code class="PARAMETER">secItem</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to sec item.</p></td>
-</tr>
+<a name="AEN39080"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29006"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key format.</p></td>
+<td><p>secItem</p></td>
+<td><p>the pointer to sec item.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29011"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password.</p></td>
+<td><p>format</p></td>
+<td><p>the key format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29016"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the key password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29021"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the key password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29026"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN39113"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPPKCS12LOAD"></a><h3>xmlSecNssAppPkcs12Load ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecNssAppPkcs12Load (const <font>char</font> *filename,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecNssAppPkcs12Load (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key and all associated certificates from the PKCS12 file.
For uniformity, call xmlSecNssAppKeyLoad instead of this function. Pass
in format=xmlSecKeyDataFormatPkcs12.</p>
+<div class="REFSECT3">
+<a name="AEN39136"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN39138"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29044"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 key filename.</p></td>
+<td><p>filename</p></td>
+<td><p>the PKCS12 key filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29049"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 file password.</p></td>
+<td><p>pwd</p></td>
+<td><p>the PKCS12 file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29054"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29059"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29064"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN39165"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPPKCS12LOADMEMORY"></a><h3>xmlSecNssAppPkcs12LoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecNssAppPkcs12LoadMemory (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecNssAppPkcs12LoadMemory (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key and all associated certificates from the PKCS12 binary data.
For uniformity, call xmlSecNssAppKeyLoad instead of this function. Pass
in format=xmlSecKeyDataFormatPkcs12.</p>
+<div class="REFSECT3">
+<a name="AEN39191"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN39193"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29083"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key binary data.</p></td>
+<td><p>data</p></td>
+<td><p>the key binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29088"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key binary data size.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the key binary data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29093"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 password.</p></td>
+<td><p>pwd</p></td>
+<td><p>the PKCS12 password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29098"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29103"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29108"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN39226"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPPKCS12LOADSECITEM"></a><h3>xmlSecNssAppPkcs12LoadSECItem ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecNssAppPkcs12LoadSECItem (<font>SECItem</font> *secItem,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecNssAppPkcs12LoadSECItem (<code class="PARAMETER"><font><span class="TYPE">SECItem</span></font> *secItem</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key and all associated certificates from the PKCS12 SECItem.
For uniformity, call xmlSecNssAppKeyLoad instead of this function. Pass
in format=xmlSecKeyDataFormatPkcs12.</p>
+<div class="REFSECT3">
+<a name="AEN39249"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN39251"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29126"><span style="white-space: nowrap"><code class="PARAMETER">secItem</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <code class="PARAMETER">SECItem</code> object.</p></td>
+<td><p>secItem</p></td>
+<td><p>the <code class="PARAMETER">SECItem</code>
+object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29132"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 file password.</p></td>
+<td><p>pwd</p></td>
+<td><p>the PKCS12 file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29137"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29142"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29147"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN39279"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPKEYCERTLOAD"></a><h3>xmlSecNssAppKeyCertLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssAppKeyCertLoad (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
-<p>Reads the certificate from $<code class="PARAMETER">filename</code> and adds it to key</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssAppKeyCertLoad (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
+<p>Reads the certificate from $<code class="PARAMETER">filename</code>
+ and adds it to key</p>
+<div class="REFSECT3">
+<a name="AEN39300"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29165"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
+<a name="AEN39302"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29170"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate filename.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29175"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>filename</p></td>
+<td><p>the certificate filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29180"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN39323"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPKEYCERTLOADMEMORY"></a><h3>xmlSecNssAppKeyCertLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssAppKeyCertLoadMemory (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
-<p>Reads the certificate from <code class="PARAMETER">data</code> and adds it to key</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssAppKeyCertLoadMemory (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
+<p>Reads the certificate from <code class="PARAMETER">data</code>
+ and adds it to key</p>
+<div class="REFSECT3">
+<a name="AEN39347"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN39349"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29199"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29204"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key binary data.</p></td>
+<td><p>data</p></td>
+<td><p>the key binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29209"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key binary data size.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the key binary data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29214"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate format.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate format.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29219"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN39376"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPKEYCERTLOADSECITEM"></a><h3>xmlSecNssAppKeyCertLoadSECItem ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssAppKeyCertLoadSECItem (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>SECItem</font> *secItem,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
-<p>Reads the certificate from <code class="PARAMETER">secItem</code> and adds it to key</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssAppKeyCertLoadSECItem (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><font><span class="TYPE">SECItem</span></font> *secItem</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
+<p>Reads the certificate from <code class="PARAMETER">secItem</code>
+ and adds it to key</p>
+<div class="REFSECT3">
+<a name="AEN39397"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN39399"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29237"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29242"><span style="white-space: nowrap"><code class="PARAMETER">secItem</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to SECItem.</p></td>
+<td><p>secItem</p></td>
+<td><p>the pointer to SECItem.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29247"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate format.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate format.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29252"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN39420"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPKEYFROMCERTLOADSECITEM"></a><h3>xmlSecNssAppKeyFromCertLoadSECItem ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecNssAppKeyFromCertLoadSECItem (<font>SECItem</font> *secItem,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecNssAppKeyFromCertLoadSECItem (<code class="PARAMETER"><font><span class="TYPE">SECItem</span></font> *secItem</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
<p>Loads public key from cert.</p>
+<div class="REFSECT3">
+<a name="AEN39437"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29268"><span style="white-space: nowrap"><code class="PARAMETER">secItem</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <code class="PARAMETER">SECItem</code> object.</p></td>
-</tr>
+<a name="AEN39439"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29274"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the cert format.</p></td>
+<td><p>secItem</p></td>
+<td><p>the <code class="PARAMETER">SECItem</code>
+object.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29279"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to key or NULL if an error occurs.</p></td>
+<td><p>format</p></td>
+<td><p>the cert format.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN39455"></a><h4>Returns</h4>
+<p> pointer to key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSAPPGETDEFAULTPWDCALLBACK"></a><h3>xmlSecNssAppGetDefaultPwdCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font>* xmlSecNssAppGetDefaultPwdCallback (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font> *
+xmlSecNssAppGetDefaultPwdCallback (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Gets default password callback.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29293"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> default password callback.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN39468"></a><h4>Returns</h4>
+<p> default password callback.</p>
+</div>
</div>
</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-APP.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<p></p>
+</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-nss-ref.html"><b><<< XML Security Library for NSS API Reference.</b></a></td>
<td align="right"><a accesskey="n" href="xmlsec-nss-bignum.html"><b>bignum >>></b></a></td>
diff --git a/docs/api/xmlsec-nss-bignum.html b/docs/api/xmlsec-nss-bignum.html
index e30437b..5b91538 100644
--- a/docs/api/xmlsec-nss-bignum.html
+++ b/docs/api/xmlsec-nss-bignum.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for NSS API Reference." href="xmlsec-nss-ref.html">
<link rel="PREVIOUS" title="app" href="xmlsec-nss-app.html">
<link rel="NEXT" title="crypto" href="xmlsec-nss-crypto.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,96 +101,145 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-nss-app.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-nss-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-nss-app.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-nss-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-nss-crypto.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-nss-crypto.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-NSS-BIGNUM"></a>bignum</h1>
<div class="REFNAMEDIV">
-<a name="AEN29303"></a><h2>Name</h2>bignum -- Big numbers helper functions.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-NSS-BIGNUM.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>SECItem</font>* <a href="xmlsec-nss-bignum.html#XMLSECNSSNODEGETBIGNUMVALUE">xmlSecNssNodeGetBigNumValue</a> (<font>PRArenaPool</font> *arena,
- const <font>xmlNodePtr</font> cur,
- <font>SECItem</font> *a);
-<font>int</font> <a href="xmlsec-nss-bignum.html#XMLSECNSSNODESETBIGNUMVALUE">xmlSecNssNodeSetBigNumValue</a> (<font>xmlNodePtr</font> cur,
- const <font>SECItem</font> *a,
- <font>int</font> addLineBreaks);</pre>
+<a name="AEN39479"></a><h2>Name</h2>bignum -- Big numbers helper functions.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-BIGNUM.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN39484"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>
+<font><span class="RETURNVALUE">SECItem</span></font> *</td>
+<td>
+<a href="xmlsec-nss-bignum.html#XMLSECNSSNODEGETBIGNUMVALUE">xmlSecNssNodeGetBigNumValue</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-bignum.html#XMLSECNSSNODESETBIGNUMVALUE">xmlSecNssNodeSetBigNumValue</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-NSS-BIGNUM.DESCRIPTION"></a><h2>Description</h2>
<p>Big numbers helper functions.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-NSS-BIGNUM.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-NSS-BIGNUM.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECNSSNODEGETBIGNUMVALUE"></a><h3>xmlSecNssNodeGetBigNumValue ()</h3>
-<pre class="PROGRAMLISTING"><font>SECItem</font>* xmlSecNssNodeGetBigNumValue (<font>PRArenaPool</font> *arena,
- const <font>xmlNodePtr</font> cur,
- <font>SECItem</font> *a);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">SECItem</span></font> *
+xmlSecNssNodeGetBigNumValue (<code class="PARAMETER"><font><span class="TYPE">PRArenaPool</span></font> *arena</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlNodePtr</span></font> cur</code>,
+ <code class="PARAMETER"><font><span class="TYPE">SECItem</span></font> *a</code>);</pre>
<p>Converts the node content from CryptoBinary format
(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-CryptoBinary</span></font>)
to a SECItem. If no SECItem object provided then a new
one is created (caller is responsible for freeing it).</p>
+<div class="REFSECT3">
+<a name="AEN39525"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29338"><span style="white-space: nowrap"><code class="PARAMETER">arena</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the arena from which to allocate memory</p></td>
-</tr>
+<a name="AEN39527"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29343"><span style="white-space: nowrap"><code class="PARAMETER">cur</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the poitner to an XML node.</p></td>
+<td><p>arena</p></td>
+<td><p>the arena from which to allocate memory</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29348"><span style="white-space: nowrap"><code class="PARAMETER">a</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> a SECItem object to hold the BigNum value</p></td>
+<td><p>cur</p></td>
+<td><p>the poitner to an XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29353"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> a pointer to SECItem produced from CryptoBinary string
-or NULL if an error occurs.</p></td>
+<td><p>a</p></td>
+<td><p>a SECItem object to hold the BigNum value</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN39548"></a><h4>Returns</h4>
+<p> a pointer to SECItem produced from CryptoBinary string
+or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSNODESETBIGNUMVALUE"></a><h3>xmlSecNssNodeSetBigNumValue ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssNodeSetBigNumValue (<font>xmlNodePtr</font> cur,
- const <font>SECItem</font> *a,
- <font>int</font> addLineBreaks);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssNodeSetBigNumValue (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> cur</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">SECItem</span></font> *a</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> addLineBreaks</code>);</pre>
<p>Converts SECItem to CryptoBinary string
(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-CryptoBinary</span></font>)
and sets it as the content of the given node. If the
addLineBreaks is set then line breaks are added
before and after the CryptoBinary string.</p>
+<div class="REFSECT3">
+<a name="AEN39570"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29372"><span style="white-space: nowrap"><code class="PARAMETER">cur</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
-</tr>
+<a name="AEN39572"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29377"><span style="white-space: nowrap"><code class="PARAMETER">a</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> a SECItem containing the BigNum value.</p></td>
+<td><p>cur</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29382"><span style="white-space: nowrap"><code class="PARAMETER">addLineBreaks</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> if the flag is equal to 1 then
- linebreaks will be added before and after
- new buffer content.</p></td>
+<td><p>a</p></td>
+<td><p>a SECItem containing the BigNum value.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29387"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or -1 otherwise.</p></td>
+<td><p>addLineBreaks</p></td>
+<td><p>if the flag is equal to 1 then
+linebreaks will be added before and after
+new buffer content.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
+<div class="REFSECT3">
+<a name="AEN39593"></a><h4>Returns</h4>
+<p> 0 on success or -1 otherwise.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-BIGNUM.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<p></p>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-nss-app.html"><b><<< app</b></a></td>
diff --git a/docs/api/xmlsec-nss-crypto.html b/docs/api/xmlsec-nss-crypto.html
index 2e98ef9..f0b83ea 100644
--- a/docs/api/xmlsec-nss-crypto.html
+++ b/docs/api/xmlsec-nss-crypto.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for NSS API Reference." href="xmlsec-nss-ref.html">
<link rel="PREVIOUS" title="bignum" href="xmlsec-nss-bignum.html">
<link rel="NEXT" title="keysstore" href="xmlsec-nss-keysstore.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,971 +101,1319 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-nss-bignum.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-nss-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-nss-bignum.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-nss-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-nss-keysstore.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-nss-keysstore.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-NSS-CRYPTO"></a>crypto</h1>
<div class="REFNAMEDIV">
-<a name="AEN29397"></a><h2>Name</h2>crypto -- Crypto transforms implementation for NSS.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-NSS-CRYPTO.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>xmlSecCryptoDLFunctionsPtr</font> <a href="xmlsec-nss-crypto.html#XMLSECCRYPTOGETFUNCTIONS-NSS">xmlSecCryptoGetFunctions_nss</a>
- (void);
-<font>int</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSINIT">xmlSecNssInit</a> (void);
-<font>int</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSSHUTDOWN">xmlSecNssShutdown</a> (void);
-<font>int</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSKEYSMNGRINIT">xmlSecNssKeysMngrInit</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);
-<font>int</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSGENERATERANDOM">xmlSecNssGenerateRandom</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<font>void</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSERRORSDEFAULTCALLBACK">xmlSecNssErrorsDefaultCallback</a> (const <font>char</font> *file,
- <font>int</font> line,
- const <font>char</font> *func,
- const <font>char</font> *errorObject,
- const <font>char</font> *errorSubject,
- <font>int</font> reason,
- const <font>char</font> *msg);
-<font>PK11SlotInfo</font> * <a href="xmlsec-nss-crypto.html#XMLSECNSSGETINTERNALKEYSLOT">xmlSecNssGetInternalKeySlot</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATAAESID">xmlSecNssKeyDataAesId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATAAESGETKLASS">xmlSecNssKeyDataAesGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATAAESSET">xmlSecNssKeyDataAesSet</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMAES128CBCID">xmlSecNssTransformAes128CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMAES128CBCGETKLASS">xmlSecNssTransformAes128CbcGetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMAES192CBCID">xmlSecNssTransformAes192CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMAES192CBCGETKLASS">xmlSecNssTransformAes192CbcGetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMAES256CBCID">xmlSecNssTransformAes256CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMAES256CBCGETKLASS">xmlSecNssTransformAes256CbcGetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWAES128ID">xmlSecNssTransformKWAes128Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWAES128GETKLASS">xmlSecNssTransformKWAes128GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWAES192ID">xmlSecNssTransformKWAes192Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWAES192GETKLASS">xmlSecNssTransformKWAes192GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWAES256ID">xmlSecNssTransformKWAes256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWAES256GETKLASS">xmlSecNssTransformKWAes256GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATADESID">xmlSecNssKeyDataDesId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATADESGETKLASS">xmlSecNssKeyDataDesGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATADESSET">xmlSecNssKeyDataDesSet</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMDES3CBCID">xmlSecNssTransformDes3CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMDES3CBCGETKLASS">xmlSecNssTransformDes3CbcGetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWDES3ID">xmlSecNssTransformKWDes3Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWDES3GETKLASS">xmlSecNssTransformKWDes3GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATADSAID">xmlSecNssKeyDataDsaId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATADSAGETKLASS">xmlSecNssKeyDataDsaGetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMDSASHA1ID">xmlSecNssTransformDsaSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMDSASHA1GETKLASS">xmlSecNssTransformDsaSha1GetKlass</a> (void);
-<font>int</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSHMACGETMINOUTPUTLENGTH">xmlSecNssHmacGetMinOutputLength</a> (void);
-<font>void</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSHMACSETMINOUTPUTLENGTH">xmlSecNssHmacSetMinOutputLength</a> (<font>int</font> min_length);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATAHMACID">xmlSecNssKeyDataHmacId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATAHMACGETKLASS">xmlSecNssKeyDataHmacGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATAHMACSET">xmlSecNssKeyDataHmacSet</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACMD5ID">xmlSecNssTransformHmacMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACMD5GETKLASS">xmlSecNssTransformHmacMd5GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACRIPEMD160ID">xmlSecNssTransformHmacRipemd160Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACRIPEMD160GETKLASS">xmlSecNssTransformHmacRipemd160GetKlass</a>
- (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA1ID">xmlSecNssTransformHmacSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA1GETKLASS">xmlSecNssTransformHmacSha1GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA256ID">xmlSecNssTransformHmacSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA256GETKLASS">xmlSecNssTransformHmacSha256GetKlass</a>
- (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA384ID">xmlSecNssTransformHmacSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA384GETKLASS">xmlSecNssTransformHmacSha384GetKlass</a>
- (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA512ID">xmlSecNssTransformHmacSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA512GETKLASS">xmlSecNssTransformHmacSha512GetKlass</a>
- (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATARSAID">xmlSecNssKeyDataRsaId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATARSAGETKLASS">xmlSecNssKeyDataRsaGetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSAMD5ID">xmlSecNssTransformRsaMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSAMD5GETKLASS">xmlSecNssTransformRsaMd5GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA1ID">xmlSecNssTransformRsaSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA1GETKLASS">xmlSecNssTransformRsaSha1GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA256ID">xmlSecNssTransformRsaSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA256GETKLASS">xmlSecNssTransformRsaSha256GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA384ID">xmlSecNssTransformRsaSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA384GETKLASS">xmlSecNssTransformRsaSha384GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA512ID">xmlSecNssTransformRsaSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA512GETKLASS">xmlSecNssTransformRsaSha512GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSAPKCS1ID">xmlSecNssTransformRsaPkcs1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSAPKCS1GETKLASS">xmlSecNssTransformRsaPkcs1GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSAOAEPID">xmlSecNssTransformRsaOaepId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSAOAEPGETKLASS">xmlSecNssTransformRsaOaepGetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA1ID">xmlSecNssTransformSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA1GETKLASS">xmlSecNssTransformSha1GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA256ID">xmlSecNssTransformSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA256GETKLASS">xmlSecNssTransformSha256GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA384ID">xmlSecNssTransformSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA384GETKLASS">xmlSecNssTransformSha384GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA512ID">xmlSecNssTransformSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA512GETKLASS">xmlSecNssTransformSha512GetKlass</a> (void);
-#define <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMMD5ID">xmlSecNssTransformMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMMD5GETKLASS">xmlSecNssTransformMd5GetKlass</a> (void);</pre>
+<a name="AEN39604"></a><h2>Name</h2>crypto -- Crypto transforms implementation for NSS.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-CRYPTO.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN39609"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecCryptoDLFunctionsPtr</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECCRYPTOGETFUNCTIONS-NSS">xmlSecCryptoGetFunctions_nss</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSINIT">xmlSecNssInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSSHUTDOWN">xmlSecNssShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSKEYSMNGRINIT">xmlSecNssKeysMngrInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSGENERATERANDOM">xmlSecNssGenerateRandom</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSERRORSDEFAULTCALLBACK">xmlSecNssErrorsDefaultCallback</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">PK11SlotInfo</span></font> *</td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSGETINTERNALKEYSLOT">xmlSecNssGetInternalKeySlot</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATAAESGETKLASS">xmlSecNssKeyDataAesGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATAAESSET">xmlSecNssKeyDataAesSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMAES128CBCGETKLASS">xmlSecNssTransformAes128CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMAES192CBCGETKLASS">xmlSecNssTransformAes192CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMAES256CBCGETKLASS">xmlSecNssTransformAes256CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWAES128GETKLASS">xmlSecNssTransformKWAes128GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWAES192GETKLASS">xmlSecNssTransformKWAes192GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWAES256GETKLASS">xmlSecNssTransformKWAes256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATADESGETKLASS">xmlSecNssKeyDataDesGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATADESSET">xmlSecNssKeyDataDesSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMDES3CBCGETKLASS">xmlSecNssTransformDes3CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWDES3GETKLASS">xmlSecNssTransformKWDes3GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATADSAGETKLASS">xmlSecNssKeyDataDsaGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMDSASHA1GETKLASS">xmlSecNssTransformDsaSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSHMACGETMINOUTPUTLENGTH">xmlSecNssHmacGetMinOutputLength</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSHMACSETMINOUTPUTLENGTH">xmlSecNssHmacSetMinOutputLength</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATAHMACGETKLASS">xmlSecNssKeyDataHmacGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATAHMACSET">xmlSecNssKeyDataHmacSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACMD5GETKLASS">xmlSecNssTransformHmacMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACRIPEMD160GETKLASS">xmlSecNssTransformHmacRipemd160GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA1GETKLASS">xmlSecNssTransformHmacSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA256GETKLASS">xmlSecNssTransformHmacSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA384GETKLASS">xmlSecNssTransformHmacSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA512GETKLASS">xmlSecNssTransformHmacSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATARSAGETKLASS">xmlSecNssKeyDataRsaGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSAMD5GETKLASS">xmlSecNssTransformRsaMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA1GETKLASS">xmlSecNssTransformRsaSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA256GETKLASS">xmlSecNssTransformRsaSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA384GETKLASS">xmlSecNssTransformRsaSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA512GETKLASS">xmlSecNssTransformRsaSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSAPKCS1GETKLASS">xmlSecNssTransformRsaPkcs1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSAOAEPGETKLASS">xmlSecNssTransformRsaOaepGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA1GETKLASS">xmlSecNssTransformSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA256GETKLASS">xmlSecNssTransformSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA384GETKLASS">xmlSecNssTransformSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA512GETKLASS">xmlSecNssTransformSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMMD5GETKLASS">xmlSecNssTransformMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-CRYPTO.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN39922"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATAAESID">xmlSecNssKeyDataAesId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMAES128CBCID">xmlSecNssTransformAes128CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMAES192CBCID">xmlSecNssTransformAes192CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMAES256CBCID">xmlSecNssTransformAes256CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWAES128ID">xmlSecNssTransformKWAes128Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWAES192ID">xmlSecNssTransformKWAes192Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWAES256ID">xmlSecNssTransformKWAes256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATADESID">xmlSecNssKeyDataDesId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMDES3CBCID">xmlSecNssTransformDes3CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMKWDES3ID">xmlSecNssTransformKWDes3Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATADSAID">xmlSecNssKeyDataDsaId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMDSASHA1ID">xmlSecNssTransformDsaSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATAHMACID">xmlSecNssKeyDataHmacId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACMD5ID">xmlSecNssTransformHmacMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACRIPEMD160ID">xmlSecNssTransformHmacRipemd160Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA1ID">xmlSecNssTransformHmacSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA256ID">xmlSecNssTransformHmacSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA384ID">xmlSecNssTransformHmacSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMHMACSHA512ID">xmlSecNssTransformHmacSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSKEYDATARSAID">xmlSecNssKeyDataRsaId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSAMD5ID">xmlSecNssTransformRsaMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA1ID">xmlSecNssTransformRsaSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA256ID">xmlSecNssTransformRsaSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA384ID">xmlSecNssTransformRsaSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSASHA512ID">xmlSecNssTransformRsaSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSAPKCS1ID">xmlSecNssTransformRsaPkcs1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMRSAOAEPID">xmlSecNssTransformRsaOaepId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA1ID">xmlSecNssTransformSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA256ID">xmlSecNssTransformSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA384ID">xmlSecNssTransformSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMSHA512ID">xmlSecNssTransformSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-crypto.html#XMLSECNSSTRANSFORMMD5ID">xmlSecNssTransformMd5Id</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-NSS-CRYPTO.DESCRIPTION"></a><h2>Description</h2>
<p>Crypto transforms implementation for NSS.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-NSS-CRYPTO.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-NSS-CRYPTO.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECCRYPTOGETFUNCTIONS-NSS"></a><h3>xmlSecCryptoGetFunctions_nss ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecCryptoDLFunctionsPtr</font> xmlSecCryptoGetFunctions_nss
- (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecCryptoDLFunctionsPtr</span></font>
+xmlSecCryptoGetFunctions_nss (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Gets the pointer to xmlsec-nss functions table.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29557"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the xmlsec-nss functions table or NULL if an error occurs.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN40068"></a><h4>Returns</h4>
+<p> the xmlsec-nss functions table or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSINIT"></a><h3>xmlSecNssInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssInit (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssInit (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>XMLSec library specific crypto engine initialization.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29571"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN40081"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSSHUTDOWN"></a><h3>xmlSecNssShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssShutdown (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>XMLSec library specific crypto engine shutdown.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29585"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN40094"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYSMNGRINIT"></a><h3>xmlSecNssKeysMngrInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssKeysMngrInit (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssKeysMngrInit (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>);</pre>
<p>Adds NSS specific key data stores in keys manager.</p>
+<div class="REFSECT3">
+<a name="AEN40108"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN40110"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29600"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29605"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN40119"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSGENERATERANDOM"></a><h3>xmlSecNssGenerateRandom ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssGenerateRandom (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
-<p>Generates <code class="PARAMETER">size</code> random bytes and puts result in <code class="PARAMETER">buffer</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29623"><span style="white-space: nowrap"><code class="PARAMETER">buffer</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination buffer.</p></td>
-</tr>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssGenerateRandom (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buffer</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
+<p>Generates <code class="PARAMETER">size</code>
+ random bytes and puts result in <code class="PARAMETER">buffer</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN40138"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN40140"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29628"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the numer of bytes to generate.</p></td>
+<td><p>buffer</p></td>
+<td><p>the destination buffer.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29633"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>size</p></td>
+<td><p>the numer of bytes to generate.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN40155"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSERRORSDEFAULTCALLBACK"></a><h3>xmlSecNssErrorsDefaultCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecNssErrorsDefaultCallback (const <font>char</font> *file,
- <font>int</font> line,
- const <font>char</font> *func,
- const <font>char</font> *errorObject,
- const <font>char</font> *errorSubject,
- <font>int</font> reason,
- const <font>char</font> *msg);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecNssErrorsDefaultCallback (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *file</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> line</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *func</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *errorObject</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *errorSubject</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> reason</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *msg</code>);</pre>
<p>The default errors reporting callback function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<div class="REFSECT3">
+<a name="AEN40187"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN40189"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29654"><span style="white-space: nowrap"><code class="PARAMETER">file</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location file name (__FILE__ macro).</p></td>
+<td><p>file</p></td>
+<td><p>the error location file name (__FILE__ macro).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29659"><span style="white-space: nowrap"><code class="PARAMETER">line</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location line number (__LINE__ macro).</p></td>
+<td><p>line</p></td>
+<td><p>the error location line number (__LINE__ macro).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29664"><span style="white-space: nowrap"><code class="PARAMETER">func</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location function name (__FUNCTION__ macro).</p></td>
+<td><p>func</p></td>
+<td><p>the error location function name (__FUNCTION__ macro).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29669"><span style="white-space: nowrap"><code class="PARAMETER">errorObject</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error specific error object</p></td>
+<td><p>errorObject</p></td>
+<td><p>the error specific error object</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29674"><span style="white-space: nowrap"><code class="PARAMETER">errorSubject</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error specific error subject.</p></td>
+<td><p>errorSubject</p></td>
+<td><p>the error specific error subject.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29679"><span style="white-space: nowrap"><code class="PARAMETER">reason</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error code.</p></td>
+<td><p>reason</p></td>
+<td><p>the error code.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29684"><span style="white-space: nowrap"><code class="PARAMETER">msg</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the additional error message.</p></td>
+<td><p>msg</p></td>
+<td><p>the additional error message.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSGETINTERNALKEYSLOT"></a><h3>xmlSecNssGetInternalKeySlot ()</h3>
-<pre class="PROGRAMLISTING"><font>PK11SlotInfo</font> * xmlSecNssGetInternalKeySlot (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">PK11SlotInfo</span></font> *
+xmlSecNssGetInternalKeySlot (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Gets internal NSS key slot.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29698"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> internal key slot and initializes it if needed.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN40244"></a><h4>Returns</h4>
+<p> internal key slot and initializes it if needed.</p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSKEYDATAAESID"></a><h3>xmlSecNssKeyDataAesId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecNssKeyDataAesId</pre>
-<p>The AES key data klass.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATAAESGETKLASS"></a><h3>xmlSecNssKeyDataAesGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecNssKeyDataAesGetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecNssKeyDataAesGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The AES key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29719"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES key data klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN40257"></a><h4>Returns</h4>
+<p> AES key data klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATAAESSET"></a><h3>xmlSecNssKeyDataAesSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssKeyDataAesSet (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssKeyDataAesSet (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
<p>Sets the value of AES key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<div class="REFSECT3">
+<a name="AEN40277"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN40279"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29736"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to AES key data.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to AES key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29741"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the key value size (in bytes).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN40300"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMAES128CBCGETKLASS"></a><h3>xmlSecNssTransformAes128CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformAes128CbcGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 128 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40313"></a><h4>Returns</h4>
+<p> pointer to AES 128 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMAES192CBCGETKLASS"></a><h3>xmlSecNssTransformAes192CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformAes192CbcGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 192 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40326"></a><h4>Returns</h4>
+<p> pointer to AES 192 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMAES256CBCGETKLASS"></a><h3>xmlSecNssTransformAes256CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformAes256CbcGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 256 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40339"></a><h4>Returns</h4>
+<p> pointer to AES 256 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMKWAES128GETKLASS"></a><h3>xmlSecNssTransformKWAes128GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformKWAes128GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-128 key wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40352"></a><h4>Returns</h4>
+<p> AES-128 key wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMKWAES192GETKLASS"></a><h3>xmlSecNssTransformKWAes192GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformKWAes192GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-192 key wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40365"></a><h4>Returns</h4>
+<p> AES-192 key wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMKWAES256GETKLASS"></a><h3>xmlSecNssTransformKWAes256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformKWAes256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-256 key wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40378"></a><h4>Returns</h4>
+<p> AES-256 key wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSKEYDATADESGETKLASS"></a><h3>xmlSecNssKeyDataDesGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecNssKeyDataDesGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DES key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN40391"></a><h4>Returns</h4>
+<p> DES key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSKEYDATADESSET"></a><h3>xmlSecNssKeyDataDesSet ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssKeyDataDesSet (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
+<p>Sets the value of DES key data.</p>
+<div class="REFSECT3">
+<a name="AEN40411"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN40413"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to DES key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29746"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value size (in bytes).</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29751"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>bufSize</p></td>
+<td><p>the key value size (in bytes).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN40434"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMAES128CBCID"></a><h3>xmlSecNssTransformAes128CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecNssTransformAes128CbcId</pre>
-<p>The AES128 CBC cipher transform klass.</p>
-<p></p>
+<a name="XMLSECNSSTRANSFORMDES3CBCGETKLASS"></a><h3>xmlSecNssTransformDes3CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformDes3CbcGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Triple DES CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40447"></a><h4>Returns</h4>
+<p> pointer to Triple DES encryption transform.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMAES128CBCGETKLASS"></a><h3>xmlSecNssTransformAes128CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformAes128CbcGetKlass (void);</pre>
-<p>AES 128 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29772"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 128 CBC encryption transform.</p></td>
-</tr></tbody></table>
+<a name="XMLSECNSSTRANSFORMKWDES3GETKLASS"></a><h3>xmlSecNssTransformKWDes3GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformKWDes3GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The Triple DES key wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40460"></a><h4>Returns</h4>
+<p> Triple DES key wrapper transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMAES192CBCID"></a><h3>xmlSecNssTransformAes192CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecNssTransformAes192CbcId</pre>
-<p>The AES192 CBC cipher transform klass.</p>
-<p></p>
+<a name="XMLSECNSSKEYDATADSAGETKLASS"></a><h3>xmlSecNssKeyDataDsaGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecNssKeyDataDsaGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DSA key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN40473"></a><h4>Returns</h4>
+<p> pointer to DSA key data klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMAES192CBCGETKLASS"></a><h3>xmlSecNssTransformAes192CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformAes192CbcGetKlass (void);</pre>
-<p>AES 192 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29793"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 192 CBC encryption transform.</p></td>
-</tr></tbody></table>
+<a name="XMLSECNSSTRANSFORMDSASHA1GETKLASS"></a><h3>xmlSecNssTransformDsaSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformDsaSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DSA-SHA1 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40486"></a><h4>Returns</h4>
+<p> DSA-SHA1 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMAES256CBCID"></a><h3>xmlSecNssTransformAes256CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecNssTransformAes256CbcId</pre>
-<p>The AES256 CBC cipher transform klass.</p>
-<p></p>
+<a name="XMLSECNSSHMACGETMINOUTPUTLENGTH"></a><h3>xmlSecNssHmacGetMinOutputLength ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssHmacGetMinOutputLength (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Gets the value of min HMAC length.</p>
+<div class="REFSECT3">
+<a name="AEN40499"></a><h4>Returns</h4>
+<p> the min HMAC output length</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMAES256CBCGETKLASS"></a><h3>xmlSecNssTransformAes256CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformAes256CbcGetKlass (void);</pre>
-<p>AES 256 CBC encryption transform klass.</p>
-<p></p>
+<a name="XMLSECNSSHMACSETMINOUTPUTLENGTH"></a><h3>xmlSecNssHmacSetMinOutputLength ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecNssHmacSetMinOutputLength (<code class="PARAMETER"><font><span class="TYPE">int</span></font> min_length</code>);</pre>
+<p>Sets the min HMAC output length</p>
+<div class="REFSECT3">
+<a name="AEN40513"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN40515"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>min_length</p></td>
+<td><p>the new min length</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29814"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 256 CBC encryption transform.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMKWAES128ID"></a><h3>xmlSecNssTransformKWAes128Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecNssTransformKWAes128Id</pre>
-<p>The AES 128 key wrap transform klass.</p>
-<p></p>
+<a name="XMLSECNSSKEYDATAHMACGETKLASS"></a><h3>xmlSecNssKeyDataHmacGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecNssKeyDataHmacGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN40534"></a><h4>Returns</h4>
+<p> HMAC key data klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMKWAES128GETKLASS"></a><h3>xmlSecNssTransformKWAes128GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformKWAes128GetKlass (void);</pre>
-<p>The AES-128 key wrapper transform klass.</p>
-<p></p>
+<a name="XMLSECNSSKEYDATAHMACSET"></a><h3>xmlSecNssKeyDataHmacSet ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssKeyDataHmacSet (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
+<p>Sets the value of HMAC key data.</p>
+<div class="REFSECT3">
+<a name="AEN40554"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN40556"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to HMAC key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buf</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the key value size (in bytes).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29835"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-128 key wrapper transform klass.</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN40577"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMKWAES192ID"></a><h3>xmlSecNssTransformKWAes192Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecNssTransformKWAes192Id</pre>
-<p>The AES 192 key wrap transform klass.</p>
-<p></p>
+<a name="XMLSECNSSTRANSFORMHMACMD5GETKLASS"></a><h3>xmlSecNssTransformHmacMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformHmacMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-MD5 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40590"></a><h4>Returns</h4>
+<p> the HMAC-MD5 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMKWAES192GETKLASS"></a><h3>xmlSecNssTransformKWAes192GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformKWAes192GetKlass (void);</pre>
-<p>The AES-192 key wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29856"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-192 key wrapper transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECNSSTRANSFORMHMACRIPEMD160GETKLASS"></a><h3>xmlSecNssTransformHmacRipemd160GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformHmacRipemd160GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-RIPEMD160 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40603"></a><h4>Returns</h4>
+<p> the HMAC-RIPEMD160 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMHMACSHA1GETKLASS"></a><h3>xmlSecNssTransformHmacSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformHmacSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA1 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40616"></a><h4>Returns</h4>
+<p> the HMAC-SHA1 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMHMACSHA256GETKLASS"></a><h3>xmlSecNssTransformHmacSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformHmacSha256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA256 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40629"></a><h4>Returns</h4>
+<p> the HMAC-SHA256 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMHMACSHA384GETKLASS"></a><h3>xmlSecNssTransformHmacSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformHmacSha384GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA384 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40642"></a><h4>Returns</h4>
+<p> the HMAC-SHA384 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMHMACSHA512GETKLASS"></a><h3>xmlSecNssTransformHmacSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformHmacSha512GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA512 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40655"></a><h4>Returns</h4>
+<p> the HMAC-SHA512 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSKEYDATARSAGETKLASS"></a><h3>xmlSecNssKeyDataRsaGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecNssKeyDataRsaGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN40668"></a><h4>Returns</h4>
+<p> pointer to RSA key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMRSAMD5GETKLASS"></a><h3>xmlSecNssTransformRsaMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformRsaMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-MD5 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40681"></a><h4>Returns</h4>
+<p> RSA-MD5 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMRSASHA1GETKLASS"></a><h3>xmlSecNssTransformRsaSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformRsaSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA1 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40694"></a><h4>Returns</h4>
+<p> RSA-SHA1 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMRSASHA256GETKLASS"></a><h3>xmlSecNssTransformRsaSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformRsaSha256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA256 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40707"></a><h4>Returns</h4>
+<p> RSA-SHA256 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMRSASHA384GETKLASS"></a><h3>xmlSecNssTransformRsaSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformRsaSha384GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA384 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40720"></a><h4>Returns</h4>
+<p> RSA-SHA384 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMRSASHA512GETKLASS"></a><h3>xmlSecNssTransformRsaSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformRsaSha512GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA512 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40733"></a><h4>Returns</h4>
+<p> RSA-SHA512 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMRSAPKCS1GETKLASS"></a><h3>xmlSecNssTransformRsaPkcs1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformRsaPkcs1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-PKCS1 key transport transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40746"></a><h4>Returns</h4>
+<p> RSA-PKCS1 key transport transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMRSAOAEPGETKLASS"></a><h3>xmlSecNssTransformRsaOaepGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformRsaOaepGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-PKCS1 key transport transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40759"></a><h4>Returns</h4>
+<p> RSA-PKCS1 key transport transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMSHA1GETKLASS"></a><h3>xmlSecNssTransformSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA-1 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40772"></a><h4>Returns</h4>
+<p> pointer to SHA-1 digest transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMSHA256GETKLASS"></a><h3>xmlSecNssTransformSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformSha256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA256 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40785"></a><h4>Returns</h4>
+<p> pointer to SHA256 digest transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMSHA384GETKLASS"></a><h3>xmlSecNssTransformSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformSha384GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA384 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40798"></a><h4>Returns</h4>
+<p> pointer to SHA384 digest transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMSHA512GETKLASS"></a><h3>xmlSecNssTransformSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformSha512GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA512 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40811"></a><h4>Returns</h4>
+<p> pointer to SHA512 digest transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMMD5GETKLASS"></a><h3>xmlSecNssTransformMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecNssTransformMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>MD5 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN40824"></a><h4>Returns</h4>
+<p> pointer to MD5 digest transform klass.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-CRYPTO.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECNSSKEYDATAAESID"></a><h3>xmlSecNssKeyDataAesId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecNssKeyDataAesId</pre>
+<p>The AES key data klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMAES128CBCID"></a><h3>xmlSecNssTransformAes128CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecNssTransformAes128CbcId</pre>
+<p>The AES128 CBC cipher transform klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMAES192CBCID"></a><h3>xmlSecNssTransformAes192CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecNssTransformAes192CbcId</pre>
+<p>The AES192 CBC cipher transform klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMAES256CBCID"></a><h3>xmlSecNssTransformAes256CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecNssTransformAes256CbcId</pre>
+<p>The AES256 CBC cipher transform klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMKWAES128ID"></a><h3>xmlSecNssTransformKWAes128Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecNssTransformKWAes128Id</pre>
+<p>The AES 128 key wrap transform klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSTRANSFORMKWAES192ID"></a><h3>xmlSecNssTransformKWAes192Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecNssTransformKWAes192Id</pre>
+<p>The AES 192 key wrap transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMKWAES256ID"></a><h3>xmlSecNssTransformKWAes256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformKWAes256Id</pre>
<p>The AES 256 key wrap transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMKWAES256GETKLASS"></a><h3>xmlSecNssTransformKWAes256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformKWAes256GetKlass (void);</pre>
-<p>The AES-256 key wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29877"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-256 key wrapper transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATADESID"></a><h3>xmlSecNssKeyDataDesId</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssKeyDataDesId</pre>
<p>The DES key data klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSKEYDATADESGETKLASS"></a><h3>xmlSecNssKeyDataDesGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecNssKeyDataDesGetKlass (void);</pre>
-<p>The DES key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29898"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DES key data klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSKEYDATADESSET"></a><h3>xmlSecNssKeyDataDesSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssKeyDataDesSet (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
-<p>Sets the value of DES key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29915"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to DES key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29920"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29925"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value size (in bytes).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN29930"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMDES3CBCID"></a><h3>xmlSecNssTransformDes3CbcId</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformDes3CbcId</pre>
<p>The Triple DES CBC cipher transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMDES3CBCGETKLASS"></a><h3>xmlSecNssTransformDes3CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformDes3CbcGetKlass (void);</pre>
-<p>Triple DES CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29951"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to Triple DES encryption transform.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMKWDES3ID"></a><h3>xmlSecNssTransformKWDes3Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformKWDes3Id</pre>
<p>The DES3 KW transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMKWDES3GETKLASS"></a><h3>xmlSecNssTransformKWDes3GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformKWDes3GetKlass (void);</pre>
-<p>The Triple DES key wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29972"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> Triple DES key wrapper transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATADSAID"></a><h3>xmlSecNssKeyDataDsaId</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssKeyDataDsaId</pre>
<p>The DSA key klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSKEYDATADSAGETKLASS"></a><h3>xmlSecNssKeyDataDsaGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecNssKeyDataDsaGetKlass (void);</pre>
-<p>The DSA key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN29993"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to DSA key data klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMDSASHA1ID"></a><h3>xmlSecNssTransformDsaSha1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformDsaSha1Id</pre>
<p>The DSA SHA1 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMDSASHA1GETKLASS"></a><h3>xmlSecNssTransformDsaSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformDsaSha1GetKlass (void);</pre>
-<p>The DSA-SHA1 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30014"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DSA-SHA1 signature transform klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSHMACGETMINOUTPUTLENGTH"></a><h3>xmlSecNssHmacGetMinOutputLength ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssHmacGetMinOutputLength (void);</pre>
-<p>Gets the value of min HMAC length.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30028"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the min HMAC output length</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSHMACSETMINOUTPUTLENGTH"></a><h3>xmlSecNssHmacSetMinOutputLength ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecNssHmacSetMinOutputLength (<font>int</font> min_length);</pre>
-<p>Sets the min HMAC output length</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30043"><span style="white-space: nowrap"><code class="PARAMETER">min_length</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new min length</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATAHMACID"></a><h3>xmlSecNssKeyDataHmacId</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssKeyDataHmacId</pre>
<p>The DHMAC key data klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSKEYDATAHMACGETKLASS"></a><h3>xmlSecNssKeyDataHmacGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecNssKeyDataHmacGetKlass (void);</pre>
-<p>The HMAC key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30064"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> HMAC key data klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSKEYDATAHMACSET"></a><h3>xmlSecNssKeyDataHmacSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssKeyDataHmacSet (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
-<p>Sets the value of HMAC key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30081"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to HMAC key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30086"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30091"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value size (in bytes).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30096"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMHMACMD5ID"></a><h3>xmlSecNssTransformHmacMd5Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformHmacMd5Id</pre>
<p>The HMAC with MD5 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMHMACMD5GETKLASS"></a><h3>xmlSecNssTransformHmacMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformHmacMd5GetKlass (void);</pre>
-<p>The HMAC-MD5 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30117"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-MD5 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMHMACRIPEMD160ID"></a><h3>xmlSecNssTransformHmacRipemd160Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformHmacRipemd160Id</pre>
<p>The HMAC with RipeMD160 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMHMACRIPEMD160GETKLASS"></a><h3>xmlSecNssTransformHmacRipemd160GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformHmacRipemd160GetKlass
- (void);</pre>
-<p>The HMAC-RIPEMD160 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30138"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-RIPEMD160 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMHMACSHA1ID"></a><h3>xmlSecNssTransformHmacSha1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformHmacSha1Id</pre>
<p>The HMAC with SHA1 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMHMACSHA1GETKLASS"></a><h3>xmlSecNssTransformHmacSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformHmacSha1GetKlass (void);</pre>
-<p>The HMAC-SHA1 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30159"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA1 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMHMACSHA256ID"></a><h3>xmlSecNssTransformHmacSha256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformHmacSha256Id</pre>
<p>The HMAC with SHA256 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMHMACSHA256GETKLASS"></a><h3>xmlSecNssTransformHmacSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformHmacSha256GetKlass
- (void);</pre>
-<p>The HMAC-SHA256 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30180"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA256 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMHMACSHA384ID"></a><h3>xmlSecNssTransformHmacSha384Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformHmacSha384Id</pre>
<p>The HMAC with SHA384 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMHMACSHA384GETKLASS"></a><h3>xmlSecNssTransformHmacSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformHmacSha384GetKlass
- (void);</pre>
-<p>The HMAC-SHA384 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30201"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA384 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMHMACSHA512ID"></a><h3>xmlSecNssTransformHmacSha512Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformHmacSha512Id</pre>
<p>The HMAC with SHA512 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMHMACSHA512GETKLASS"></a><h3>xmlSecNssTransformHmacSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformHmacSha512GetKlass
- (void);</pre>
-<p>The HMAC-SHA512 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30222"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA512 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATARSAID"></a><h3>xmlSecNssKeyDataRsaId</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssKeyDataRsaId</pre>
<p>The RSA key klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSKEYDATARSAGETKLASS"></a><h3>xmlSecNssKeyDataRsaGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecNssKeyDataRsaGetKlass (void);</pre>
-<p>The RSA key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30243"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to RSA key data klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMRSAMD5ID"></a><h3>xmlSecNssTransformRsaMd5Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformRsaMd5Id</pre>
<p>The RSA-MD5 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMRSAMD5GETKLASS"></a><h3>xmlSecNssTransformRsaMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformRsaMd5GetKlass (void);</pre>
-<p>The RSA-MD5 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30264"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-MD5 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMRSASHA1ID"></a><h3>xmlSecNssTransformRsaSha1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformRsaSha1Id</pre>
<p>The RSA-SHA1 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMRSASHA1GETKLASS"></a><h3>xmlSecNssTransformRsaSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformRsaSha1GetKlass (void);</pre>
-<p>The RSA-SHA1 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30285"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA1 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMRSASHA256ID"></a><h3>xmlSecNssTransformRsaSha256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformRsaSha256Id</pre>
<p>The RSA-SHA256 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMRSASHA256GETKLASS"></a><h3>xmlSecNssTransformRsaSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformRsaSha256GetKlass (void);</pre>
-<p>The RSA-SHA256 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30306"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA256 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMRSASHA384ID"></a><h3>xmlSecNssTransformRsaSha384Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformRsaSha384Id</pre>
<p>The RSA-SHA384 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMRSASHA384GETKLASS"></a><h3>xmlSecNssTransformRsaSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformRsaSha384GetKlass (void);</pre>
-<p>The RSA-SHA384 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30327"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA384 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMRSASHA512ID"></a><h3>xmlSecNssTransformRsaSha512Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformRsaSha512Id</pre>
<p>The RSA-SHA512 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMRSASHA512GETKLASS"></a><h3>xmlSecNssTransformRsaSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformRsaSha512GetKlass (void);</pre>
-<p>The RSA-SHA512 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30348"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA512 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMRSAPKCS1ID"></a><h3>xmlSecNssTransformRsaPkcs1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformRsaPkcs1Id</pre>
<p>The RSA PKCS1 key transport transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMRSAPKCS1GETKLASS"></a><h3>xmlSecNssTransformRsaPkcs1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformRsaPkcs1GetKlass (void);</pre>
-<p>The RSA-PKCS1 key transport transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30369"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-PKCS1 key transport transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMRSAOAEPID"></a><h3>xmlSecNssTransformRsaOaepId</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformRsaOaepId</pre>
<p>The RSA OAEP key transport transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMRSAOAEPGETKLASS"></a><h3>xmlSecNssTransformRsaOaepGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformRsaOaepGetKlass (void);</pre>
-<p>The RSA-PKCS1 key transport transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30390"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-PKCS1 key transport transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMSHA1ID"></a><h3>xmlSecNssTransformSha1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformSha1Id</pre>
<p>The SHA1 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMSHA1GETKLASS"></a><h3>xmlSecNssTransformSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformSha1GetKlass (void);</pre>
-<p>SHA-1 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30411"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA-1 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMSHA256ID"></a><h3>xmlSecNssTransformSha256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformSha256Id</pre>
<p>The SHA256 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMSHA256GETKLASS"></a><h3>xmlSecNssTransformSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformSha256GetKlass (void);</pre>
-<p>SHA256 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30432"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA256 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMSHA384ID"></a><h3>xmlSecNssTransformSha384Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformSha384Id</pre>
<p>The SHA384 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMSHA384GETKLASS"></a><h3>xmlSecNssTransformSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformSha384GetKlass (void);</pre>
-<p>SHA384 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30453"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA384 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMSHA512ID"></a><h3>xmlSecNssTransformSha512Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformSha512Id</pre>
<p>The SHA512 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMSHA512GETKLASS"></a><h3>xmlSecNssTransformSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformSha512GetKlass (void);</pre>
-<p>SHA512 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30474"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA512 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSTRANSFORMMD5ID"></a><h3>xmlSecNssTransformMd5Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecNssTransformMd5Id</pre>
<p>The MD5 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSTRANSFORMMD5GETKLASS"></a><h3>xmlSecNssTransformMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecNssTransformMd5GetKlass (void);</pre>
-<p>MD5 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30495"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to MD5 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-nss-keysstore.html b/docs/api/xmlsec-nss-keysstore.html
index bd5c129..e50265c 100644
--- a/docs/api/xmlsec-nss-keysstore.html
+++ b/docs/api/xmlsec-nss-keysstore.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for NSS API Reference." href="xmlsec-nss-ref.html">
<link rel="PREVIOUS" title="crypto" href="xmlsec-nss-crypto.html">
<link rel="NEXT" title="pkikeys" href="xmlsec-nss-pkikeys.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,131 +101,214 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-nss-crypto.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-nss-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-nss-crypto.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-nss-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-nss-pkikeys.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-nss-pkikeys.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-NSS-KEYSSTORE"></a>keysstore</h1>
<div class="REFNAMEDIV">
-<a name="AEN30505"></a><h2>Name</h2>keysstore -- Keys store implementation for NSS.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-NSS-KEYSSTORE.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">#define <a href="xmlsec-nss-keysstore.html#XMLSECNSSKEYSSTOREID">xmlSecNssKeysStoreId</a>
-<font>xmlSecKeyStoreId</font> <a href="xmlsec-nss-keysstore.html#XMLSECNSSKEYSSTOREGETKLASS">xmlSecNssKeysStoreGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-nss-keysstore.html#XMLSECNSSKEYSSTOREADOPTKEY">xmlSecNssKeysStoreAdoptKey</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> <a href="xmlsec-nss-keysstore.html#XMLSECNSSKEYSSTORELOAD">xmlSecNssKeysStoreLoad</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>char</font> *uri,
- <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);
-<font>int</font> <a href="xmlsec-nss-keysstore.html#XMLSECNSSKEYSSTORESAVE">xmlSecNssKeysStoreSave</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
+<a name="AEN41026"></a><h2>Name</h2>keysstore -- Keys store implementation for NSS.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-KEYSSTORE.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN41031"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyStoreId</span></font></td>
+<td>
+<a href="xmlsec-nss-keysstore.html#XMLSECNSSKEYSSTOREGETKLASS">xmlSecNssKeysStoreGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-keysstore.html#XMLSECNSSKEYSSTOREADOPTKEY">xmlSecNssKeysStoreAdoptKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-keysstore.html#XMLSECNSSKEYSSTORELOAD">xmlSecNssKeysStoreLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-keysstore.html#XMLSECNSSKEYSSTORESAVE">xmlSecNssKeysStoreSave</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-KEYSSTORE.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN41064"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody><tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-keysstore.html#XMLSECNSSKEYSSTOREID">xmlSecNssKeysStoreId</a></td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-NSS-KEYSSTORE.DESCRIPTION"></a><h2>Description</h2>
<p>Keys store implementation for NSS.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-NSS-KEYSSTORE.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECNSSKEYSSTOREID"></a><h3>xmlSecNssKeysStoreId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecNssKeysStoreId xmlSecNssKeysStoreGetKlass()</pre>
-<p>A Nss keys store klass id.</p>
-<p></p>
-</div>
-<hr>
+<a name="XMLSEC-NSS-KEYSSTORE.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECNSSKEYSSTOREGETKLASS"></a><h3>xmlSecNssKeysStoreGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyStoreId</font> xmlSecNssKeysStoreGetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyStoreId</span></font>
+xmlSecNssKeysStoreGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The Nss list based keys store klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30549"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> Nss list based keys store klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN41086"></a><h4>Returns</h4>
+<p> Nss list based keys store klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYSSTOREADOPTKEY"></a><h3>xmlSecNssKeysStoreAdoptKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssKeysStoreAdoptKey (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Adds <code class="PARAMETER">key</code> to the <code class="PARAMETER">store</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssKeysStoreAdoptKey (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Adds <code class="PARAMETER">key</code>
+ to the <code class="PARAMETER">store</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN41105"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30567"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to Nss keys store.</p></td>
-</tr>
+<a name="AEN41107"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30572"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to Nss keys store.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30577"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41122"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYSSTORELOAD"></a><h3>xmlSecNssKeysStoreLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssKeysStoreLoad (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>char</font> *uri,
- <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssKeysStoreLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *uri</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> keysMngr</code>);</pre>
<p>Reads keys from an XML file.</p>
+<div class="REFSECT3">
+<a name="AEN41142"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN41144"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30594"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to Nss keys store.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to Nss keys store.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30599"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the filename.</p></td>
+<td><p>uri</p></td>
+<td><p>the filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30604"><span style="white-space: nowrap"><code class="PARAMETER">keysMngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to associated keys manager.</p></td>
+<td><p>keysMngr</p></td>
+<td><p>the pointer to associated keys manager.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30609"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41165"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYSSTORESAVE"></a><h3>xmlSecNssKeysStoreSave ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssKeysStoreSave (<a href="xmlsec-keysmngr.html#XMLSECKEYSTORE">xmlSecKeyStorePtr</a> store,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Writes keys from <code class="PARAMETER">store</code> to an XML file.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssKeysStoreSave (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSTORE"><span class="TYPE">xmlSecKeyStorePtr</span></a> store</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Writes keys from <code class="PARAMETER">store</code>
+ to an XML file.</p>
+<div class="REFSECT3">
+<a name="AEN41186"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN41188"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30627"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to Nss keys store.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to Nss keys store.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30632"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the filename.</p></td>
+<td><p>filename</p></td>
+<td><p>the filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30637"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the saved keys type (public, private, ...).</p></td>
+<td><p>type</p></td>
+<td><p>the saved keys type (public, private, ...).</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30642"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41209"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-KEYSSTORE.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECNSSKEYSSTOREID"></a><h3>xmlSecNssKeysStoreId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecNssKeysStoreId xmlSecNssKeysStoreGetKlass()</pre>
+<p>A Nss keys store klass id.</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-nss-pkikeys.html b/docs/api/xmlsec-nss-pkikeys.html
index e7a8647..0ae0e8f 100644
--- a/docs/api/xmlsec-nss-pkikeys.html
+++ b/docs/api/xmlsec-nss-pkikeys.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for NSS API Reference." href="xmlsec-nss-ref.html">
<link rel="PREVIOUS" title="keysstore" href="xmlsec-nss-keysstore.html">
<link rel="NEXT" title="x509" href="xmlsec-nss-x509.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,135 +101,230 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-nss-keysstore.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-nss-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-nss-keysstore.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-nss-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-nss-x509.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-nss-x509.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-NSS-PKIKEYS"></a>pkikeys</h1>
<div class="REFNAMEDIV">
-<a name="AEN30652"></a><h2>Name</h2>pkikeys -- PKI keys data implementation.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-NSS-PKIKEYS.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> <a href="xmlsec-nss-pkikeys.html#XMLSECNSSPKIADOPTKEY">xmlSecNssPKIAdoptKey</a> (<font>SECKEYPrivateKey</font> *privkey,
- <font>SECKEYPublicKey</font> *pubkey);
-<font>SECKEYPublicKey</font>* <a href="xmlsec-nss-pkikeys.html#XMLSECNSSPKIKEYDATAGETPUBKEY">xmlSecNssPKIKeyDataGetPubKey</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>SECKEYPrivateKey</font>* <a href="xmlsec-nss-pkikeys.html#XMLSECNSSPKIKEYDATAGETPRIVKEY">xmlSecNssPKIKeyDataGetPrivKey</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>KeyType</font> <a href="xmlsec-nss-pkikeys.html#XMLSECNSSPKIKEYDATAGETKEYTYPE">xmlSecNssPKIKeyDataGetKeyType</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> <a href="xmlsec-nss-pkikeys.html#XMLSECNSSPKIKEYDATADUPLICATE">xmlSecNssPKIKeyDataDuplicate</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> dst,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> src);</pre>
+<a name="AEN41225"></a><h2>Name</h2>pkikeys -- PKI keys data implementation.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-PKIKEYS.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN41230"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a></td>
+<td>
+<a href="xmlsec-nss-pkikeys.html#XMLSECNSSPKIADOPTKEY">xmlSecNssPKIAdoptKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">SECKEYPublicKey</span></font> *</td>
+<td>
+<a href="xmlsec-nss-pkikeys.html#XMLSECNSSPKIKEYDATAGETPUBKEY">xmlSecNssPKIKeyDataGetPubKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">SECKEYPrivateKey</span></font> *</td>
+<td>
+<a href="xmlsec-nss-pkikeys.html#XMLSECNSSPKIKEYDATAGETPRIVKEY">xmlSecNssPKIKeyDataGetPrivKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">KeyType</span></font></td>
+<td>
+<a href="xmlsec-nss-pkikeys.html#XMLSECNSSPKIKEYDATAGETKEYTYPE">xmlSecNssPKIKeyDataGetKeyType</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-pkikeys.html#XMLSECNSSPKIKEYDATADUPLICATE">xmlSecNssPKIKeyDataDuplicate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-NSS-PKIKEYS.DESCRIPTION"></a><h2>Description</h2>
<p>PKI keys data implementation.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-NSS-PKIKEYS.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-NSS-PKIKEYS.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECNSSPKIADOPTKEY"></a><h3>xmlSecNssPKIAdoptKey ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> xmlSecNssPKIAdoptKey (<font>SECKEYPrivateKey</font> *privkey,
- <font>SECKEYPublicKey</font> *pubkey);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a>
+xmlSecNssPKIAdoptKey (<code class="PARAMETER"><font><span class="TYPE">SECKEYPrivateKey</span></font> *privkey</code>,
+ <code class="PARAMETER"><font><span class="TYPE">SECKEYPublicKey</span></font> *pubkey</code>);</pre>
<p>Build a KeyData object from the given Private Key and Public
Key handles.</p>
+<div class="REFSECT3">
+<a name="AEN41287"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN41289"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30691"><span style="white-space: nowrap"><code class="PARAMETER">privkey</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the NSS Private Key handle</p></td>
+<td><p>privkey</p></td>
+<td><p>the NSS Private Key handle</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30696"><span style="white-space: nowrap"><code class="PARAMETER">pubkey</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the NSS Public Key handle</p></td>
+<td><p>pubkey</p></td>
+<td><p>the NSS Public Key handle</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30701"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to KeyData object or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41304"></a><h4>Returns</h4>
+<p> pointer to KeyData object or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSPKIKEYDATAGETPUBKEY"></a><h3>xmlSecNssPKIKeyDataGetPubKey ()</h3>
-<pre class="PROGRAMLISTING"><font>SECKEYPublicKey</font>* xmlSecNssPKIKeyDataGetPubKey (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">SECKEYPublicKey</span></font> *
+xmlSecNssPKIKeyDataGetPubKey (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
<p>Gets the Public Key from the key data.</p>
+<div class="REFSECT3">
+<a name="AEN41318"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN41320"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to NSS Key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30716"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to NSS Key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30721"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SECKEYPublicKey or NULL if an error occurs.
-Caller is responsible for freeing the key when done</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41329"></a><h4>Returns</h4>
+<p> pointer to SECKEYPublicKey or NULL if an error occurs.
+Caller is responsible for freeing the key when done</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSPKIKEYDATAGETPRIVKEY"></a><h3>xmlSecNssPKIKeyDataGetPrivKey ()</h3>
-<pre class="PROGRAMLISTING"><font>SECKEYPrivateKey</font>* xmlSecNssPKIKeyDataGetPrivKey (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">SECKEYPrivateKey</span></font> *
+xmlSecNssPKIKeyDataGetPrivKey (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
<p>Gets the Private Key from the key data.</p>
+<div class="REFSECT3">
+<a name="AEN41343"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN41345"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to NSS Key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30736"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to NSS Key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30741"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SECKEYPrivateKey or NULL if an error occurs.
-Caller is responsible for freeing the key when done</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41354"></a><h4>Returns</h4>
+<p> pointer to SECKEYPrivateKey or NULL if an error occurs.
+Caller is responsible for freeing the key when done</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSPKIKEYDATAGETKEYTYPE"></a><h3>xmlSecNssPKIKeyDataGetKeyType ()</h3>
-<pre class="PROGRAMLISTING"><font>KeyType</font> xmlSecNssPKIKeyDataGetKeyType (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">KeyType</span></font>
+xmlSecNssPKIKeyDataGetKeyType (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
<p>Gets the Key Type from the key data.</p>
+<div class="REFSECT3">
+<a name="AEN41368"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN41370"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to NSS Key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30756"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to NSS Key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30761"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> Key Type</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41379"></a><h4>Returns</h4>
+<p> Key Type</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSPKIKEYDATADUPLICATE"></a><h3>xmlSecNssPKIKeyDataDuplicate ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssPKIKeyDataDuplicate (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> dst,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> src);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssPKIKeyDataDuplicate (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> dst</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> src</code>);</pre>
<p>Duplicates the keydata from src to dst</p>
+<div class="REFSECT3">
+<a name="AEN41396"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN41398"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30777"><span style="white-space: nowrap"><code class="PARAMETER">dst</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to NSS Key data to copy to.</p></td>
+<td><p>dst</p></td>
+<td><p>the pointer to NSS Key data to copy to.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30782"><span style="white-space: nowrap"><code class="PARAMETER">src</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to NSS Key data to copy from.</p></td>
+<td><p>src</p></td>
+<td><p>the pointer to NSS Key data to copy from.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30787"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> -1 on error, 0 on success</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41413"></a><h4>Returns</h4>
+<p> -1 on error, 0 on success</p>
</div>
</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-PKIKEYS.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<p></p>
+</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-nss-keysstore.html"><b><<< keysstore</b></a></td>
<td align="right"><a accesskey="n" href="xmlsec-nss-x509.html"><b>x509 >>></b></a></td>
diff --git a/docs/api/xmlsec-nss-ref.html b/docs/api/xmlsec-nss-ref.html
index a5c6c1d..79b3d60 100644
--- a/docs/api/xmlsec-nss-ref.html
+++ b/docs/api/xmlsec-nss-ref.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library API Reference." href="xmlsec-reference.html">
<link rel="PREVIOUS" title="crypto" href="xmlsec-gcrypt-crypto.html">
<link rel="NEXT" title="app" href="xmlsec-nss-app.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-gcrypt-crypto.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-reference.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-gcrypt-crypto.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-nss-app.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-nss-app.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-nss-x509.html b/docs/api/xmlsec-nss-x509.html
index c7cc29f..3d7191b 100644
--- a/docs/api/xmlsec-nss-x509.html
+++ b/docs/api/xmlsec-nss-x509.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for NSS API Reference." href="xmlsec-nss-ref.html">
<link rel="PREVIOUS" title="pkikeys" href="xmlsec-nss-pkikeys.html">
<link rel="NEXT" title="XML Security Library for MSCrypto API Reference." href="xmlsec-mscrypto-ref.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,402 +101,659 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-nss-pkikeys.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-nss-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-nss-pkikeys.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-nss-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-mscrypto-ref.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-mscrypto-ref.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-NSS-X509"></a>x509</h1>
<div class="REFNAMEDIV">
-<a name="AEN30797"></a><h2>Name</h2>x509 -- X509 certificates support implementation for NSS.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-NSS-X509.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">#define <a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509ID">xmlSecNssKeyDataX509Id</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509GETKLASS">xmlSecNssKeyDataX509GetKlass</a> (void);
-<font>CERTCertificate</font>* <a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509GETKEYCERT">xmlSecNssKeyDataX509GetKeyCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> <a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509ADOPTKEYCERT">xmlSecNssKeyDataX509AdoptKeyCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>CERTCertificate</font> *cert);
-<font>int</font> <a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509ADOPTCERT">xmlSecNssKeyDataX509AdoptCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>CERTCertificate</font> *cert);
-<font>CERTCertificate</font>* <a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509GETCERT">xmlSecNssKeyDataX509GetCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);
-<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509GETCERTSSIZE">xmlSecNssKeyDataX509GetCertsSize</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> <a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509ADOPTCRL">xmlSecNssKeyDataX509AdoptCrl</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>CERTSignedCrl</font> *crl);
-<font>CERTSignedCrl</font>* <a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509GETCRL">xmlSecNssKeyDataX509GetCrl</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);
-<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509GETCRLSSIZE">xmlSecNssKeyDataX509GetCrlsSize</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> <a href="xmlsec-nss-x509.html#XMLSECNSSX509CERTGETKEY">xmlSecNssX509CertGetKey</a> (<font>CERTCertificate</font> *cert);
-#define <a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATARAWX509CERTID">xmlSecNssKeyDataRawX509CertId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATARAWX509CERTGETKLASS">xmlSecNssKeyDataRawX509CertGetKlass</a> (void);
-#define <a href="xmlsec-nss-x509.html#XMLSECNSSX509STOREID">xmlSecNssX509StoreId</a>
-<font>xmlSecKeyDataStoreId</font> <a href="xmlsec-nss-x509.html#XMLSECNSSX509STOREGETKLASS">xmlSecNssX509StoreGetKlass</a> (void);
-<font>CERTCertificate</font>* <a href="xmlsec-nss-x509.html#XMLSECNSSX509STOREFINDCERT">xmlSecNssX509StoreFindCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>xmlChar</font> *subjectName,
- <font>xmlChar</font> *issuerName,
- <font>xmlChar</font> *issuerSerial,
- <font>xmlChar</font> *ski,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a> *keyInfoCtx);
-<font>CERTCertificate</font>* <a href="xmlsec-nss-x509.html#XMLSECNSSX509STOREVERIFY">xmlSecNssX509StoreVerify</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>CERTCertList</font> *certs,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a> *keyInfoCtx);
-<font>int</font> <a href="xmlsec-nss-x509.html#XMLSECNSSX509STOREADOPTCERT">xmlSecNssX509StoreAdoptCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>CERTCertificate</font> *cert,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
+<a name="AEN41424"></a><h2>Name</h2>x509 -- X509 certificates support implementation for NSS.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-X509.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN41429"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509GETKLASS">xmlSecNssKeyDataX509GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">CERTCertificate</span></font> *</td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509GETKEYCERT">xmlSecNssKeyDataX509GetKeyCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509ADOPTKEYCERT">xmlSecNssKeyDataX509AdoptKeyCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509ADOPTCERT">xmlSecNssKeyDataX509AdoptCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">CERTCertificate</span></font> *</td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509GETCERT">xmlSecNssKeyDataX509GetCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a></td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509GETCERTSSIZE">xmlSecNssKeyDataX509GetCertsSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509ADOPTCRL">xmlSecNssKeyDataX509AdoptCrl</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">CERTSignedCrl</span></font> *</td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509GETCRL">xmlSecNssKeyDataX509GetCrl</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a></td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509GETCRLSSIZE">xmlSecNssKeyDataX509GetCrlsSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a></td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSX509CERTGETKEY">xmlSecNssX509CertGetKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATARAWX509CERTGETKLASS">xmlSecNssKeyDataRawX509CertGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataStoreId</span></font></td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSX509STOREGETKLASS">xmlSecNssX509StoreGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">CERTCertificate</span></font> *</td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSX509STOREFINDCERT">xmlSecNssX509StoreFindCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">CERTCertificate</span></font> *</td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSX509STOREVERIFY">xmlSecNssX509StoreVerify</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-nss-x509.html#XMLSECNSSX509STOREADOPTCERT">xmlSecNssX509StoreAdoptCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-X509.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN41539"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATAX509ID">xmlSecNssKeyDataX509Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-x509.html#XMLSECNSSKEYDATARAWX509CERTID">xmlSecNssKeyDataRawX509CertId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-nss-x509.html#XMLSECNSSX509STOREID">xmlSecNssX509StoreId</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-NSS-X509.DESCRIPTION"></a><h2>Description</h2>
<p>X509 certificates support implementation for NSS.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-NSS-X509.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECNSSKEYDATAX509ID"></a><h3>xmlSecNssKeyDataX509Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecNssKeyDataX509Id</pre>
-<p>The NSS X509 data klass.</p>
-<p></p>
-</div>
-<hr>
+<a name="XMLSEC-NSS-X509.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATAX509GETKLASS"></a><h3>xmlSecNssKeyDataX509GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecNssKeyDataX509GetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecNssKeyDataX509GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The NSS X509 key data klass (http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-X509Data</span></font>).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN30885"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the X509 data klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN41571"></a><h4>Returns</h4>
+<p> the X509 data klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATAX509GETKEYCERT"></a><h3>xmlSecNssKeyDataX509GetKeyCert ()</h3>
-<pre class="PROGRAMLISTING"><font>CERTCertificate</font>* xmlSecNssKeyDataX509GetKeyCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">CERTCertificate</span></font> *
+xmlSecNssKeyDataX509GetKeyCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
<p>Gets the certificate from which the key was extracted.</p>
+<div class="REFSECT3">
+<a name="AEN41585"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN41587"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30900"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30905"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key's certificate or NULL if key data was not used for key
-extraction or an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41596"></a><h4>Returns</h4>
+<p> the key's certificate or NULL if key data was not used for key
+extraction or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATAX509ADOPTKEYCERT"></a><h3>xmlSecNssKeyDataX509AdoptKeyCert ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssKeyDataX509AdoptKeyCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>CERTCertificate</font> *cert);</pre>
-<p>Sets the key's certificate in <code class="PARAMETER">data</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssKeyDataX509AdoptKeyCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">CERTCertificate</span></font> *cert</code>);</pre>
+<p>Sets the key's certificate in <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN41614"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN41616"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>cert</p></td>
+<td><p>the pointer to NSS X509 certificate.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30922"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30927"><span style="white-space: nowrap"><code class="PARAMETER">cert</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to NSS X509 certificate.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30932"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41631"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATAX509ADOPTCERT"></a><h3>xmlSecNssKeyDataX509AdoptCert ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssKeyDataX509AdoptCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>CERTCertificate</font> *cert);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssKeyDataX509AdoptCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">CERTCertificate</span></font> *cert</code>);</pre>
<p>Adds certificate to the X509 key data.</p>
+<div class="REFSECT3">
+<a name="AEN41648"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30948"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
+<a name="AEN41650"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30953"><span style="white-space: nowrap"><code class="PARAMETER">cert</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to NSS X509 certificate.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30958"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>cert</p></td>
+<td><p>the pointer to NSS X509 certificate.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41665"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATAX509GETCERT"></a><h3>xmlSecNssKeyDataX509GetCert ()</h3>
-<pre class="PROGRAMLISTING"><font>CERTCertificate</font>* xmlSecNssKeyDataX509GetCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">CERTCertificate</span></font> *
+xmlSecNssKeyDataX509GetCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> pos</code>);</pre>
<p>Gets a certificate from X509 key data.</p>
+<div class="REFSECT3">
+<a name="AEN41682"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN41684"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30974"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30979"><span style="white-space: nowrap"><code class="PARAMETER">pos</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired certificate position.</p></td>
+<td><p>pos</p></td>
+<td><p>the desired certificate position.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN30984"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to certificate or NULL if <code class="PARAMETER">pos</code> is larger than the
-number of certificates in <code class="PARAMETER">data</code> or an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41699"></a><h4>Returns</h4>
+<p> the pointer to certificate or NULL if <code class="PARAMETER">pos</code>
+is larger than the
+number of certificates in <code class="PARAMETER">data</code>
+or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATAX509GETCERTSSIZE"></a><h3>xmlSecNssKeyDataX509GetCertsSize ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecNssKeyDataX509GetCertsSize (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the number of certificates in <code class="PARAMETER">data</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a>
+xmlSecNssKeyDataX509GetCertsSize (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the number of certificates in <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN41716"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN41718"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31002"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31007"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> te number of certificates in <code class="PARAMETER">data</code>.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41727"></a><h4>Returns</h4>
+<p> te number of certificates in <code class="PARAMETER">data</code>
+.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATAX509ADOPTCRL"></a><h3>xmlSecNssKeyDataX509AdoptCrl ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssKeyDataX509AdoptCrl (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>CERTSignedCrl</font> *crl);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssKeyDataX509AdoptCrl (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">CERTSignedCrl</span></font> *crl</code>);</pre>
<p>Adds CRL to the X509 key data.</p>
+<div class="REFSECT3">
+<a name="AEN41745"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31024"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
+<a name="AEN41747"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31029"><span style="white-space: nowrap"><code class="PARAMETER">crl</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to NSS X509 CRL.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31034"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>crl</p></td>
+<td><p>the pointer to NSS X509 CRL.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41762"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATAX509GETCRL"></a><h3>xmlSecNssKeyDataX509GetCrl ()</h3>
-<pre class="PROGRAMLISTING"><font>CERTSignedCrl</font>* xmlSecNssKeyDataX509GetCrl (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">CERTSignedCrl</span></font> *
+xmlSecNssKeyDataX509GetCrl (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> pos</code>);</pre>
<p>Gets a CRL from X509 key data.</p>
+<div class="REFSECT3">
+<a name="AEN41779"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN41781"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31050"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31055"><span style="white-space: nowrap"><code class="PARAMETER">pos</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired CRL position.</p></td>
+<td><p>pos</p></td>
+<td><p>the desired CRL position.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31060"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to CRL or NULL if <code class="PARAMETER">pos</code> is larger than the
-number of CRLs in <code class="PARAMETER">data</code> or an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41796"></a><h4>Returns</h4>
+<p> the pointer to CRL or NULL if <code class="PARAMETER">pos</code>
+is larger than the
+number of CRLs in <code class="PARAMETER">data</code>
+or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATAX509GETCRLSSIZE"></a><h3>xmlSecNssKeyDataX509GetCrlsSize ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecNssKeyDataX509GetCrlsSize (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the number of CRLs in <code class="PARAMETER">data</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a>
+xmlSecNssKeyDataX509GetCrlsSize (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the number of CRLs in <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN41813"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN41815"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31078"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31083"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> te number of CRLs in <code class="PARAMETER">data</code>.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41824"></a><h4>Returns</h4>
+<p> te number of CRLs in <code class="PARAMETER">data</code>
+.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSX509CERTGETKEY"></a><h3>xmlSecNssX509CertGetKey ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> xmlSecNssX509CertGetKey (<font>CERTCertificate</font> *cert);</pre>
-<p>Extracts public key from the <code class="PARAMETER">cert</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a>
+xmlSecNssX509CertGetKey (<code class="PARAMETER"><font><span class="TYPE">CERTCertificate</span></font> *cert</code>);</pre>
+<p>Extracts public key from the <code class="PARAMETER">cert</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN41840"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN41842"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>cert</p></td>
+<td><p>the certificate.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31100"><span style="white-space: nowrap"><code class="PARAMETER">cert</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31105"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> public key value or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSKEYDATARAWX509CERTID"></a><h3>xmlSecNssKeyDataRawX509CertId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecNssKeyDataRawX509CertId</pre>
-<p>The NSS raw X509 certificate klass.</p>
-<p></p>
+</div>
+<div class="REFSECT3">
+<a name="AEN41851"></a><h4>Returns</h4>
+<p> public key value or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSKEYDATARAWX509CERTGETKLASS"></a><h3>xmlSecNssKeyDataRawX509CertGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecNssKeyDataRawX509CertGetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecNssKeyDataRawX509CertGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The raw X509 certificates key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN31126"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> raw X509 certificates key data klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN41864"></a><h4>Returns</h4>
+<p> raw X509 certificates key data klass.</p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECNSSX509STOREID"></a><h3>xmlSecNssX509StoreId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecNssX509StoreId</pre>
-<p>The NSS X509 store klass.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSX509STOREGETKLASS"></a><h3>xmlSecNssX509StoreGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataStoreId</font> xmlSecNssX509StoreGetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataStoreId</span></font>
+xmlSecNssX509StoreGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The NSS X509 certificates key data store klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN31147"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to NSS X509 certificates key data store klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN41877"></a><h4>Returns</h4>
+<p> pointer to NSS X509 certificates key data store klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSX509STOREFINDCERT"></a><h3>xmlSecNssX509StoreFindCert ()</h3>
-<pre class="PROGRAMLISTING"><font>CERTCertificate</font>* xmlSecNssX509StoreFindCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>xmlChar</font> *subjectName,
- <font>xmlChar</font> *issuerName,
- <font>xmlChar</font> *issuerSerial,
- <font>xmlChar</font> *ski,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a> *keyInfoCtx);</pre>
-<p>Searches <code class="PARAMETER">store</code> for a certificate that matches given criteria.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">CERTCertificate</span></font> *
+xmlSecNssX509StoreFindCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlChar</span></font> *subjectName</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlChar</span></font> *issuerName</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlChar</span></font> *issuerSerial</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlChar</span></font> *ski</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtx</span></a> *keyInfoCtx</code>);</pre>
+<p>Searches <code class="PARAMETER">store</code>
+ for a certificate that matches given criteria.</p>
+<div class="REFSECT3">
+<a name="AEN41907"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN41909"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31168"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data store klass.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to X509 key data store klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31173"><span style="white-space: nowrap"><code class="PARAMETER">subjectName</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired certificate name.</p></td>
+<td><p>subjectName</p></td>
+<td><p>the desired certificate name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31178"><span style="white-space: nowrap"><code class="PARAMETER">issuerName</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired certificate issuer name.</p></td>
+<td><p>issuerName</p></td>
+<td><p>the desired certificate issuer name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31183"><span style="white-space: nowrap"><code class="PARAMETER">issuerSerial</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired certificate issuer serial number.</p></td>
+<td><p>issuerSerial</p></td>
+<td><p>the desired certificate issuer serial number.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31188"><span style="white-space: nowrap"><code class="PARAMETER">ski</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired certificate SKI.</p></td>
+<td><p>ski</p></td>
+<td><p>the desired certificate SKI.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31193"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31199"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to found certificate or NULL if certificate is not found
-or an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41948"></a><h4>Returns</h4>
+<p> pointer to found certificate or NULL if certificate is not found
+or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSX509STOREVERIFY"></a><h3>xmlSecNssX509StoreVerify ()</h3>
-<pre class="PROGRAMLISTING"><font>CERTCertificate</font>* xmlSecNssX509StoreVerify (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>CERTCertList</font> *certs,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a> *keyInfoCtx);</pre>
-<p>Verifies <code class="PARAMETER">certs</code> list.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">CERTCertificate</span></font> *
+xmlSecNssX509StoreVerify (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><font><span class="TYPE">CERTCertList</span></font> *certs</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtx</span></a> *keyInfoCtx</code>);</pre>
+<p>Verifies <code class="PARAMETER">certs</code>
+ list.</p>
+<div class="REFSECT3">
+<a name="AEN41969"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31217"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data store klass.</p></td>
-</tr>
+<a name="AEN41971"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31222"><span style="white-space: nowrap"><code class="PARAMETER">certs</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the untrusted certificates stack.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to X509 key data store klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31227"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
+<td><p>certs</p></td>
+<td><p>the untrusted certificates stack.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31233"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the first verified certificate from <code class="PARAMETER">certs</code>.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN41992"></a><h4>Returns</h4>
+<p> pointer to the first verified certificate from <code class="PARAMETER">certs</code>
+.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECNSSX509STOREADOPTCERT"></a><h3>xmlSecNssX509StoreAdoptCert ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNssX509StoreAdoptCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>CERTCertificate</font> *cert,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNssX509StoreAdoptCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><font><span class="TYPE">CERTCertificate</span></font> *cert</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
<p>Adds trusted (root) or untrusted certificate to the store.</p>
+<div class="REFSECT3">
+<a name="AEN42013"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31251"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data store klass.</p></td>
-</tr>
+<a name="AEN42015"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31256"><span style="white-space: nowrap"><code class="PARAMETER">cert</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to NSS X509 certificate.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to X509 key data store klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31261"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate type (trusted/untrusted).</p></td>
+<td><p>cert</p></td>
+<td><p>the pointer to NSS X509 certificate.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN31266"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>type</p></td>
+<td><p>the certificate type (trusted/untrusted).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN42036"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-NSS-X509.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECNSSKEYDATAX509ID"></a><h3>xmlSecNssKeyDataX509Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecNssKeyDataX509Id</pre>
+<p>The NSS X509 data klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSKEYDATARAWX509CERTID"></a><h3>xmlSecNssKeyDataRawX509CertId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecNssKeyDataRawX509CertId</pre>
+<p>The NSS raw X509 certificate klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECNSSX509STOREID"></a><h3>xmlSecNssX509StoreId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecNssX509StoreId</pre>
+<p>The NSS X509 store klass.</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-nss.sgml b/docs/api/xmlsec-nss.sgml
deleted file mode 100644
index 9aa211b..0000000
--- a/docs/api/xmlsec-nss.sgml
+++ /dev/null
@@ -1,23 +0,0 @@
-<!doctype book PUBLIC "-//DavenPort//DTD DocBook V3.0//EN" [
-<!ENTITY xmlsec-nss-app SYSTEM "sgml/app.sgml">
-<!ENTITY xmlsec-nss-bignum SYSTEM "sgml/bignum.sgml">
-<!ENTITY xmlsec-nss-crypto SYSTEM "sgml/crypto.sgml">
-<!ENTITY xmlsec-nss-keysstore SYSTEM "sgml/keysstore.sgml">
-<!ENTITY xmlsec-nss-pkikeys SYSTEM "sgml/pkikeys.sgml">
-<!ENTITY xmlsec-nss-x509 SYSTEM "sgml/x509.sgml">
-]>
-<book id="index">
- <bookinfo>
- <title>[Insert name here] Reference Manual</title>
- </bookinfo>
-
- <chapter>
- <title>[Insert title here]</title>
- &xmlsec-nss-app;
- &xmlsec-nss-bignum;
- &xmlsec-nss-crypto;
- &xmlsec-nss-keysstore;
- &xmlsec-nss-pkikeys;
- &xmlsec-nss-x509;
- </chapter>
-</book>
diff --git a/docs/api/xmlsec-openssl-app.html b/docs/api/xmlsec-openssl-app.html
index cae5cc5..888b6b7 100644
--- a/docs/api/xmlsec-openssl-app.html
+++ b/docs/api/xmlsec-openssl-app.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for OpenSLL API Reference." href="xmlsec-openssl-ref.html">
<link rel="PREVIOUS" title="XML Security Library for OpenSLL API Reference." href="xmlsec-openssl-ref.html">
<link rel="NEXT" title="bn" href="xmlsec-openssl-bn.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,741 +101,1109 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-openssl-ref.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-openssl-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-openssl-ref.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-openssl-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-openssl-bn.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-openssl-bn.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-OPENSSL-APP"></a>app</h1>
<div class="REFNAMEDIV">
-<a name="AEN21385"></a><h2>Name</h2>app -- Application functions implementation for OpenSSL.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-OPENSSL-APP.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>int</font> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPINIT">xmlSecOpenSSLAppInit</a> (const <font>char</font> *config);
-<font>int</font> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPSHUTDOWN">xmlSecOpenSSLAppShutdown</a> (void);
-<font>int</font> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPDEFAULTKEYSMNGRINIT">xmlSecOpenSSLAppDefaultKeysMngrInit</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);
-<font>int</font> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPDEFAULTKEYSMNGRADOPTKEY">xmlSecOpenSSLAppDefaultKeysMngrAdoptKey</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPDEFAULTKEYSMNGRLOAD">xmlSecOpenSSLAppDefaultKeysMngrLoad</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *uri);
-<font>int</font> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPDEFAULTKEYSMNGRSAVE">xmlSecOpenSSLAppDefaultKeysMngrSave</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYSMNGRCERTLOAD">xmlSecOpenSSLAppKeysMngrCertLoad</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYSMNGRCERTLOADMEMORY">xmlSecOpenSSLAppKeysMngrCertLoadMemory</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYSMNGRCERTLOADBIO">xmlSecOpenSSLAppKeysMngrCertLoadBIO</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>BIO</font> *bio,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYSMNGRADDCERTSPATH">xmlSecOpenSSLAppKeysMngrAddCertsPath</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *path);
-<font>int</font> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYSMNGRADDCERTSFILE">xmlSecOpenSSLAppKeysMngrAddCertsFile</a>
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *file);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYLOAD">xmlSecOpenSSLAppKeyLoad</a> (const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYLOADMEMORY">xmlSecOpenSSLAppKeyLoadMemory</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYLOADBIO">xmlSecOpenSSLAppKeyLoadBIO</a> (<font>BIO</font> *bio,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPPKCS12LOAD">xmlSecOpenSSLAppPkcs12Load</a> (const <font>char</font> *filename,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPPKCS12LOADMEMORY">xmlSecOpenSSLAppPkcs12LoadMemory</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPPKCS12LOADBIO">xmlSecOpenSSLAppPkcs12LoadBIO</a> (<font>BIO</font> *bio,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);
-<font>int</font> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYCERTLOAD">xmlSecOpenSSLAppKeyCertLoad</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<font>int</font> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYCERTLOADMEMORY">xmlSecOpenSSLAppKeyCertLoadMemory</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<font>int</font> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYCERTLOADBIO">xmlSecOpenSSLAppKeyCertLoadBIO</a> (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>BIO</font> *bio,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYFROMCERTLOADBIO">xmlSecOpenSSLAppKeyFromCertLoadBIO</a> (<font>BIO</font> *bio,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);
-<font>void</font>* <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPGETDEFAULTPWDCALLBACK">xmlSecOpenSSLAppGetDefaultPwdCallback</a>
- (void);</pre>
+<a name="AEN28928"></a><h2>Name</h2>app -- Application functions implementation for OpenSSL.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-OPENSSL-APP.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN28933"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPINIT">xmlSecOpenSSLAppInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPSHUTDOWN">xmlSecOpenSSLAppShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPDEFAULTKEYSMNGRINIT">xmlSecOpenSSLAppDefaultKeysMngrInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPDEFAULTKEYSMNGRADOPTKEY">xmlSecOpenSSLAppDefaultKeysMngrAdoptKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPDEFAULTKEYSMNGRLOAD">xmlSecOpenSSLAppDefaultKeysMngrLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPDEFAULTKEYSMNGRSAVE">xmlSecOpenSSLAppDefaultKeysMngrSave</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYSMNGRCERTLOAD">xmlSecOpenSSLAppKeysMngrCertLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYSMNGRCERTLOADMEMORY">xmlSecOpenSSLAppKeysMngrCertLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYSMNGRCERTLOADBIO">xmlSecOpenSSLAppKeysMngrCertLoadBIO</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYSMNGRADDCERTSPATH">xmlSecOpenSSLAppKeysMngrAddCertsPath</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYSMNGRADDCERTSFILE">xmlSecOpenSSLAppKeysMngrAddCertsFile</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYLOAD">xmlSecOpenSSLAppKeyLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYLOADMEMORY">xmlSecOpenSSLAppKeyLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYLOADBIO">xmlSecOpenSSLAppKeyLoadBIO</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPPKCS12LOAD">xmlSecOpenSSLAppPkcs12Load</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPPKCS12LOADMEMORY">xmlSecOpenSSLAppPkcs12LoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPPKCS12LOADBIO">xmlSecOpenSSLAppPkcs12LoadBIO</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYCERTLOAD">xmlSecOpenSSLAppKeyCertLoad</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYCERTLOADMEMORY">xmlSecOpenSSLAppKeyCertLoadMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYCERTLOADBIO">xmlSecOpenSSLAppKeyCertLoadBIO</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a></td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPKEYFROMCERTLOADBIO">xmlSecOpenSSLAppKeyFromCertLoadBIO</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">void</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPGETDEFAULTPWDCALLBACK">xmlSecOpenSSLAppGetDefaultPwdCallback</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-OPENSSL-APP.DESCRIPTION"></a><h2>Description</h2>
<p>Application functions implementation for OpenSSL.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-OPENSSL-APP.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-OPENSSL-APP.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPINIT"></a><h3>xmlSecOpenSSLAppInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLAppInit (const <font>char</font> *config);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLAppInit (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *config</code>);</pre>
<p>General crypto engine initialization. This function is used
by XMLSec command line utility and called before
-<code class="PARAMETER">xmlSecInit</code> function.</p>
+<code class="PARAMETER">xmlSecInit</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN29107"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN29109"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>config</p></td>
+<td><p>the path to certs.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21518"><span style="white-space: nowrap"><code class="PARAMETER">config</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the path to certs.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21523"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29118"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPSHUTDOWN"></a><h3>xmlSecOpenSSLAppShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLAppShutdown (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLAppShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>General crypto engine shutdown. This function is used
by XMLSec command line utility and called after
-<code class="PARAMETER">xmlSecShutdown</code> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN21538"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<code class="PARAMETER">xmlSecShutdown</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN29132"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPDEFAULTKEYSMNGRINIT"></a><h3>xmlSecOpenSSLAppDefaultKeysMngrInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLAppDefaultKeysMngrInit (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);</pre>
-<p>Initializes <code class="PARAMETER">mngr</code> with simple keys store <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREID"><span class="TYPE">xmlSecSimpleKeysStoreId</span></a>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLAppDefaultKeysMngrInit (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>);</pre>
+<p>Initializes <code class="PARAMETER">mngr</code>
+ with simple keys store <a href="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSSTOREID"><span class="TYPE">xmlSecSimpleKeysStoreId</span></a>
and a default OpenSSL crypto key data stores.</p>
+<div class="REFSECT3">
+<a name="AEN29149"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN29151"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21556"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21561"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29160"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPDEFAULTKEYSMNGRADOPTKEY"></a><h3>xmlSecOpenSSLAppDefaultKeysMngrAdoptKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLAppDefaultKeysMngrAdoptKey
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Adds <code class="PARAMETER">key</code> to the keys manager <code class="PARAMETER">mngr</code> created with <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecOpenSSLAppDefaultKeysMngrInit</span></a>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLAppDefaultKeysMngrAdoptKey
+ (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Adds <code class="PARAMETER">key</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+ created with <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecOpenSSLAppDefaultKeysMngrInit</span></a>
function.</p>
+<div class="REFSECT3">
+<a name="AEN29181"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN29183"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21581"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21586"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21591"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29198"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPDEFAULTKEYSMNGRLOAD"></a><h3>xmlSecOpenSSLAppDefaultKeysMngrLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLAppDefaultKeysMngrLoad (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *uri);</pre>
-<p>Loads XML keys file from <code class="PARAMETER">uri</code> to the keys manager <code class="PARAMETER">mngr</code> created
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLAppDefaultKeysMngrLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *uri</code>);</pre>
+<p>Loads XML keys file from <code class="PARAMETER">uri</code>
+ to the keys manager <code class="PARAMETER">mngr</code>
+ created
with <a href="xmlsec-openssl-app.html#XMLSECOPENSSLAPPDEFAULTKEYSMNGRINIT"><span class="TYPE">xmlSecOpenSSLAppDefaultKeysMngrInit</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN29219"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN29221"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21611"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21616"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the uri.</p></td>
+<td><p>uri</p></td>
+<td><p>the uri.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21621"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29236"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPDEFAULTKEYSMNGRSAVE"></a><h3>xmlSecOpenSSLAppDefaultKeysMngrSave ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLAppDefaultKeysMngrSave (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Saves keys from <code class="PARAMETER">mngr</code> to XML keys file.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLAppDefaultKeysMngrSave (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Saves keys from <code class="PARAMETER">mngr</code>
+ to XML keys file.</p>
+<div class="REFSECT3">
+<a name="AEN29257"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN29259"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21639"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21644"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination filename.</p></td>
+<td><p>filename</p></td>
+<td><p>the destination filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21649"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the type of keys to save (public/private/symmetric).</p></td>
+<td><p>type</p></td>
+<td><p>the type of keys to save (public/private/symmetric).</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21654"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29280"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPKEYSMNGRCERTLOAD"></a><h3>xmlSecOpenSSLAppKeysMngrCertLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLAppKeysMngrCertLoad (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Reads cert from <code class="PARAMETER">filename</code> and adds to the list of trusted or known
-untrusted certs in <code class="PARAMETER">store</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLAppKeysMngrCertLoad (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Reads cert from <code class="PARAMETER">filename</code>
+ and adds to the list of trusted or known
+untrusted certs in <code class="PARAMETER">store</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN29305"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21674"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
-</tr>
+<a name="AEN29307"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21679"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file.</p></td>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21684"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>filename</p></td>
+<td><p>the certificate file.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21689"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag that indicates is the certificate in <code class="PARAMETER">filename</code>
- trusted or not.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21695"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>type</p></td>
+<td><p>the flag that indicates is the certificate in <code class="PARAMETER">filename</code>
+trusted or not.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29335"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPKEYSMNGRCERTLOADMEMORY"></a><h3>xmlSecOpenSSLAppKeysMngrCertLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLAppKeysMngrCertLoadMemory
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
-<p>Reads cert from binary buffer <code class="PARAMETER">data</code> and adds to the list of trusted or known
-untrusted certs in <code class="PARAMETER">store</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLAppKeysMngrCertLoadMemory
+ (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
+<p>Reads cert from binary buffer <code class="PARAMETER">data</code>
+ and adds to the list of trusted or known
+untrusted certs in <code class="PARAMETER">store</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN29363"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21716"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
-</tr>
+<a name="AEN29365"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21721"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data.</p></td>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21726"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data size.</p></td>
+<td><p>data</p></td>
+<td><p>the certificate binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21731"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the certificate binary data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21736"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag that indicates is the certificate trusted or not.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21741"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>type</p></td>
+<td><p>the flag that indicates is the certificate trusted or not.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29398"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPKEYSMNGRCERTLOADBIO"></a><h3>xmlSecOpenSSLAppKeysMngrCertLoadBIO ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLAppKeysMngrCertLoadBIO (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- <font>BIO</font> *bio,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLAppKeysMngrCertLoadBIO (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER"><font><span class="TYPE">BIO</span></font> *bio</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
<p>Reads cert from an OpenSSL BIO object and adds to the list of trusted or known
-untrusted certs in <code class="PARAMETER">store</code>.</p>
+untrusted certs in <code class="PARAMETER">store</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN29422"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21760"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
-</tr>
+<a name="AEN29424"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21765"><span style="white-space: nowrap"><code class="PARAMETER">bio</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate BIO.</p></td>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21770"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>bio</p></td>
+<td><p>the certificate BIO.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21775"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag that indicates is the certificate trusted or not.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21780"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>type</p></td>
+<td><p>the flag that indicates is the certificate trusted or not.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29451"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPKEYSMNGRADDCERTSPATH"></a><h3>xmlSecOpenSSLAppKeysMngrAddCertsPath ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLAppKeysMngrAddCertsPath
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *path);</pre>
-<p>Reads cert from <code class="PARAMETER">path</code> and adds to the list of trusted certificates.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLAppKeysMngrAddCertsPath (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *path</code>);</pre>
+<p>Reads cert from <code class="PARAMETER">path</code>
+ and adds to the list of trusted certificates.</p>
+<div class="REFSECT3">
+<a name="AEN29469"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21797"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
-</tr>
+<a name="AEN29471"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21802"><span style="white-space: nowrap"><code class="PARAMETER">path</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the path to trusted certificates.</p></td>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21807"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>path</p></td>
+<td><p>the path to trusted certificates.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29486"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPKEYSMNGRADDCERTSFILE"></a><h3>xmlSecOpenSSLAppKeysMngrAddCertsFile ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLAppKeysMngrAddCertsFile
- (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr,
- const <font>char</font> *file);</pre>
-<p>Reads certs from <code class="PARAMETER">file</code> and adds to the list of trusted certificates.
-It is possible for <code class="PARAMETER">file</code> to contain multiple certs.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLAppKeysMngrAddCertsFile (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *file</code>);</pre>
+<p>Reads certs from <code class="PARAMETER">file</code>
+ and adds to the list of trusted certificates.
+It is possible for <code class="PARAMETER">file</code>
+ to contain multiple certs.</p>
+<div class="REFSECT3">
+<a name="AEN29505"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21825"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the keys manager.</p></td>
-</tr>
+<a name="AEN29507"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21830"><span style="white-space: nowrap"><code class="PARAMETER">file</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the file containing trusted certificates.</p></td>
+<td><p>mngr</p></td>
+<td><p>the keys manager.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21835"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>file</p></td>
+<td><p>the file containing trusted certificates.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29522"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPKEYLOAD"></a><h3>xmlSecOpenSSLAppKeyLoad ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecOpenSSLAppKeyLoad (const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecOpenSSLAppKeyLoad (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key from the a file.</p>
+<div class="REFSECT3">
+<a name="AEN29548"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21854"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key filename.</p></td>
-</tr>
+<a name="AEN29550"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21859"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file format.</p></td>
+<td><p>filename</p></td>
+<td><p>the key filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21864"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file password.</p></td>
+<td><p>format</p></td>
+<td><p>the key file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21869"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the key file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21874"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the key password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21879"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29583"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPKEYLOADMEMORY"></a><h3>xmlSecOpenSSLAppKeyLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecOpenSSLAppKeyLoadMemory (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecOpenSSLAppKeyLoadMemory (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key from the memory buffer.</p>
+<div class="REFSECT3">
+<a name="AEN29612"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21899"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the binary key data.</p></td>
-</tr>
+<a name="AEN29614"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21904"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of binary key.</p></td>
+<td><p>data</p></td>
+<td><p>the binary key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21909"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file format.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the size of binary key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21914"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file password.</p></td>
+<td><p>format</p></td>
+<td><p>the key file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21919"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the key file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21924"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the key password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21929"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29653"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPKEYLOADBIO"></a><h3>xmlSecOpenSSLAppKeyLoadBIO ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecOpenSSLAppKeyLoadBIO (<font>BIO</font> *bio,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecOpenSSLAppKeyLoadBIO (<code class="PARAMETER"><font><span class="TYPE">BIO</span></font> *bio</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key from the an OpenSSL BIO object.</p>
+<div class="REFSECT3">
+<a name="AEN29679"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21948"><span style="white-space: nowrap"><code class="PARAMETER">bio</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key BIO.</p></td>
-</tr>
+<a name="AEN29681"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21953"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file format.</p></td>
+<td><p>bio</p></td>
+<td><p>the key BIO.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21958"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key file password.</p></td>
+<td><p>format</p></td>
+<td><p>the key file format.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21963"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the key file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21968"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the key password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21973"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29714"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPPKCS12LOAD"></a><h3>xmlSecOpenSSLAppPkcs12Load ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecOpenSSLAppPkcs12Load (const <font>char</font> *filename,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecOpenSSLAppPkcs12Load (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key and all associated certificates from the PKCS12 file.
For uniformity, call xmlSecOpenSSLAppKeyLoad instead of this function. Pass
in format=xmlSecKeyDataFormatPkcs12.</p>
+<div class="REFSECT3">
+<a name="AEN29737"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21991"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 key filename.</p></td>
-</tr>
+<a name="AEN29739"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21996"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 file password.</p></td>
+<td><p>filename</p></td>
+<td><p>the PKCS12 key filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22001"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the PKCS12 file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22006"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22011"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29766"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPPKCS12LOADMEMORY"></a><h3>xmlSecOpenSSLAppPkcs12LoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecOpenSSLAppPkcs12LoadMemory (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecOpenSSLAppPkcs12LoadMemory (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key and all associated certificates from the PKCS12 data in memory buffer.
For uniformity, call xmlSecOpenSSLAppKeyLoad instead of this function. Pass
in format=xmlSecKeyDataFormatPkcs12.</p>
+<div class="REFSECT3">
+<a name="AEN29792"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22030"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 binary data.</p></td>
-</tr>
+<a name="AEN29794"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22035"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 binary data size.</p></td>
+<td><p>data</p></td>
+<td><p>the PKCS12 binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22040"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 file password.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the PKCS12 binary data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22045"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the PKCS12 file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22050"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22055"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29827"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPPKCS12LOADBIO"></a><h3>xmlSecOpenSSLAppPkcs12LoadBIO ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecOpenSSLAppPkcs12LoadBIO (<font>BIO</font> *bio,
- const <font>char</font> *pwd,
- <font>void</font> *pwdCallback,
- <font>void</font> *pwdCallbackCtx);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecOpenSSLAppPkcs12LoadBIO (<code class="PARAMETER"><font><span class="TYPE">BIO</span></font> *bio</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *pwd</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallback</code>,
+ <code class="PARAMETER"><font><span class="TYPE">void</span></font> *pwdCallbackCtx</code>);</pre>
<p>Reads key and all associated certificates from the PKCS12 data in an OpenSSL BIO object.
For uniformity, call xmlSecOpenSSLAppKeyLoad instead of this function. Pass
in format=xmlSecKeyDataFormatPkcs12.</p>
+<div class="REFSECT3">
+<a name="AEN29850"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22073"><span style="white-space: nowrap"><code class="PARAMETER">bio</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 key bio.</p></td>
-</tr>
+<a name="AEN29852"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22078"><span style="white-space: nowrap"><code class="PARAMETER">pwd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the PKCS12 file password.</p></td>
+<td><p>bio</p></td>
+<td><p>the PKCS12 key bio.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22083"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallback</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the password callback.</p></td>
+<td><p>pwd</p></td>
+<td><p>the PKCS12 file password.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22088"><span style="white-space: nowrap"><code class="PARAMETER">pwdCallbackCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the user context for password callback.</p></td>
+<td><p>pwdCallback</p></td>
+<td><p>the password callback.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22093"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the key or NULL if an error occurs.</p></td>
+<td><p>pwdCallbackCtx</p></td>
+<td><p>the user context for password callback.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29879"></a><h4>Returns</h4>
+<p> pointer to the key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPKEYCERTLOAD"></a><h3>xmlSecOpenSSLAppKeyCertLoad ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLAppKeyCertLoad (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <font>char</font> *filename,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
-<p>Reads the certificate from $<code class="PARAMETER">filename</code> and adds it to key.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLAppKeyCertLoad (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
+<p>Reads the certificate from $<code class="PARAMETER">filename</code>
+ and adds it to key.</p>
+<div class="REFSECT3">
+<a name="AEN29900"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22111"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
+<a name="AEN29902"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22116"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate filename.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22121"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>filename</p></td>
+<td><p>the certificate filename.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22126"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29923"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPKEYCERTLOADMEMORY"></a><h3>xmlSecOpenSSLAppKeyCertLoadMemory ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLAppKeyCertLoadMemory (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLAppKeyCertLoadMemory (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
<p>Reads the certificate from memory buffer and adds it to key.</p>
+<div class="REFSECT3">
+<a name="AEN29946"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22144"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
+<a name="AEN29948"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22149"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22154"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate binary data size.</p></td>
+<td><p>data</p></td>
+<td><p>the certificate binary data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22159"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the certificate binary data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22164"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN29975"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPKEYCERTLOADBIO"></a><h3>xmlSecOpenSSLAppKeyCertLoadBIO ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLAppKeyCertLoadBIO (<a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key,
- <font>BIO</font> *bio,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLAppKeyCertLoadBIO (<code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>,
+ <code class="PARAMETER"><font><span class="TYPE">BIO</span></font> *bio</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
<p>Reads the certificate from memory buffer and adds it to key.</p>
+<div class="REFSECT3">
+<a name="AEN29995"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22181"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
+<a name="AEN29997"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22186"><span style="white-space: nowrap"><code class="PARAMETER">bio</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate bio.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22191"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate file format.</p></td>
+<td><p>bio</p></td>
+<td><p>the certificate bio.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22196"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>format</p></td>
+<td><p>the certificate file format.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN30018"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPKEYFROMCERTLOADBIO"></a><h3>xmlSecOpenSSLAppKeyFromCertLoadBIO ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> xmlSecOpenSSLAppKeyFromCertLoadBIO (<font>BIO</font> *bio,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT">xmlSecKeyDataFormat</a> format);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keys.html#XMLSECKEY"><span class="RETURNVALUE">xmlSecKeyPtr</span></a>
+xmlSecOpenSSLAppKeyFromCertLoadBIO (<code class="PARAMETER"><font><span class="TYPE">BIO</span></font> *bio</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATAFORMAT"><span class="TYPE">xmlSecKeyDataFormat</span></a> format</code>);</pre>
<p>Loads public key from cert.</p>
+<div class="REFSECT3">
+<a name="AEN30035"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22212"><span style="white-space: nowrap"><code class="PARAMETER">bio</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the BIO.</p></td>
-</tr>
+<a name="AEN30037"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22217"><span style="white-space: nowrap"><code class="PARAMETER">format</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the cert format.</p></td>
+<td><p>bio</p></td>
+<td><p>the BIO.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22222"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to key or NULL if an error occurs.</p></td>
+<td><p>format</p></td>
+<td><p>the cert format.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN30052"></a><h4>Returns</h4>
+<p> pointer to key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLAPPGETDEFAULTPWDCALLBACK"></a><h3>xmlSecOpenSSLAppGetDefaultPwdCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font>* xmlSecOpenSSLAppGetDefaultPwdCallback
- (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font> *
+xmlSecOpenSSLAppGetDefaultPwdCallback (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Gets default password callback.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22236"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> default password callback.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN30065"></a><h4>Returns</h4>
+<p> default password callback.</p>
+</div>
</div>
</div>
+<div class="REFSECT1">
+<a name="XMLSEC-OPENSSL-APP.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<p></p>
+</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-openssl-ref.html"><b><<< XML Security Library for OpenSLL API Reference.</b></a></td>
<td align="right"><a accesskey="n" href="xmlsec-openssl-bn.html"><b>bn >>></b></a></td>
diff --git a/docs/api/xmlsec-openssl-bn.html b/docs/api/xmlsec-openssl-bn.html
index 1f63e9b..4f3c540 100644
--- a/docs/api/xmlsec-openssl-bn.html
+++ b/docs/api/xmlsec-openssl-bn.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for OpenSLL API Reference." href="xmlsec-openssl-ref.html">
<link rel="PREVIOUS" title="app" href="xmlsec-openssl-app.html">
<link rel="NEXT" title="crypto" href="xmlsec-openssl-crypto.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,90 +101,139 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-openssl-app.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-openssl-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-openssl-app.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-openssl-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-openssl-crypto.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-openssl-crypto.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-OPENSSL-BN"></a>bn</h1>
<div class="REFNAMEDIV">
-<a name="AEN22246"></a><h2>Name</h2>bn -- Big numbers helper functions.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-OPENSSL-BN.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>BIGNUM</font>* <a href="xmlsec-openssl-bn.html#XMLSECOPENSSLNODEGETBNVALUE">xmlSecOpenSSLNodeGetBNValue</a> (const <font>xmlNodePtr</font> cur,
- <font>BIGNUM</font> **a);
-<font>int</font> <a href="xmlsec-openssl-bn.html#XMLSECOPENSSLNODESETBNVALUE">xmlSecOpenSSLNodeSetBNValue</a> (<font>xmlNodePtr</font> cur,
- const <font>BIGNUM</font> *a,
- <font>int</font> addLineBreaks);</pre>
+<a name="AEN30076"></a><h2>Name</h2>bn -- Big numbers helper functions.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-OPENSSL-BN.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN30081"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>
+<font><span class="RETURNVALUE">BIGNUM</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-bn.html#XMLSECOPENSSLNODEGETBNVALUE">xmlSecOpenSSLNodeGetBNValue</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-bn.html#XMLSECOPENSSLNODESETBNVALUE">xmlSecOpenSSLNodeSetBNValue</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-OPENSSL-BN.DESCRIPTION"></a><h2>Description</h2>
<p>Big numbers helper functions.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-OPENSSL-BN.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-OPENSSL-BN.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECOPENSSLNODEGETBNVALUE"></a><h3>xmlSecOpenSSLNodeGetBNValue ()</h3>
-<pre class="PROGRAMLISTING"><font>BIGNUM</font>* xmlSecOpenSSLNodeGetBNValue (const <font>xmlNodePtr</font> cur,
- <font>BIGNUM</font> **a);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">BIGNUM</span></font> *
+xmlSecOpenSSLNodeGetBNValue (<code class="PARAMETER">const <font><span class="TYPE">xmlNodePtr</span></font> cur</code>,
+ <code class="PARAMETER"><font><span class="TYPE">BIGNUM</span></font> **a</code>);</pre>
<p>Converts the node content from CryptoBinary format
(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-CryptoBinary</span></font>)
to a BIGNUM. If no BIGNUM buffer provided then a new
BIGNUM is created (caller is responsible for freeing it).</p>
+<div class="REFSECT3">
+<a name="AEN30119"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22279"><span style="white-space: nowrap"><code class="PARAMETER">cur</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the poitner to an XML node.</p></td>
-</tr>
+<a name="AEN30121"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22284"><span style="white-space: nowrap"><code class="PARAMETER">a</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the BIGNUM buffer.</p></td>
+<td><p>cur</p></td>
+<td><p>the poitner to an XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22289"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> a pointer to BIGNUM produced from CryptoBinary string
-or NULL if an error occurs.</p></td>
+<td><p>a</p></td>
+<td><p>the BIGNUM buffer.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN30136"></a><h4>Returns</h4>
+<p> a pointer to BIGNUM produced from CryptoBinary string
+or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLNODESETBNVALUE"></a><h3>xmlSecOpenSSLNodeSetBNValue ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLNodeSetBNValue (<font>xmlNodePtr</font> cur,
- const <font>BIGNUM</font> *a,
- <font>int</font> addLineBreaks);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLNodeSetBNValue (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> cur</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">BIGNUM</span></font> *a</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> addLineBreaks</code>);</pre>
<p>Converts BIGNUM to CryptoBinary string
(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-CryptoBinary</span></font>)
and sets it as the content of the given node. If the
addLineBreaks is set then line breaks are added
before and after the CryptoBinary string.</p>
+<div class="REFSECT3">
+<a name="AEN30158"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22308"><span style="white-space: nowrap"><code class="PARAMETER">cur</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
-</tr>
+<a name="AEN30160"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22313"><span style="white-space: nowrap"><code class="PARAMETER">a</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the BIGNUM.</p></td>
+<td><p>cur</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22318"><span style="white-space: nowrap"><code class="PARAMETER">addLineBreaks</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> if the flag is equal to 1 then
- linebreaks will be added before and after
- new buffer content.</p></td>
+<td><p>a</p></td>
+<td><p>the BIGNUM.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22323"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or -1 otherwise.</p></td>
+<td><p>addLineBreaks</p></td>
+<td><p>if the flag is equal to 1 then
+linebreaks will be added before and after
+new buffer content.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
+<div class="REFSECT3">
+<a name="AEN30181"></a><h4>Returns</h4>
+<p> 0 on success or -1 otherwise.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-OPENSSL-BN.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<p></p>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-openssl-app.html"><b><<< app</b></a></td>
diff --git a/docs/api/xmlsec-openssl-crypto.html b/docs/api/xmlsec-openssl-crypto.html
index 3c66534..f56e0a9 100644
--- a/docs/api/xmlsec-openssl-crypto.html
+++ b/docs/api/xmlsec-openssl-crypto.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for OpenSLL API Reference." href="xmlsec-openssl-ref.html">
<link rel="PREVIOUS" title="bn" href="xmlsec-openssl-bn.html">
<link rel="NEXT" title="evp" href="xmlsec-openssl-evp.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,1659 +101,2427 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-openssl-bn.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-openssl-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-openssl-bn.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-openssl-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-openssl-evp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-openssl-evp.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-OPENSSL-CRYPTO"></a>crypto</h1>
<div class="REFNAMEDIV">
-<a name="AEN22333"></a><h2>Name</h2>crypto -- Crypto transforms implementation for OpenSSL.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-OPENSSL-CRYPTO.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>xmlSecCryptoDLFunctionsPtr</font> <a href="xmlsec-openssl-crypto.html#XMLSECCRYPTOGETFUNCTIONS-OPENSSL">xmlSecCryptoGetFunctions_openssl</a>
- (void);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLINIT">xmlSecOpenSSLInit</a> (void);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLSHUTDOWN">xmlSecOpenSSLShutdown</a> (void);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYSMNGRINIT">xmlSecOpenSSLKeysMngrInit</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLGENERATERANDOM">xmlSecOpenSSLGenerateRandom</a> (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLSETDEFAULTTRUSTEDCERTSFOLDER">xmlSecOpenSSLSetDefaultTrustedCertsFolder</a>
- (const <font>xmlChar</font> *path);
-const <font>xmlChar</font>* <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLGETDEFAULTTRUSTEDCERTSFOLDER">xmlSecOpenSSLGetDefaultTrustedCertsFolder</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAAESID">xmlSecOpenSSLKeyDataAesId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAAESGETKLASS">xmlSecOpenSSLKeyDataAesGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAAESSET">xmlSecOpenSSLKeyDataAesSet</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMAES128CBCID">xmlSecOpenSSLTransformAes128CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMAES128CBCGETKLASS">xmlSecOpenSSLTransformAes128CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMAES192CBCID">xmlSecOpenSSLTransformAes192CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMAES192CBCGETKLASS">xmlSecOpenSSLTransformAes192CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMAES256CBCID">xmlSecOpenSSLTransformAes256CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMAES256CBCGETKLASS">xmlSecOpenSSLTransformAes256CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWAES128ID">xmlSecOpenSSLTransformKWAes128Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWAES128GETKLASS">xmlSecOpenSSLTransformKWAes128GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWAES192ID">xmlSecOpenSSLTransformKWAes192Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWAES192GETKLASS">xmlSecOpenSSLTransformKWAes192GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWAES256ID">xmlSecOpenSSLTransformKWAes256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWAES256GETKLASS">xmlSecOpenSSLTransformKWAes256GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADESID">xmlSecOpenSSLKeyDataDesId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADESGETKLASS">xmlSecOpenSSLKeyDataDesGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADESSET">xmlSecOpenSSLKeyDataDesSet</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMDES3CBCID">xmlSecOpenSSLTransformDes3CbcId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMDES3CBCGETKLASS">xmlSecOpenSSLTransformDes3CbcGetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWDES3ID">xmlSecOpenSSLTransformKWDes3Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWDES3GETKLASS">xmlSecOpenSSLTransformKWDes3GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADSAID">xmlSecOpenSSLKeyDataDsaId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADSAGETKLASS">xmlSecOpenSSLKeyDataDsaGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADSAADOPTDSA">xmlSecOpenSSLKeyDataDsaAdoptDsa</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>DSA</font> *dsa);
-<font>DSA</font>* <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADSAGETDSA">xmlSecOpenSSLKeyDataDsaGetDsa</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADSAADOPTEVP">xmlSecOpenSSLKeyDataDsaAdoptEvp</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>EVP_PKEY</font> *pKey);
-<font>EVP_PKEY</font>* <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADSAGETEVP">xmlSecOpenSSLKeyDataDsaGetEvp</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMDSASHA1ID">xmlSecOpenSSLTransformDsaSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMDSASHA1GETKLASS">xmlSecOpenSSLTransformDsaSha1GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMDSASHA256ID">xmlSecOpenSSLTransformDsaSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMDSASHA256GETKLASS">xmlSecOpenSSLTransformDsaSha256GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAECDSAID">xmlSecOpenSSLKeyDataEcdsaId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAECDSAGETKLASS">xmlSecOpenSSLKeyDataEcdsaGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAECDSAADOPTECDSA">xmlSecOpenSSLKeyDataEcdsaAdoptEcdsa</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>EC_KEY</font> *ecdsa);
-<font>EC_KEY</font>* <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAECDSAGETECDSA">xmlSecOpenSSLKeyDataEcdsaGetEcdsa</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAECDSAADOPTEVP">xmlSecOpenSSLKeyDataEcdsaAdoptEvp</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>EVP_PKEY</font> *pKey);
-<font>EVP_PKEY</font>* <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAECDSAGETEVP">xmlSecOpenSSLKeyDataEcdsaGetEvp</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA1ID">xmlSecOpenSSLTransformEcdsaSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA1GETKLASS">xmlSecOpenSSLTransformEcdsaSha1GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA224ID">xmlSecOpenSSLTransformEcdsaSha224Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA224GETKLASS">xmlSecOpenSSLTransformEcdsaSha224GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA256ID">xmlSecOpenSSLTransformEcdsaSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA256GETKLASS">xmlSecOpenSSLTransformEcdsaSha256GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA384ID">xmlSecOpenSSLTransformEcdsaSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA384GETKLASS">xmlSecOpenSSLTransformEcdsaSha384GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA512ID">xmlSecOpenSSLTransformEcdsaSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA512GETKLASS">xmlSecOpenSSLTransformEcdsaSha512GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAGOST2001ID">xmlSecOpenSSLKeyDataGost2001Id</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAGOST2001GETKLASS">xmlSecOpenSSLKeyDataGost2001GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOST2001GOSTR3411-94ID">xmlSecOpenSSLTransformGost2001GostR3411_94Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOST2001GOSTR3411-94GETKLASS">xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOSTR3411-94ID">xmlSecOpenSSLTransformGostR3411_94Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOSTR3411-94GETKLASS">xmlSecOpenSSLTransformGostR3411_94GetKlass</a>
- (void);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLHMACGETMINOUTPUTLENGTH">xmlSecOpenSSLHmacGetMinOutputLength</a> (void);
-<font>void</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLHMACSETMINOUTPUTLENGTH">xmlSecOpenSSLHmacSetMinOutputLength</a> (<font>int</font> min_length);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAHMACID">xmlSecOpenSSLKeyDataHmacId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAHMACGETKLASS">xmlSecOpenSSLKeyDataHmacGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAHMACSET">xmlSecOpenSSLKeyDataHmacSet</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACMD5ID">xmlSecOpenSSLTransformHmacMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACMD5GETKLASS">xmlSecOpenSSLTransformHmacMd5GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACRIPEMD160ID">xmlSecOpenSSLTransformHmacRipemd160Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACRIPEMD160GETKLASS">xmlSecOpenSSLTransformHmacRipemd160GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA1ID">xmlSecOpenSSLTransformHmacSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA1GETKLASS">xmlSecOpenSSLTransformHmacSha1GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA224ID">xmlSecOpenSSLTransformHmacSha224Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA224GETKLASS">xmlSecOpenSSLTransformHmacSha224GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA256ID">xmlSecOpenSSLTransformHmacSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA256GETKLASS">xmlSecOpenSSLTransformHmacSha256GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA384ID">xmlSecOpenSSLTransformHmacSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA384GETKLASS">xmlSecOpenSSLTransformHmacSha384GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA512ID">xmlSecOpenSSLTransformHmacSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA512GETKLASS">xmlSecOpenSSLTransformHmacSha512GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMMD5ID">xmlSecOpenSSLTransformMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMMD5GETKLASS">xmlSecOpenSSLTransformMd5GetKlass</a> (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRIPEMD160ID">xmlSecOpenSSLTransformRipemd160Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRIPEMD160GETKLASS">xmlSecOpenSSLTransformRipemd160GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATARSAID">xmlSecOpenSSLKeyDataRsaId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATARSAGETKLASS">xmlSecOpenSSLKeyDataRsaGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATARSAADOPTRSA">xmlSecOpenSSLKeyDataRsaAdoptRsa</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>RSA</font> *rsa);
-<font>RSA</font>* <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATARSAGETRSA">xmlSecOpenSSLKeyDataRsaGetRsa</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATARSAADOPTEVP">xmlSecOpenSSLKeyDataRsaAdoptEvp</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>EVP_PKEY</font> *pKey);
-<font>EVP_PKEY</font>* <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATARSAGETEVP">xmlSecOpenSSLKeyDataRsaGetEvp</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSAMD5ID">xmlSecOpenSSLTransformRsaMd5Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSAMD5GETKLASS">xmlSecOpenSSLTransformRsaMd5GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSARIPEMD160ID">xmlSecOpenSSLTransformRsaRipemd160Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSARIPEMD160GETKLASS">xmlSecOpenSSLTransformRsaRipemd160GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA1ID">xmlSecOpenSSLTransformRsaSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA1GETKLASS">xmlSecOpenSSLTransformRsaSha1GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA224ID">xmlSecOpenSSLTransformRsaSha224Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA224GETKLASS">xmlSecOpenSSLTransformRsaSha224GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA256ID">xmlSecOpenSSLTransformRsaSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA256GETKLASS">xmlSecOpenSSLTransformRsaSha256GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA384ID">xmlSecOpenSSLTransformRsaSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA384GETKLASS">xmlSecOpenSSLTransformRsaSha384GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA512ID">xmlSecOpenSSLTransformRsaSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA512GETKLASS">xmlSecOpenSSLTransformRsaSha512GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSAPKCS1ID">xmlSecOpenSSLTransformRsaPkcs1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSAPKCS1GETKLASS">xmlSecOpenSSLTransformRsaPkcs1GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSAOAEPID">xmlSecOpenSSLTransformRsaOaepId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSAOAEPGETKLASS">xmlSecOpenSSLTransformRsaOaepGetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA1ID">xmlSecOpenSSLTransformSha1Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA1GETKLASS">xmlSecOpenSSLTransformSha1GetKlass</a> (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA224ID">xmlSecOpenSSLTransformSha224Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA224GETKLASS">xmlSecOpenSSLTransformSha224GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA256ID">xmlSecOpenSSLTransformSha256Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA256GETKLASS">xmlSecOpenSSLTransformSha256GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA384ID">xmlSecOpenSSLTransformSha384Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA384GETKLASS">xmlSecOpenSSLTransformSha384GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA512ID">xmlSecOpenSSLTransformSha512Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA512GETKLASS">xmlSecOpenSSLTransformSha512GetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-crypto.html#XMLSEC-OPENSSL-ERRORS-LIB--CAPS">XMLSEC_OPENSSL_ERRORS_LIB</a>
-#define <a href="xmlsec-openssl-crypto.html#XMLSEC-OPENSSL-ERRORS-FUNCTION--CAPS">XMLSEC_OPENSSL_ERRORS_FUNCTION</a>
-<font>void</font> <a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLERRORSDEFAULTCALLBACK">xmlSecOpenSSLErrorsDefaultCallback</a> (const <font>char</font> *file,
- <font>int</font> line,
- const <font>char</font> *func,
- const <font>char</font> *errorObject,
- const <font>char</font> *errorSubject,
- <font>int</font> reason,
- const <font>char</font> *msg);</pre>
-</div>
-<div class="REFSECT1">
-<a name="XMLSEC-OPENSSL-CRYPTO.DESCRIPTION"></a><h2>Description</h2>
-<p>Crypto transforms implementation for OpenSSL.</p>
-</div>
+<a name="AEN30192"></a><h2>Name</h2>crypto -- Crypto transforms implementation for OpenSSL.</div>
<div class="REFSECT1">
-<a name="XMLSEC-OPENSSL-CRYPTO.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECCRYPTOGETFUNCTIONS-OPENSSL"></a><h3>xmlSecCryptoGetFunctions_openssl ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecCryptoDLFunctionsPtr</font> xmlSecCryptoGetFunctions_openssl
- (void);</pre>
-<p>Gets the pointer to xmlsec-openssl functions table.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22585"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the xmlsec-openssl functions table or NULL if an error occurs.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLINIT"></a><h3>xmlSecOpenSSLInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLInit (void);</pre>
-<p>XMLSec library specific crypto engine initialization.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22599"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLSHUTDOWN"></a><h3>xmlSecOpenSSLShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLShutdown (void);</pre>
-<p>XMLSec library specific crypto engine shutdown.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22613"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYSMNGRINIT"></a><h3>xmlSecOpenSSLKeysMngrInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLKeysMngrInit (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> mngr);</pre>
-<p>Adds OpenSSL specific key data stores in keys manager.</p>
-<p></p>
+<a name="XMLSEC-OPENSSL-CRYPTO.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN30197"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22628"><span style="white-space: nowrap"><code class="PARAMETER">mngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecCryptoDLFunctionsPtr</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECCRYPTOGETFUNCTIONS-OPENSSL">xmlSecCryptoGetFunctions_openssl</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22633"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLINIT">xmlSecOpenSSLInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLGENERATERANDOM"></a><h3>xmlSecOpenSSLGenerateRandom ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLGenerateRandom (<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
-<p>Generates <code class="PARAMETER">size</code> random bytes and puts result in <code class="PARAMETER">buffer</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22651"><span style="white-space: nowrap"><code class="PARAMETER">buffer</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination buffer.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLSHUTDOWN">xmlSecOpenSSLShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22656"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the numer of bytes to generate.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYSMNGRINIT">xmlSecOpenSSLKeysMngrInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22661"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLGENERATERANDOM">xmlSecOpenSSLGenerateRandom</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLSETDEFAULTTRUSTEDCERTSFOLDER">xmlSecOpenSSLSetDefaultTrustedCertsFolder</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLSETDEFAULTTRUSTEDCERTSFOLDER"></a><h3>xmlSecOpenSSLSetDefaultTrustedCertsFolder ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLSetDefaultTrustedCertsFolder
- (const <font>xmlChar</font> *path);</pre>
-<p>Sets the default trusted certs folder.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22676"><span style="white-space: nowrap"><code class="PARAMETER">path</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the default trusted certs path.</p></td>
+<td>const <font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLGETDEFAULTTRUSTEDCERTSFOLDER">xmlSecOpenSSLGetDefaultTrustedCertsFolder</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22681"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAAESGETKLASS">xmlSecOpenSSLKeyDataAesGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLGETDEFAULTTRUSTEDCERTSFOLDER"></a><h3>xmlSecOpenSSLGetDefaultTrustedCertsFolder ()</h3>
-<pre class="PROGRAMLISTING">const <font>xmlChar</font>* xmlSecOpenSSLGetDefaultTrustedCertsFolder
- (void);</pre>
-<p>Gets the default trusted certs folder.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22695"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the default trusted cert folder.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAAESID"></a><h3>xmlSecOpenSSLKeyDataAesId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataAesId</pre>
-<p>The AES key klass.</p>
-<p></p>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAAESSET">xmlSecOpenSSLKeyDataAesSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMAES128CBCGETKLASS">xmlSecOpenSSLTransformAes128CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMAES192CBCGETKLASS">xmlSecOpenSSLTransformAes192CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMAES256CBCGETKLASS">xmlSecOpenSSLTransformAes256CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWAES128GETKLASS">xmlSecOpenSSLTransformKWAes128GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWAES192GETKLASS">xmlSecOpenSSLTransformKWAes192GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWAES256GETKLASS">xmlSecOpenSSLTransformKWAes256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADESGETKLASS">xmlSecOpenSSLKeyDataDesGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADESSET">xmlSecOpenSSLKeyDataDesSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMDES3CBCGETKLASS">xmlSecOpenSSLTransformDes3CbcGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWDES3GETKLASS">xmlSecOpenSSLTransformKWDes3GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADSAGETKLASS">xmlSecOpenSSLKeyDataDsaGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADSAADOPTDSA">xmlSecOpenSSLKeyDataDsaAdoptDsa</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">DSA</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADSAGETDSA">xmlSecOpenSSLKeyDataDsaGetDsa</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADSAADOPTEVP">xmlSecOpenSSLKeyDataDsaAdoptEvp</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">EVP_PKEY</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADSAGETEVP">xmlSecOpenSSLKeyDataDsaGetEvp</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMDSASHA1GETKLASS">xmlSecOpenSSLTransformDsaSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMDSASHA256GETKLASS">xmlSecOpenSSLTransformDsaSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAECDSAGETKLASS">xmlSecOpenSSLKeyDataEcdsaGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAECDSAADOPTECDSA">xmlSecOpenSSLKeyDataEcdsaAdoptEcdsa</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">EC_KEY</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAECDSAGETECDSA">xmlSecOpenSSLKeyDataEcdsaGetEcdsa</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAECDSAADOPTEVP">xmlSecOpenSSLKeyDataEcdsaAdoptEvp</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">EVP_PKEY</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAECDSAGETEVP">xmlSecOpenSSLKeyDataEcdsaGetEvp</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA1GETKLASS">xmlSecOpenSSLTransformEcdsaSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA224GETKLASS">xmlSecOpenSSLTransformEcdsaSha224GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA256GETKLASS">xmlSecOpenSSLTransformEcdsaSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA384GETKLASS">xmlSecOpenSSLTransformEcdsaSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA512GETKLASS">xmlSecOpenSSLTransformEcdsaSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAGOST2001GETKLASS">xmlSecOpenSSLKeyDataGost2001GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOST2001GOSTR3411-94GETKLASS">xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOSTR3411-94GETKLASS">xmlSecOpenSSLTransformGostR3411_94GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAGOSTR3410-2012-256GETKLASS">xmlSecOpenSSLKeyDataGostR3410_2012_256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAGOSTR3410-2012-512GETKLASS">xmlSecOpenSSLKeyDataGostR3410_2012_512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOSTR3410-2012GOSTR3411-2012-256GETKLASS">xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOSTR3410-2012GOSTR3411-2012-512GETKLASS">xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOSTR3411-2012-256GETKLASS">xmlSecOpenSSLTransformGostR3411_2012_256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOSTR3411-2012-512GETKLASS">xmlSecOpenSSLTransformGostR3411_2012_512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLHMACGETMINOUTPUTLENGTH">xmlSecOpenSSLHmacGetMinOutputLength</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLHMACSETMINOUTPUTLENGTH">xmlSecOpenSSLHmacSetMinOutputLength</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAHMACGETKLASS">xmlSecOpenSSLKeyDataHmacGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAHMACSET">xmlSecOpenSSLKeyDataHmacSet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACMD5GETKLASS">xmlSecOpenSSLTransformHmacMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACRIPEMD160GETKLASS">xmlSecOpenSSLTransformHmacRipemd160GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA1GETKLASS">xmlSecOpenSSLTransformHmacSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA224GETKLASS">xmlSecOpenSSLTransformHmacSha224GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA256GETKLASS">xmlSecOpenSSLTransformHmacSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA384GETKLASS">xmlSecOpenSSLTransformHmacSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA512GETKLASS">xmlSecOpenSSLTransformHmacSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMMD5GETKLASS">xmlSecOpenSSLTransformMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRIPEMD160GETKLASS">xmlSecOpenSSLTransformRipemd160GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATARSAGETKLASS">xmlSecOpenSSLKeyDataRsaGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATARSAADOPTRSA">xmlSecOpenSSLKeyDataRsaAdoptRsa</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">RSA</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATARSAGETRSA">xmlSecOpenSSLKeyDataRsaGetRsa</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATARSAADOPTEVP">xmlSecOpenSSLKeyDataRsaAdoptEvp</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">EVP_PKEY</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATARSAGETEVP">xmlSecOpenSSLKeyDataRsaGetEvp</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSAMD5GETKLASS">xmlSecOpenSSLTransformRsaMd5GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSARIPEMD160GETKLASS">xmlSecOpenSSLTransformRsaRipemd160GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA1GETKLASS">xmlSecOpenSSLTransformRsaSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA224GETKLASS">xmlSecOpenSSLTransformRsaSha224GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA256GETKLASS">xmlSecOpenSSLTransformRsaSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA384GETKLASS">xmlSecOpenSSLTransformRsaSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA512GETKLASS">xmlSecOpenSSLTransformRsaSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSAPKCS1GETKLASS">xmlSecOpenSSLTransformRsaPkcs1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSAOAEPGETKLASS">xmlSecOpenSSLTransformRsaOaepGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA1GETKLASS">xmlSecOpenSSLTransformSha1GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA224GETKLASS">xmlSecOpenSSLTransformSha224GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA256GETKLASS">xmlSecOpenSSLTransformSha256GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA384GETKLASS">xmlSecOpenSSLTransformSha384GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA512GETKLASS">xmlSecOpenSSLTransformSha512GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSEC-OPENSSL-ERRORS-LIB:CAPS">XMLSEC_OPENSSL_ERRORS_LIB</a></td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLERRORSDEFAULTCALLBACK">xmlSecOpenSSLErrorsDefaultCallback</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-OPENSSL-CRYPTO.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN30752"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAAESID">xmlSecOpenSSLKeyDataAesId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMAES128CBCID">xmlSecOpenSSLTransformAes128CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMAES192CBCID">xmlSecOpenSSLTransformAes192CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMAES256CBCID">xmlSecOpenSSLTransformAes256CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWAES128ID">xmlSecOpenSSLTransformKWAes128Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWAES192ID">xmlSecOpenSSLTransformKWAes192Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWAES256ID">xmlSecOpenSSLTransformKWAes256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADESID">xmlSecOpenSSLKeyDataDesId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMDES3CBCID">xmlSecOpenSSLTransformDes3CbcId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMKWDES3ID">xmlSecOpenSSLTransformKWDes3Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATADSAID">xmlSecOpenSSLKeyDataDsaId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMDSASHA1ID">xmlSecOpenSSLTransformDsaSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMDSASHA256ID">xmlSecOpenSSLTransformDsaSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAECDSAID">xmlSecOpenSSLKeyDataEcdsaId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA1ID">xmlSecOpenSSLTransformEcdsaSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA224ID">xmlSecOpenSSLTransformEcdsaSha224Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA256ID">xmlSecOpenSSLTransformEcdsaSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA384ID">xmlSecOpenSSLTransformEcdsaSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMECDSASHA512ID">xmlSecOpenSSLTransformEcdsaSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAGOST2001ID">xmlSecOpenSSLKeyDataGost2001Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOST2001GOSTR3411-94ID">xmlSecOpenSSLTransformGost2001GostR3411_94Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOSTR3411-94ID">xmlSecOpenSSLTransformGostR3411_94Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAGOSTR3410-2012-256ID">xmlSecOpenSSLKeyDataGostR3410_2012_256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAGOSTR3410-2012-512ID">xmlSecOpenSSLKeyDataGostR3410_2012_512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOSTR3410-2012GOSTR3411-2012-256ID">xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOSTR3410-2012GOSTR3411-2012-512ID">xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOSTR3411-2012-256ID">xmlSecOpenSSLTransformGostR3411_2012_256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMGOSTR3411-2012-512ID">xmlSecOpenSSLTransformGostR3411_2012_512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATAHMACID">xmlSecOpenSSLKeyDataHmacId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACMD5ID">xmlSecOpenSSLTransformHmacMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACRIPEMD160ID">xmlSecOpenSSLTransformHmacRipemd160Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA1ID">xmlSecOpenSSLTransformHmacSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA224ID">xmlSecOpenSSLTransformHmacSha224Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA256ID">xmlSecOpenSSLTransformHmacSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA384ID">xmlSecOpenSSLTransformHmacSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMHMACSHA512ID">xmlSecOpenSSLTransformHmacSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMMD5ID">xmlSecOpenSSLTransformMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRIPEMD160ID">xmlSecOpenSSLTransformRipemd160Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLKEYDATARSAID">xmlSecOpenSSLKeyDataRsaId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSAMD5ID">xmlSecOpenSSLTransformRsaMd5Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSARIPEMD160ID">xmlSecOpenSSLTransformRsaRipemd160Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA1ID">xmlSecOpenSSLTransformRsaSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA224ID">xmlSecOpenSSLTransformRsaSha224Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA256ID">xmlSecOpenSSLTransformRsaSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA384ID">xmlSecOpenSSLTransformRsaSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSASHA512ID">xmlSecOpenSSLTransformRsaSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSAPKCS1ID">xmlSecOpenSSLTransformRsaPkcs1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMRSAOAEPID">xmlSecOpenSSLTransformRsaOaepId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA1ID">xmlSecOpenSSLTransformSha1Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA224ID">xmlSecOpenSSLTransformSha224Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA256ID">xmlSecOpenSSLTransformSha256Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA384ID">xmlSecOpenSSLTransformSha384Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSECOPENSSLTRANSFORMSHA512ID">xmlSecOpenSSLTransformSha512Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-crypto.html#XMLSEC-OPENSSL-ERRORS-FUNCTION:CAPS">XMLSEC_OPENSSL_ERRORS_FUNCTION</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-OPENSSL-CRYPTO.DESCRIPTION"></a><h2>Description</h2>
+<p>Crypto transforms implementation for OpenSSL.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-OPENSSL-CRYPTO.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
+<div class="REFSECT2">
+<a name="XMLSECCRYPTOGETFUNCTIONS-OPENSSL"></a><h3>xmlSecCryptoGetFunctions_openssl ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecCryptoDLFunctionsPtr</span></font>
+xmlSecCryptoGetFunctions_openssl (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Gets the pointer to xmlsec-openssl functions table.</p>
+<div class="REFSECT3">
+<a name="AEN30986"></a><h4>Returns</h4>
+<p> the xmlsec-openssl functions table or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLINIT"></a><h3>xmlSecOpenSSLInit ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLInit (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>XMLSec library specific crypto engine initialization.</p>
+<div class="REFSECT3">
+<a name="AEN30999"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLSHUTDOWN"></a><h3>xmlSecOpenSSLShutdown ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>XMLSec library specific crypto engine shutdown.</p>
+<div class="REFSECT3">
+<a name="AEN31012"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYSMNGRINIT"></a><h3>xmlSecOpenSSLKeysMngrInit ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLKeysMngrInit (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> mngr</code>);</pre>
+<p>Adds OpenSSL specific key data stores in keys manager.</p>
+<div class="REFSECT3">
+<a name="AEN31026"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31028"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>mngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN31037"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLGENERATERANDOM"></a><h3>xmlSecOpenSSLGenerateRandom ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLGenerateRandom (<code class="PARAMETER"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> buffer</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
+<p>Generates <code class="PARAMETER">size</code>
+ random bytes and puts result in <code class="PARAMETER">buffer</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN31056"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31058"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>buffer</p></td>
+<td><p>the destination buffer.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>size</p></td>
+<td><p>the numer of bytes to generate.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN31073"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLSETDEFAULTTRUSTEDCERTSFOLDER"></a><h3>xmlSecOpenSSLSetDefaultTrustedCertsFolder ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLSetDefaultTrustedCertsFolder
+ (<code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *path</code>);</pre>
+<p>Sets the default trusted certs folder.</p>
+<div class="REFSECT3">
+<a name="AEN31087"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31089"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>path</p></td>
+<td><p>the default trusted certs path.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN31098"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLGETDEFAULTTRUSTEDCERTSFOLDER"></a><h3>xmlSecOpenSSLGetDefaultTrustedCertsFolder ()</h3>
+<pre class="PROGRAMLISTING">const <font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecOpenSSLGetDefaultTrustedCertsFolder
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Gets the default trusted certs folder.</p>
+<div class="REFSECT3">
+<a name="AEN31111"></a><h4>Returns</h4>
+<p> the default trusted cert folder.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATAAESGETKLASS"></a><h3>xmlSecOpenSSLKeyDataAesGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecOpenSSLKeyDataAesGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN31124"></a><h4>Returns</h4>
+<p> AES key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATAAESSET"></a><h3>xmlSecOpenSSLKeyDataAesSet ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLKeyDataAesSet (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
+<p>Sets the value of AES key data.</p>
+<div class="REFSECT3">
+<a name="AEN31144"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31146"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to AES key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buf</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the key value size (in bytes).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN31167"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMAES128CBCGETKLASS"></a><h3>xmlSecOpenSSLTransformAes128CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformAes128CbcGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 128 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31180"></a><h4>Returns</h4>
+<p> pointer to AES 128 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMAES192CBCGETKLASS"></a><h3>xmlSecOpenSSLTransformAes192CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformAes192CbcGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 192 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31193"></a><h4>Returns</h4>
+<p> pointer to AES 192 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMAES256CBCGETKLASS"></a><h3>xmlSecOpenSSLTransformAes256CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformAes256CbcGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>AES 256 CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31206"></a><h4>Returns</h4>
+<p> pointer to AES 256 CBC encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMKWAES128GETKLASS"></a><h3>xmlSecOpenSSLTransformKWAes128GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformKWAes128GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-128 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31219"></a><h4>Returns</h4>
+<p> AES-128 kew wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMKWAES192GETKLASS"></a><h3>xmlSecOpenSSLTransformKWAes192GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformKWAes192GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-192 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31232"></a><h4>Returns</h4>
+<p> AES-192 kew wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMKWAES256GETKLASS"></a><h3>xmlSecOpenSSLTransformKWAes256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformKWAes256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The AES-256 kew wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31245"></a><h4>Returns</h4>
+<p> AES-256 kew wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATADESGETKLASS"></a><h3>xmlSecOpenSSLKeyDataDesGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecOpenSSLKeyDataDesGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DES key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN31258"></a><h4>Returns</h4>
+<p> DES key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATADESSET"></a><h3>xmlSecOpenSSLKeyDataDesSet ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLKeyDataDesSet (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
+<p>Sets the value of DES key data.</p>
+<div class="REFSECT3">
+<a name="AEN31278"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31280"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to DES key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buf</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bufSize</p></td>
+<td><p>the key value size (in bytes).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN31301"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMDES3CBCGETKLASS"></a><h3>xmlSecOpenSSLTransformDes3CbcGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformDes3CbcGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Triple DES CBC encryption transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31314"></a><h4>Returns</h4>
+<p> pointer to Triple DES encryption transform.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMKWDES3GETKLASS"></a><h3>xmlSecOpenSSLTransformKWDes3GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformKWDes3GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The Triple DES key wrapper transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31327"></a><h4>Returns</h4>
+<p> Triple DES key wrapper transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATADSAGETKLASS"></a><h3>xmlSecOpenSSLKeyDataDsaGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecOpenSSLKeyDataDsaGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DSA key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN31340"></a><h4>Returns</h4>
+<p> pointer to DSA key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATADSAADOPTDSA"></a><h3>xmlSecOpenSSLKeyDataDsaAdoptDsa ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLKeyDataDsaAdoptDsa (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">DSA</span></font> *dsa</code>);</pre>
+<p>Sets the value of DSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN31357"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31359"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to DSA key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dsa</p></td>
+<td><p>the pointer to OpenSSL DSA key.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN31374"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATADSAGETDSA"></a><h3>xmlSecOpenSSLKeyDataDsaGetDsa ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">DSA</span></font> *
+xmlSecOpenSSLKeyDataDsaGetDsa (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the OpenSSL DSA key from DSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN31388"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31390"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to DSA key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN31399"></a><h4>Returns</h4>
+<p> pointer to OpenSSL DSA key or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATADSAADOPTEVP"></a><h3>xmlSecOpenSSLKeyDataDsaAdoptEvp ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLKeyDataDsaAdoptEvp (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">EVP_PKEY</span></font> *pKey</code>);</pre>
+<p>Sets the DSA key data value to OpenSSL EVP key.</p>
+<div class="REFSECT3">
+<a name="AEN31416"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31418"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to DSA key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pKey</p></td>
+<td><p>the pointer to OpenSSL EVP key.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN31433"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATADSAGETEVP"></a><h3>xmlSecOpenSSLKeyDataDsaGetEvp ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">EVP_PKEY</span></font> *
+xmlSecOpenSSLKeyDataDsaGetEvp (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the OpenSSL EVP key from DSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN31447"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31449"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to DSA key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN31458"></a><h4>Returns</h4>
+<p> pointer to OpenSSL EVP key or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMDSASHA1GETKLASS"></a><h3>xmlSecOpenSSLTransformDsaSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformDsaSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DSA-SHA1 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31471"></a><h4>Returns</h4>
+<p> DSA-SHA1 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMDSASHA256GETKLASS"></a><h3>xmlSecOpenSSLTransformDsaSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformDsaSha256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The DSA-SHA256 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31484"></a><h4>Returns</h4>
+<p> DSA-SHA256 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATAECDSAGETKLASS"></a><h3>xmlSecOpenSSLKeyDataEcdsaGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecOpenSSLKeyDataEcdsaGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The ECDSA key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN31497"></a><h4>Returns</h4>
+<p> pointer to ECDSA key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATAECDSAADOPTECDSA"></a><h3>xmlSecOpenSSLKeyDataEcdsaAdoptEcdsa ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLKeyDataEcdsaAdoptEcdsa (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">EC_KEY</span></font> *ecdsa</code>);</pre>
+<p>Sets the value of ECDSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN31514"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31516"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to ECDSA key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>ecdsa</p></td>
+<td><p>the pointer to OpenSSL ECDSA key.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN31531"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATAECDSAGETECDSA"></a><h3>xmlSecOpenSSLKeyDataEcdsaGetEcdsa ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">EC_KEY</span></font> *
+xmlSecOpenSSLKeyDataEcdsaGetEcdsa (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the OpenSSL ECDSA key from ECDSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN31545"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31547"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to ECDSA key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN31556"></a><h4>Returns</h4>
+<p> pointer to OpenSSL ECDSA key or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATAECDSAADOPTEVP"></a><h3>xmlSecOpenSSLKeyDataEcdsaAdoptEvp ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLKeyDataEcdsaAdoptEvp (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">EVP_PKEY</span></font> *pKey</code>);</pre>
+<p>Sets the ECDSA key data value to OpenSSL EVP key.</p>
+<div class="REFSECT3">
+<a name="AEN31573"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31575"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to ECDSA key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>pKey</p></td>
+<td><p>the pointer to OpenSSL EVP key.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN31590"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATAECDSAGETEVP"></a><h3>xmlSecOpenSSLKeyDataEcdsaGetEvp ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">EVP_PKEY</span></font> *
+xmlSecOpenSSLKeyDataEcdsaGetEvp (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the OpenSSL EVP key from ECDSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN31604"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31606"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to ECDSA key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN31615"></a><h4>Returns</h4>
+<p> pointer to OpenSSL EVP key or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMECDSASHA1GETKLASS"></a><h3>xmlSecOpenSSLTransformEcdsaSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformEcdsaSha1GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The ECDSA-SHA1 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31628"></a><h4>Returns</h4>
+<p> ECDSA-SHA1 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMECDSASHA224GETKLASS"></a><h3>xmlSecOpenSSLTransformEcdsaSha224GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformEcdsaSha224GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The ECDSA-SHA224 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31641"></a><h4>Returns</h4>
+<p> ECDSA-SHA224 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMECDSASHA256GETKLASS"></a><h3>xmlSecOpenSSLTransformEcdsaSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformEcdsaSha256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The ECDSA-SHA256 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31654"></a><h4>Returns</h4>
+<p> ECDSA-SHA256 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMECDSASHA384GETKLASS"></a><h3>xmlSecOpenSSLTransformEcdsaSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformEcdsaSha384GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The ECDSA-SHA384 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31667"></a><h4>Returns</h4>
+<p> ECDSA-SHA384 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMECDSASHA512GETKLASS"></a><h3>xmlSecOpenSSLTransformEcdsaSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformEcdsaSha512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The ECDSA-SHA512 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31680"></a><h4>Returns</h4>
+<p> ECDSA-SHA512 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATAGOST2001GETKLASS"></a><h3>xmlSecOpenSSLKeyDataGost2001GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecOpenSSLKeyDataGost2001GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The GOST2001 key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN31693"></a><h4>Returns</h4>
+<p> pointer to GOST2001 key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMGOST2001GOSTR3411-94GETKLASS"></a><h3>xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The GOST2001-GOSTR3411_94 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31706"></a><h4>Returns</h4>
+<p> GOST2001-GOSTR3411_94 signature transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMGOSTR3411-94GETKLASS"></a><h3>xmlSecOpenSSLTransformGostR3411_94GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformGostR3411_94GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>GOSTR3411_94 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31719"></a><h4>Returns</h4>
+<p> pointer to GOSTR3411_94 digest transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATAGOSTR3410-2012-256GETKLASS"></a><h3>xmlSecOpenSSLKeyDataGostR3410_2012_256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecOpenSSLKeyDataGostR3410_2012_256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The GOST R 34.10-2012 256 bit key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN31732"></a><h4>Returns</h4>
+<p> pointer to GOST R 34.10-2012 256 bit key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATAGOSTR3410-2012-512GETKLASS"></a><h3>xmlSecOpenSSLKeyDataGostR3410_2012_512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecOpenSSLKeyDataGostR3410_2012_512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The GOST R 34.10-2012 512 bit key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN31745"></a><h4>Returns</h4>
+<p> pointer to GOST R 34.10-2012 512 bit key data klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMGOSTR3410-2012GOSTR3411-2012-256GETKLASS"></a><h3>xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p></p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMGOSTR3410-2012GOSTR3411-2012-512GETKLASS"></a><h3>xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p></p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMGOSTR3411-2012-256GETKLASS"></a><h3>xmlSecOpenSSLTransformGostR3411_2012_256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformGostR3411_2012_256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>GOST R 34.11-2012 256 bit digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31778"></a><h4>Returns</h4>
+<p> pointer to GOST R 34.11-2012 256 bit digest transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLTRANSFORMGOSTR3411-2012-512GETKLASS"></a><h3>xmlSecOpenSSLTransformGostR3411_2012_512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformGostR3411_2012_512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>GOST R 34.11-2012 512 bit digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31791"></a><h4>Returns</h4>
+<p> pointer to GOST R 34.11-2012 512 bit digest transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLHMACGETMINOUTPUTLENGTH"></a><h3>xmlSecOpenSSLHmacGetMinOutputLength ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLHmacGetMinOutputLength (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Gets the value of min HMAC length.</p>
+<div class="REFSECT3">
+<a name="AEN31804"></a><h4>Returns</h4>
+<p> the min HMAC output length</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLHMACSETMINOUTPUTLENGTH"></a><h3>xmlSecOpenSSLHmacSetMinOutputLength ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecOpenSSLHmacSetMinOutputLength (<code class="PARAMETER"><font><span class="TYPE">int</span></font> min_length</code>);</pre>
+<p>Sets the min HMAC output length</p>
+<div class="REFSECT3">
+<a name="AEN31818"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31820"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>min_length</p></td>
+<td><p>the new min length</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAAESGETKLASS"></a><h3>xmlSecOpenSSLKeyDataAesGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecOpenSSLKeyDataAesGetKlass (void);</pre>
-<p>The AES key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22716"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES key data klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLKEYDATAHMACGETKLASS"></a><h3>xmlSecOpenSSLKeyDataHmacGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecOpenSSLKeyDataHmacGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN31839"></a><h4>Returns</h4>
+<p> HMAC key data klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAAESSET"></a><h3>xmlSecOpenSSLKeyDataAesSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLKeyDataAesSet (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
-<p>Sets the value of AES key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22733"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to AES key data.</p></td>
-</tr>
+<a name="XMLSECOPENSSLKEYDATAHMACSET"></a><h3>xmlSecOpenSSLKeyDataHmacSet ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLKeyDataHmacSet (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufSize</code>);</pre>
+<p>Sets the value of HMAC key data.</p>
+<div class="REFSECT3">
+<a name="AEN31859"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN31861"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22738"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to HMAC key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22743"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value size (in bytes).</p></td>
+<td><p>buf</p></td>
+<td><p>the pointer to key value.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22748"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>bufSize</p></td>
+<td><p>the key value size (in bytes).</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMAES128CBCID"></a><h3>xmlSecOpenSSLTransformAes128CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformAes128CbcId</pre>
-<p>The AES128 CBC cipher transform klass.</p>
+</tbody>
+</table>
<p></p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMAES128CBCGETKLASS"></a><h3>xmlSecOpenSSLTransformAes128CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformAes128CbcGetKlass
- (void);</pre>
-<p>AES 128 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22769"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 128 CBC encryption transform.</p></td>
-</tr></tbody></table>
+</div>
+<div class="REFSECT3">
+<a name="AEN31882"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMAES192CBCID"></a><h3>xmlSecOpenSSLTransformAes192CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformAes192CbcId</pre>
-<p>The AES192 CBC cipher transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMHMACMD5GETKLASS"></a><h3>xmlSecOpenSSLTransformHmacMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformHmacMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-MD5 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31895"></a><h4>Returns</h4>
+<p> the HMAC-MD5 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMAES192CBCGETKLASS"></a><h3>xmlSecOpenSSLTransformAes192CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformAes192CbcGetKlass
- (void);</pre>
-<p>AES 192 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22790"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 192 CBC encryption transform.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMHMACRIPEMD160GETKLASS"></a><h3>xmlSecOpenSSLTransformHmacRipemd160GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformHmacRipemd160GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-RIPEMD160 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31908"></a><h4>Returns</h4>
+<p> the HMAC-RIPEMD160 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMAES256CBCID"></a><h3>xmlSecOpenSSLTransformAes256CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformAes256CbcId</pre>
-<p>The AES256 CBC cipher transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMHMACSHA1GETKLASS"></a><h3>xmlSecOpenSSLTransformHmacSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformHmacSha1GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA1 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31921"></a><h4>Returns</h4>
+<p> the HMAC-SHA1 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMAES256CBCGETKLASS"></a><h3>xmlSecOpenSSLTransformAes256CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformAes256CbcGetKlass
- (void);</pre>
-<p>AES 256 CBC encryption transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22811"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to AES 256 CBC encryption transform.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMHMACSHA224GETKLASS"></a><h3>xmlSecOpenSSLTransformHmacSha224GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformHmacSha224GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA224 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31934"></a><h4>Returns</h4>
+<p> the HMAC-SHA224 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMKWAES128ID"></a><h3>xmlSecOpenSSLTransformKWAes128Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformKWAes128Id</pre>
-<p>The AES 128 key wrap transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMHMACSHA256GETKLASS"></a><h3>xmlSecOpenSSLTransformHmacSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformHmacSha256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA256 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31947"></a><h4>Returns</h4>
+<p> the HMAC-SHA256 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMKWAES128GETKLASS"></a><h3>xmlSecOpenSSLTransformKWAes128GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformKWAes128GetKlass
- (void);</pre>
-<p>The AES-128 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22832"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-128 kew wrapper transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMHMACSHA384GETKLASS"></a><h3>xmlSecOpenSSLTransformHmacSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformHmacSha384GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA384 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31960"></a><h4>Returns</h4>
+<p> the HMAC-SHA384 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMKWAES192ID"></a><h3>xmlSecOpenSSLTransformKWAes192Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformKWAes192Id</pre>
-<p>The AES 192 key wrap transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMHMACSHA512GETKLASS"></a><h3>xmlSecOpenSSLTransformHmacSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformHmacSha512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The HMAC-SHA512 transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31973"></a><h4>Returns</h4>
+<p> the HMAC-SHA512 transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMKWAES192GETKLASS"></a><h3>xmlSecOpenSSLTransformKWAes192GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformKWAes192GetKlass
- (void);</pre>
-<p>The AES-192 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22853"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-192 kew wrapper transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMMD5GETKLASS"></a><h3>xmlSecOpenSSLTransformMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>MD5 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31986"></a><h4>Returns</h4>
+<p> pointer to MD5 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMKWAES256ID"></a><h3>xmlSecOpenSSLTransformKWAes256Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformKWAes256Id</pre>
-<p>The AES 256 key wrap transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMRIPEMD160GETKLASS"></a><h3>xmlSecOpenSSLTransformRipemd160GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformRipemd160GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>RIPEMD-160 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN31999"></a><h4>Returns</h4>
+<p> pointer to RIPEMD-160 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMKWAES256GETKLASS"></a><h3>xmlSecOpenSSLTransformKWAes256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformKWAes256GetKlass
- (void);</pre>
-<p>The AES-256 kew wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22874"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> AES-256 kew wrapper transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLKEYDATARSAGETKLASS"></a><h3>xmlSecOpenSSLKeyDataRsaGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecOpenSSLKeyDataRsaGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The OpenSSL RSA key data klass.</p>
+<div class="REFSECT3">
+<a name="AEN32012"></a><h4>Returns</h4>
+<p> pointer to OpenSSL RSA key data klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATADESID"></a><h3>xmlSecOpenSSLKeyDataDesId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataDesId</pre>
-<p>The DES key klass.</p>
+<a name="XMLSECOPENSSLKEYDATARSAADOPTRSA"></a><h3>xmlSecOpenSSLKeyDataRsaAdoptRsa ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLKeyDataRsaAdoptRsa (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">RSA</span></font> *rsa</code>);</pre>
+<p>Sets the value of RSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN32029"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN32031"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to RSA key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>rsa</p></td>
+<td><p>the pointer to OpenSSL RSA key.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN32046"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATADESGETKLASS"></a><h3>xmlSecOpenSSLKeyDataDesGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecOpenSSLKeyDataDesGetKlass (void);</pre>
-<p>The DES key data klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLKEYDATARSAGETRSA"></a><h3>xmlSecOpenSSLKeyDataRsaGetRsa ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">RSA</span></font> *
+xmlSecOpenSSLKeyDataRsaGetRsa (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the OpenSSL RSA key from RSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN32060"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN32062"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to RSA key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22895"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DES key data klass.</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN32071"></a><h4>Returns</h4>
+<p> pointer to OpenSSL RSA key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATADESSET"></a><h3>xmlSecOpenSSLKeyDataDesSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLKeyDataDesSet (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
-<p>Sets the value of DES key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22912"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to DES key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22917"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
-</tr>
+<a name="XMLSECOPENSSLKEYDATARSAADOPTEVP"></a><h3>xmlSecOpenSSLKeyDataRsaAdoptEvp ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLKeyDataRsaAdoptEvp (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">EVP_PKEY</span></font> *pKey</code>);</pre>
+<p>Sets the RSA key data value to OpenSSL EVP key.</p>
+<div class="REFSECT3">
+<a name="AEN32088"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN32090"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22922"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value size (in bytes).</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to RSA key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN22927"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>pKey</p></td>
+<td><p>the pointer to OpenSSL EVP key.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMDES3CBCID"></a><h3>xmlSecOpenSSLTransformDes3CbcId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformDes3CbcId</pre>
-<p>The DES3 CBC cipher transform klass.</p>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN32105"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMDES3CBCGETKLASS"></a><h3>xmlSecOpenSSLTransformDes3CbcGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformDes3CbcGetKlass
- (void);</pre>
-<p>Triple DES CBC encryption transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLKEYDATARSAGETEVP"></a><h3>xmlSecOpenSSLKeyDataRsaGetEvp ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">EVP_PKEY</span></font> *
+xmlSecOpenSSLKeyDataRsaGetEvp (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the OpenSSL EVP key from RSA key data.</p>
+<div class="REFSECT3">
+<a name="AEN32119"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN32121"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to RSA key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22948"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to Triple DES encryption transform.</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN32130"></a><h4>Returns</h4>
+<p> pointer to OpenSSL EVP key or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMKWDES3ID"></a><h3>xmlSecOpenSSLTransformKWDes3Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformKWDes3Id</pre>
-<p>The DES3 KW transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMRSAMD5GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaMd5GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformRsaMd5GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-MD5 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN32143"></a><h4>Returns</h4>
+<p> RSA-MD5 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMKWDES3GETKLASS"></a><h3>xmlSecOpenSSLTransformKWDes3GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformKWDes3GetKlass
- (void);</pre>
-<p>The Triple DES key wrapper transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22969"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> Triple DES key wrapper transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMRSARIPEMD160GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaRipemd160GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformRsaRipemd160GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-RIPEMD160 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN32156"></a><h4>Returns</h4>
+<p> RSA-RIPEMD160 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATADSAID"></a><h3>xmlSecOpenSSLKeyDataDsaId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataDsaId</pre>
-<p>The DSA key klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMRSASHA1GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformRsaSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA1 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN32169"></a><h4>Returns</h4>
+<p> RSA-SHA1 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATADSAGETKLASS"></a><h3>xmlSecOpenSSLKeyDataDsaGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecOpenSSLKeyDataDsaGetKlass (void);</pre>
-<p>The DSA key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN22990"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to DSA key data klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMRSASHA224GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaSha224GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformRsaSha224GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA224 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN32182"></a><h4>Returns</h4>
+<p> RSA-SHA224 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATADSAADOPTDSA"></a><h3>xmlSecOpenSSLKeyDataDsaAdoptDsa ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLKeyDataDsaAdoptDsa (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>DSA</font> *dsa);</pre>
-<p>Sets the value of DSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23006"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to DSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23011"><span style="white-space: nowrap"><code class="PARAMETER">dsa</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL DSA key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23016"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMRSASHA256GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformRsaSha256GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA256 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN32195"></a><h4>Returns</h4>
+<p> RSA-SHA256 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATADSAGETDSA"></a><h3>xmlSecOpenSSLKeyDataDsaGetDsa ()</h3>
-<pre class="PROGRAMLISTING"><font>DSA</font>* xmlSecOpenSSLKeyDataDsaGetDsa (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the OpenSSL DSA key from DSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23031"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to DSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23036"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to OpenSSL DSA key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMRSASHA384GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformRsaSha384GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA384 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN32208"></a><h4>Returns</h4>
+<p> RSA-SHA384 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATADSAADOPTEVP"></a><h3>xmlSecOpenSSLKeyDataDsaAdoptEvp ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLKeyDataDsaAdoptEvp (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>EVP_PKEY</font> *pKey);</pre>
-<p>Sets the DSA key data value to OpenSSL EVP key.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23052"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to DSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23057"><span style="white-space: nowrap"><code class="PARAMETER">pKey</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL EVP key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23062"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMRSASHA512GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformRsaSha512GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-SHA512 signature transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN32221"></a><h4>Returns</h4>
+<p> RSA-SHA512 signature transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATADSAGETEVP"></a><h3>xmlSecOpenSSLKeyDataDsaGetEvp ()</h3>
-<pre class="PROGRAMLISTING"><font>EVP_PKEY</font>* xmlSecOpenSSLKeyDataDsaGetEvp (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the OpenSSL EVP key from DSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23077"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to DSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23082"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to OpenSSL EVP key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMRSAPKCS1GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaPkcs1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformRsaPkcs1GetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-PKCS1 key transport transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN32234"></a><h4>Returns</h4>
+<p> RSA-PKCS1 key transport transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMDSASHA1ID"></a><h3>xmlSecOpenSSLTransformDsaSha1Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformDsaSha1Id</pre>
-<p>The DSA SHA1 signature transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMRSAOAEPGETKLASS"></a><h3>xmlSecOpenSSLTransformRsaOaepGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformRsaOaepGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The RSA-OAEP key transport transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN32247"></a><h4>Returns</h4>
+<p> RSA-OAEP key transport transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMDSASHA1GETKLASS"></a><h3>xmlSecOpenSSLTransformDsaSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformDsaSha1GetKlass
- (void);</pre>
-<p>The DSA-SHA1 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23103"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DSA-SHA1 signature transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMSHA1GETKLASS"></a><h3>xmlSecOpenSSLTransformSha1GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformSha1GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA-1 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN32260"></a><h4>Returns</h4>
+<p> pointer to SHA-1 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMDSASHA256ID"></a><h3>xmlSecOpenSSLTransformDsaSha256Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformDsaSha256Id</pre>
-<p>The DSA SHA256 signature transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMSHA224GETKLASS"></a><h3>xmlSecOpenSSLTransformSha224GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformSha224GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA-224 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN32273"></a><h4>Returns</h4>
+<p> pointer to SHA-224 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMDSASHA256GETKLASS"></a><h3>xmlSecOpenSSLTransformDsaSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformDsaSha256GetKlass
- (void);</pre>
-<p>The DSA-SHA256 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23124"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> DSA-SHA256 signature transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMSHA256GETKLASS"></a><h3>xmlSecOpenSSLTransformSha256GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformSha256GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA-256 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN32286"></a><h4>Returns</h4>
+<p> pointer to SHA-256 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAECDSAID"></a><h3>xmlSecOpenSSLKeyDataEcdsaId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataEcdsaId</pre>
-<p>The ECDSA key klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMSHA384GETKLASS"></a><h3>xmlSecOpenSSLTransformSha384GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformSha384GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA-384 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN32299"></a><h4>Returns</h4>
+<p> pointer to SHA-384 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAECDSAGETKLASS"></a><h3>xmlSecOpenSSLKeyDataEcdsaGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecOpenSSLKeyDataEcdsaGetKlass (void);</pre>
-<p>The ECDSA key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23145"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to ECDSA key data klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMSHA512GETKLASS"></a><h3>xmlSecOpenSSLTransformSha512GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecOpenSSLTransformSha512GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>SHA-512 digest transform klass.</p>
+<div class="REFSECT3">
+<a name="AEN32312"></a><h4>Returns</h4>
+<p> pointer to SHA-512 digest transform klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAECDSAADOPTECDSA"></a><h3>xmlSecOpenSSLKeyDataEcdsaAdoptEcdsa ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLKeyDataEcdsaAdoptEcdsa (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>EC_KEY</font> *ecdsa);</pre>
-<p>Sets the value of ECDSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23161"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to ECDSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23166"><span style="white-space: nowrap"><code class="PARAMETER">ecdsa</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL ECDSA key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23171"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSEC-OPENSSL-ERRORS-LIB:CAPS"></a><h3>XMLSEC_OPENSSL_ERRORS_LIB</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_OPENSSL_ERRORS_LIB (ERR_LIB_USER + 57)</pre>
+<p>Macro. The XMLSec library klass for OpenSSL errors reporting functions.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAECDSAGETECDSA"></a><h3>xmlSecOpenSSLKeyDataEcdsaGetEcdsa ()</h3>
-<pre class="PROGRAMLISTING"><font>EC_KEY</font>* xmlSecOpenSSLKeyDataEcdsaGetEcdsa (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the OpenSSL ECDSA key from ECDSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="XMLSECOPENSSLERRORSDEFAULTCALLBACK"></a><h3>xmlSecOpenSSLErrorsDefaultCallback ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecOpenSSLErrorsDefaultCallback (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *file</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> line</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *func</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *errorObject</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *errorSubject</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> reason</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *msg</code>);</pre>
+<p>The default OpenSSL errors reporting callback function.</p>
+<div class="REFSECT3">
+<a name="AEN32350"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN32352"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23186"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to ECDSA key data.</p></td>
+<td><p>file</p></td>
+<td><p>the error location file name (__FILE__ macro).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23191"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to OpenSSL ECDSA key or NULL if an error occurs.</p></td>
+<td><p>line</p></td>
+<td><p>the error location line number (__LINE__ macro).</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAECDSAADOPTEVP"></a><h3>xmlSecOpenSSLKeyDataEcdsaAdoptEvp ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLKeyDataEcdsaAdoptEvp (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>EVP_PKEY</font> *pKey);</pre>
-<p>Sets the ECDSA key data value to OpenSSL EVP key.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23207"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to ECDSA key data.</p></td>
+<td><p>func</p></td>
+<td><p>the error location function name (__FUNCTION__ macro).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23212"><span style="white-space: nowrap"><code class="PARAMETER">pKey</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL EVP key.</p></td>
+<td><p>errorObject</p></td>
+<td><p>the error specific error object</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23217"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>errorSubject</p></td>
+<td><p>the error specific error subject.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAECDSAGETEVP"></a><h3>xmlSecOpenSSLKeyDataEcdsaGetEvp ()</h3>
-<pre class="PROGRAMLISTING"><font>EVP_PKEY</font>* xmlSecOpenSSLKeyDataEcdsaGetEvp (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the OpenSSL EVP key from ECDSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23232"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to ECDSA key data.</p></td>
+<td><p>reason</p></td>
+<td><p>the error code.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23237"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to OpenSSL EVP key or NULL if an error occurs.</p></td>
+<td><p>msg</p></td>
+<td><p>the additional error message.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMECDSASHA1ID"></a><h3>xmlSecOpenSSLTransformEcdsaSha1Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformEcdsaSha1Id</pre>
-<p>The ECDSA-SHA1 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMECDSASHA1GETKLASS"></a><h3>xmlSecOpenSSLTransformEcdsaSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformEcdsaSha1GetKlass
- (void);</pre>
-<p>The ECDSA-SHA1 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23258"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> ECDSA-SHA1 signature transform klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMECDSASHA224ID"></a><h3>xmlSecOpenSSLTransformEcdsaSha224Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformEcdsaSha224Id</pre>
-<p>The ECDSA-SHA224 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMECDSASHA224GETKLASS"></a><h3>xmlSecOpenSSLTransformEcdsaSha224GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformEcdsaSha224GetKlass
- (void);</pre>
-<p>The ECDSA-SHA224 signature transform klass.</p>
-<p></p>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23279"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> ECDSA-SHA224 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMECDSASHA256ID"></a><h3>xmlSecOpenSSLTransformEcdsaSha256Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformEcdsaSha256Id</pre>
-<p>The ECDSA-SHA256 signature transform klass.</p>
-<p></p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMECDSASHA256GETKLASS"></a><h3>xmlSecOpenSSLTransformEcdsaSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformEcdsaSha256GetKlass
- (void);</pre>
-<p>The ECDSA-SHA256 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23300"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> ECDSA-SHA256 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMECDSASHA384ID"></a><h3>xmlSecOpenSSLTransformEcdsaSha384Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformEcdsaSha384Id</pre>
-<p>The ECDSA-SHA384 signature transform klass.</p>
-<p></p>
</div>
-<hr>
+<div class="REFSECT1">
+<a name="XMLSEC-OPENSSL-CRYPTO.OTHER_DETAILS"></a><h2>Types and Values</h2>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMECDSASHA384GETKLASS"></a><h3>xmlSecOpenSSLTransformEcdsaSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformEcdsaSha384GetKlass
- (void);</pre>
-<p>The ECDSA-SHA384 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23321"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> ECDSA-SHA384 signature transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLKEYDATAAESID"></a><h3>xmlSecOpenSSLKeyDataAesId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataAesId</pre>
+<p>The AES key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMECDSASHA512ID"></a><h3>xmlSecOpenSSLTransformEcdsaSha512Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformEcdsaSha512Id</pre>
-<p>The ECDSA-SHA512 signature transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMAES128CBCID"></a><h3>xmlSecOpenSSLTransformAes128CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformAes128CbcId</pre>
+<p>The AES128 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMECDSASHA512GETKLASS"></a><h3>xmlSecOpenSSLTransformEcdsaSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformEcdsaSha512GetKlass
- (void);</pre>
-<p>The ECDSA-SHA512 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23342"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> ECDSA-SHA512 signature transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMAES192CBCID"></a><h3>xmlSecOpenSSLTransformAes192CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformAes192CbcId</pre>
+<p>The AES192 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAGOST2001ID"></a><h3>xmlSecOpenSSLKeyDataGost2001Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataGost2001Id</pre>
-<p>The GOST2001 key klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMAES256CBCID"></a><h3>xmlSecOpenSSLTransformAes256CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformAes256CbcId</pre>
+<p>The AES256 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAGOST2001GETKLASS"></a><h3>xmlSecOpenSSLKeyDataGost2001GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecOpenSSLKeyDataGost2001GetKlass
- (void);</pre>
-<p>The GOST2001 key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23363"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to GOST2001 key data klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMKWAES128ID"></a><h3>xmlSecOpenSSLTransformKWAes128Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformKWAes128Id</pre>
+<p>The AES 128 key wrap transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMGOST2001GOSTR3411-94ID"></a><h3>xmlSecOpenSSLTransformGost2001GostR3411_94Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformGost2001GostR3411_94Id</pre>
-<p>The GOST2001 GOSTR3411_94 signature transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMKWAES192ID"></a><h3>xmlSecOpenSSLTransformKWAes192Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformKWAes192Id</pre>
+<p>The AES 192 key wrap transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMGOST2001GOSTR3411-94GETKLASS"></a><h3>xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass
- (void);</pre>
-<p>The GOST2001-GOSTR3411_94 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23384"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> GOST2001-GOSTR3411_94 signature transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMKWAES256ID"></a><h3>xmlSecOpenSSLTransformKWAes256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformKWAes256Id</pre>
+<p>The AES 256 key wrap transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMGOSTR3411-94ID"></a><h3>xmlSecOpenSSLTransformGostR3411_94Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformGostR3411_94Id</pre>
-<p>The GOSTR3411_94 signature transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLKEYDATADESID"></a><h3>xmlSecOpenSSLKeyDataDesId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataDesId</pre>
+<p>The DES key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMGOSTR3411-94GETKLASS"></a><h3>xmlSecOpenSSLTransformGostR3411_94GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformGostR3411_94GetKlass
- (void);</pre>
-<p>GOSTR3411_94 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23405"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to GOSTR3411_94 digest transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMDES3CBCID"></a><h3>xmlSecOpenSSLTransformDes3CbcId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformDes3CbcId</pre>
+<p>The DES3 CBC cipher transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLHMACGETMINOUTPUTLENGTH"></a><h3>xmlSecOpenSSLHmacGetMinOutputLength ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLHmacGetMinOutputLength (void);</pre>
-<p>Gets the value of min HMAC length.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23419"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the min HMAC output length</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMKWDES3ID"></a><h3>xmlSecOpenSSLTransformKWDes3Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformKWDes3Id</pre>
+<p>The DES3 KW transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLHMACSETMINOUTPUTLENGTH"></a><h3>xmlSecOpenSSLHmacSetMinOutputLength ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecOpenSSLHmacSetMinOutputLength (<font>int</font> min_length);</pre>
-<p>Sets the min HMAC output length</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23434"><span style="white-space: nowrap"><code class="PARAMETER">min_length</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new min length</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLKEYDATADSAID"></a><h3>xmlSecOpenSSLKeyDataDsaId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataDsaId</pre>
+<p>The DSA key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAHMACID"></a><h3>xmlSecOpenSSLKeyDataHmacId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataHmacId</pre>
-<p>The DHMAC key klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMDSASHA1ID"></a><h3>xmlSecOpenSSLTransformDsaSha1Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformDsaSha1Id</pre>
+<p>The DSA SHA1 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAHMACGETKLASS"></a><h3>xmlSecOpenSSLKeyDataHmacGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecOpenSSLKeyDataHmacGetKlass (void);</pre>
-<p>The HMAC key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23455"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> HMAC key data klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMDSASHA256ID"></a><h3>xmlSecOpenSSLTransformDsaSha256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformDsaSha256Id</pre>
+<p>The DSA SHA256 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAHMACSET"></a><h3>xmlSecOpenSSLKeyDataHmacSet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLKeyDataHmacSet (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufSize);</pre>
-<p>Sets the value of HMAC key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23472"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to HMAC key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23477"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23482"><span style="white-space: nowrap"><code class="PARAMETER">bufSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key value size (in bytes).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23487"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECOPENSSLKEYDATAECDSAID"></a><h3>xmlSecOpenSSLKeyDataEcdsaId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataEcdsaId</pre>
+<p>The ECDSA key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMHMACMD5ID"></a><h3>xmlSecOpenSSLTransformHmacMd5Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformHmacMd5Id</pre>
-<p>The HMAC with MD5 signature transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMECDSASHA1ID"></a><h3>xmlSecOpenSSLTransformEcdsaSha1Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformEcdsaSha1Id</pre>
+<p>The ECDSA-SHA1 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMHMACMD5GETKLASS"></a><h3>xmlSecOpenSSLTransformHmacMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformHmacMd5GetKlass
- (void);</pre>
-<p>The HMAC-MD5 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23508"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-MD5 transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMECDSASHA224ID"></a><h3>xmlSecOpenSSLTransformEcdsaSha224Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformEcdsaSha224Id</pre>
+<p>The ECDSA-SHA224 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMHMACRIPEMD160ID"></a><h3>xmlSecOpenSSLTransformHmacRipemd160Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformHmacRipemd160Id</pre>
-<p>The HMAC with RipeMD160 signature transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMECDSASHA256ID"></a><h3>xmlSecOpenSSLTransformEcdsaSha256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformEcdsaSha256Id</pre>
+<p>The ECDSA-SHA256 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMHMACRIPEMD160GETKLASS"></a><h3>xmlSecOpenSSLTransformHmacRipemd160GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformHmacRipemd160GetKlass
- (void);</pre>
-<p>The HMAC-RIPEMD160 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23529"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-RIPEMD160 transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMECDSASHA384ID"></a><h3>xmlSecOpenSSLTransformEcdsaSha384Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformEcdsaSha384Id</pre>
+<p>The ECDSA-SHA384 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMHMACSHA1ID"></a><h3>xmlSecOpenSSLTransformHmacSha1Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformHmacSha1Id</pre>
-<p>The HMAC with SHA1 signature transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMECDSASHA512ID"></a><h3>xmlSecOpenSSLTransformEcdsaSha512Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformEcdsaSha512Id</pre>
+<p>The ECDSA-SHA512 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMHMACSHA1GETKLASS"></a><h3>xmlSecOpenSSLTransformHmacSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformHmacSha1GetKlass
- (void);</pre>
-<p>The HMAC-SHA1 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23550"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA1 transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLKEYDATAGOST2001ID"></a><h3>xmlSecOpenSSLKeyDataGost2001Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataGost2001Id</pre>
+<p>The GOST2001 key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMHMACSHA224ID"></a><h3>xmlSecOpenSSLTransformHmacSha224Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformHmacSha224Id</pre>
-<p>The HMAC with SHA224 signature transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMGOST2001GOSTR3411-94ID"></a><h3>xmlSecOpenSSLTransformGost2001GostR3411_94Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformGost2001GostR3411_94Id</pre>
+<p>The GOST2001 GOSTR3411_94 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMHMACSHA224GETKLASS"></a><h3>xmlSecOpenSSLTransformHmacSha224GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformHmacSha224GetKlass
- (void);</pre>
-<p>The HMAC-SHA224 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23571"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA224 transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMGOSTR3411-94ID"></a><h3>xmlSecOpenSSLTransformGostR3411_94Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformGostR3411_94Id</pre>
+<p>The GOSTR3411_94 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMHMACSHA256ID"></a><h3>xmlSecOpenSSLTransformHmacSha256Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformHmacSha256Id</pre>
-<p>The HMAC with SHA256 signature transform klass.</p>
+<a name="XMLSECOPENSSLKEYDATAGOSTR3410-2012-256ID"></a><h3>xmlSecOpenSSLKeyDataGostR3410_2012_256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataGostR3410_2012_256Id</pre>
<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMHMACSHA256GETKLASS"></a><h3>xmlSecOpenSSLTransformHmacSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformHmacSha256GetKlass
- (void);</pre>
-<p>The HMAC-SHA256 transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLKEYDATAGOSTR3410-2012-512ID"></a><h3>xmlSecOpenSSLKeyDataGostR3410_2012_512Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataGostR3410_2012_512Id</pre>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23592"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA256 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMHMACSHA384ID"></a><h3>xmlSecOpenSSLTransformHmacSha384Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformHmacSha384Id</pre>
-<p>The HMAC with SHA384 signature transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMGOSTR3410-2012GOSTR3411-2012-256ID"></a><h3>xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256Id</pre>
+<p>The GOST R 34.10-2012 - GOST R 3411-2012 256 bit signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMHMACSHA384GETKLASS"></a><h3>xmlSecOpenSSLTransformHmacSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformHmacSha384GetKlass
- (void);</pre>
-<p>The HMAC-SHA384 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23613"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA384 transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMGOSTR3410-2012GOSTR3411-2012-512ID"></a><h3>xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512Id</pre>
+<p>The GOST R 34.10-2012 - GOST R 3411-2012 512 bit signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMHMACSHA512ID"></a><h3>xmlSecOpenSSLTransformHmacSha512Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformHmacSha512Id</pre>
-<p>The HMAC with SHA512 signature transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMGOSTR3411-2012-256ID"></a><h3>xmlSecOpenSSLTransformGostR3411_2012_256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformGostR3411_2012_256Id</pre>
+<p>The GOST R 34.11-2012 256 bit hash transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMHMACSHA512GETKLASS"></a><h3>xmlSecOpenSSLTransformHmacSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformHmacSha512GetKlass
- (void);</pre>
-<p>The HMAC-SHA512 transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23634"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the HMAC-SHA512 transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMGOSTR3411-2012-512ID"></a><h3>xmlSecOpenSSLTransformGostR3411_2012_512Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformGostR3411_2012_512Id</pre>
+<p>The GOST R 34.11-2012 512 bit hash transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMMD5ID"></a><h3>xmlSecOpenSSLTransformMd5Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformMd5Id</pre>
-<p>The MD5 digest transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLKEYDATAHMACID"></a><h3>xmlSecOpenSSLKeyDataHmacId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataHmacId</pre>
+<p>The DHMAC key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMMD5GETKLASS"></a><h3>xmlSecOpenSSLTransformMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformMd5GetKlass (void);</pre>
-<p>MD5 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23655"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to MD5 digest transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMHMACMD5ID"></a><h3>xmlSecOpenSSLTransformHmacMd5Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformHmacMd5Id</pre>
+<p>The HMAC with MD5 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMRIPEMD160ID"></a><h3>xmlSecOpenSSLTransformRipemd160Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformRipemd160Id</pre>
-<p>The RIPEMD160 digest transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMHMACRIPEMD160ID"></a><h3>xmlSecOpenSSLTransformHmacRipemd160Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformHmacRipemd160Id</pre>
+<p>The HMAC with RipeMD160 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMRIPEMD160GETKLASS"></a><h3>xmlSecOpenSSLTransformRipemd160GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformRipemd160GetKlass
- (void);</pre>
-<p>RIPEMD-160 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23676"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to RIPEMD-160 digest transform klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMHMACSHA1ID"></a><h3>xmlSecOpenSSLTransformHmacSha1Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformHmacSha1Id</pre>
+<p>The HMAC with SHA1 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATARSAID"></a><h3>xmlSecOpenSSLKeyDataRsaId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataRsaId</pre>
-<p>The RSA key klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLTRANSFORMHMACSHA224ID"></a><h3>xmlSecOpenSSLTransformHmacSha224Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformHmacSha224Id</pre>
+<p>The HMAC with SHA224 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATARSAGETKLASS"></a><h3>xmlSecOpenSSLKeyDataRsaGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecOpenSSLKeyDataRsaGetKlass (void);</pre>
-<p>The OpenSSL RSA key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23697"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to OpenSSL RSA key data klass.</p></td>
-</tr></tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMHMACSHA256ID"></a><h3>xmlSecOpenSSLTransformHmacSha256Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformHmacSha256Id</pre>
+<p>The HMAC with SHA256 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATARSAADOPTRSA"></a><h3>xmlSecOpenSSLKeyDataRsaAdoptRsa ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLKeyDataRsaAdoptRsa (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>RSA</font> *rsa);</pre>
-<p>Sets the value of RSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23713"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to RSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23718"><span style="white-space: nowrap"><code class="PARAMETER">rsa</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL RSA key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23723"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMHMACSHA384ID"></a><h3>xmlSecOpenSSLTransformHmacSha384Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformHmacSha384Id</pre>
+<p>The HMAC with SHA384 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATARSAGETRSA"></a><h3>xmlSecOpenSSLKeyDataRsaGetRsa ()</h3>
-<pre class="PROGRAMLISTING"><font>RSA</font>* xmlSecOpenSSLKeyDataRsaGetRsa (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the OpenSSL RSA key from RSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23738"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to RSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23743"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to OpenSSL RSA key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMHMACSHA512ID"></a><h3>xmlSecOpenSSLTransformHmacSha512Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformHmacSha512Id</pre>
+<p>The HMAC with SHA512 signature transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATARSAADOPTEVP"></a><h3>xmlSecOpenSSLKeyDataRsaAdoptEvp ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLKeyDataRsaAdoptEvp (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>EVP_PKEY</font> *pKey);</pre>
-<p>Sets the RSA key data value to OpenSSL EVP key.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23759"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to RSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23764"><span style="white-space: nowrap"><code class="PARAMETER">pKey</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL EVP key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23769"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMMD5ID"></a><h3>xmlSecOpenSSLTransformMd5Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformMd5Id</pre>
+<p>The MD5 digest transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATARSAGETEVP"></a><h3>xmlSecOpenSSLKeyDataRsaGetEvp ()</h3>
-<pre class="PROGRAMLISTING"><font>EVP_PKEY</font>* xmlSecOpenSSLKeyDataRsaGetEvp (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the OpenSSL EVP key from RSA key data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23784"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to RSA key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN23789"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to OpenSSL EVP key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECOPENSSLTRANSFORMRIPEMD160ID"></a><h3>xmlSecOpenSSLTransformRipemd160Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformRipemd160Id</pre>
+<p>The RIPEMD160 digest transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMRSAMD5ID"></a><h3>xmlSecOpenSSLTransformRsaMd5Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformRsaMd5Id</pre>
-<p>The RSA-MD5 signature transform klass.</p>
-<p></p>
+<a name="XMLSECOPENSSLKEYDATARSAID"></a><h3>xmlSecOpenSSLKeyDataRsaId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataRsaId</pre>
+<p>The RSA key klass.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMRSAMD5GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaMd5GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformRsaMd5GetKlass
- (void);</pre>
+<a name="XMLSECOPENSSLTRANSFORMRSAMD5ID"></a><h3>xmlSecOpenSSLTransformRsaMd5Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformRsaMd5Id</pre>
<p>The RSA-MD5 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23810"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-MD5 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLTRANSFORMRSARIPEMD160ID"></a><h3>xmlSecOpenSSLTransformRsaRipemd160Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformRsaRipemd160Id</pre>
<p>The RSA-RIPEMD160 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMRSARIPEMD160GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaRipemd160GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformRsaRipemd160GetKlass
- (void);</pre>
-<p>The RSA-RIPEMD160 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23831"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-RIPEMD160 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLTRANSFORMRSASHA1ID"></a><h3>xmlSecOpenSSLTransformRsaSha1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformRsaSha1Id</pre>
<p>The RSA-SHA1 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMRSASHA1GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformRsaSha1GetKlass
- (void);</pre>
-<p>The RSA-SHA1 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23852"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA1 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLTRANSFORMRSASHA224ID"></a><h3>xmlSecOpenSSLTransformRsaSha224Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformRsaSha224Id</pre>
<p>The RSA-SHA224 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMRSASHA224GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaSha224GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformRsaSha224GetKlass
- (void);</pre>
-<p>The RSA-SHA224 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23873"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA224 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLTRANSFORMRSASHA256ID"></a><h3>xmlSecOpenSSLTransformRsaSha256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformRsaSha256Id</pre>
<p>The RSA-SHA256 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMRSASHA256GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformRsaSha256GetKlass
- (void);</pre>
-<p>The RSA-SHA256 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23894"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA256 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLTRANSFORMRSASHA384ID"></a><h3>xmlSecOpenSSLTransformRsaSha384Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformRsaSha384Id</pre>
<p>The RSA-SHA384 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMRSASHA384GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformRsaSha384GetKlass
- (void);</pre>
-<p>The RSA-SHA384 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23915"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA384 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLTRANSFORMRSASHA512ID"></a><h3>xmlSecOpenSSLTransformRsaSha512Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformRsaSha512Id</pre>
<p>The RSA-SHA512 signature transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMRSASHA512GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformRsaSha512GetKlass
- (void);</pre>
-<p>The RSA-SHA512 signature transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23936"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-SHA512 signature transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLTRANSFORMRSAPKCS1ID"></a><h3>xmlSecOpenSSLTransformRsaPkcs1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformRsaPkcs1Id</pre>
<p>The RSA PKCS1 key transport transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMRSAPKCS1GETKLASS"></a><h3>xmlSecOpenSSLTransformRsaPkcs1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformRsaPkcs1GetKlass
- (void);</pre>
-<p>The RSA-PKCS1 key transport transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23957"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-PKCS1 key transport transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLTRANSFORMRSAOAEPID"></a><h3>xmlSecOpenSSLTransformRsaOaepId</h3>
<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformRsaOaepId</pre>
<p>The RSA PKCS1 key transport transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMRSAOAEPGETKLASS"></a><h3>xmlSecOpenSSLTransformRsaOaepGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformRsaOaepGetKlass
- (void);</pre>
-<p>The RSA-OAEP key transport transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23978"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> RSA-OAEP key transport transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLTRANSFORMSHA1ID"></a><h3>xmlSecOpenSSLTransformSha1Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformSha1Id</pre>
<p>The SHA1 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMSHA1GETKLASS"></a><h3>xmlSecOpenSSLTransformSha1GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformSha1GetKlass (void);</pre>
-<p>SHA-1 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN23999"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA-1 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLTRANSFORMSHA224ID"></a><h3>xmlSecOpenSSLTransformSha224Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformSha224Id</pre>
<p>The SHA224 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMSHA224GETKLASS"></a><h3>xmlSecOpenSSLTransformSha224GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformSha224GetKlass
- (void);</pre>
-<p>SHA-224 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN24020"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA-224 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLTRANSFORMSHA256ID"></a><h3>xmlSecOpenSSLTransformSha256Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformSha256Id</pre>
<p>The SHA256 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMSHA256GETKLASS"></a><h3>xmlSecOpenSSLTransformSha256GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformSha256GetKlass
- (void);</pre>
-<p>SHA-256 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN24041"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA-256 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLTRANSFORMSHA384ID"></a><h3>xmlSecOpenSSLTransformSha384Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformSha384Id</pre>
<p>The SHA384 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMSHA384GETKLASS"></a><h3>xmlSecOpenSSLTransformSha384GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformSha384GetKlass
- (void);</pre>
-<p>SHA-384 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN24062"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA-384 digest transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLTRANSFORMSHA512ID"></a><h3>xmlSecOpenSSLTransformSha512Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecOpenSSLTransformSha512Id</pre>
<p>The SHA512 digest transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLTRANSFORMSHA512GETKLASS"></a><h3>xmlSecOpenSSLTransformSha512GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecOpenSSLTransformSha512GetKlass
- (void);</pre>
-<p>SHA-512 digest transform klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN24083"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to SHA-512 digest transform klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSEC-OPENSSL-ERRORS-LIB--CAPS"></a><h3>XMLSEC_OPENSSL_ERRORS_LIB</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_OPENSSL_ERRORS_LIB (ERR_LIB_USER + 57)</pre>
-<p>Macro. The XMLSec library klass for OpenSSL errors reporting functions.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-OPENSSL-ERRORS-FUNCTION--CAPS"></a><h3>XMLSEC_OPENSSL_ERRORS_FUNCTION</h3>
+<a name="XMLSEC-OPENSSL-ERRORS-FUNCTION:CAPS"></a><h3>XMLSEC_OPENSSL_ERRORS_FUNCTION</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_OPENSSL_ERRORS_FUNCTION 0</pre>
<p>Macro. The XMLSec library functions OpenSSL errors reporting functions.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLERRORSDEFAULTCALLBACK"></a><h3>xmlSecOpenSSLErrorsDefaultCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecOpenSSLErrorsDefaultCallback (const <font>char</font> *file,
- <font>int</font> line,
- const <font>char</font> *func,
- const <font>char</font> *errorObject,
- const <font>char</font> *errorSubject,
- <font>int</font> reason,
- const <font>char</font> *msg);</pre>
-<p>The default OpenSSL errors reporting callback function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24118"><span style="white-space: nowrap"><code class="PARAMETER">file</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location file name (__FILE__ macro).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24123"><span style="white-space: nowrap"><code class="PARAMETER">line</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location line number (__LINE__ macro).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24128"><span style="white-space: nowrap"><code class="PARAMETER">func</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error location function name (__FUNCTION__ macro).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24133"><span style="white-space: nowrap"><code class="PARAMETER">errorObject</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error specific error object</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24138"><span style="white-space: nowrap"><code class="PARAMETER">errorSubject</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error specific error subject.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24143"><span style="white-space: nowrap"><code class="PARAMETER">reason</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the error code.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24148"><span style="white-space: nowrap"><code class="PARAMETER">msg</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the additional error message.</p></td>
-</tr>
-</tbody></table>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-openssl-evp.html b/docs/api/xmlsec-openssl-evp.html
index 811c9bc..e3dfd52 100644
--- a/docs/api/xmlsec-openssl-evp.html
+++ b/docs/api/xmlsec-openssl-evp.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for OpenSLL API Reference." href="xmlsec-openssl-ref.html">
<link rel="PREVIOUS" title="crypto" href="xmlsec-openssl-crypto.html">
<link rel="NEXT" title="x509" href="xmlsec-openssl-x509.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,107 +101,186 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-openssl-crypto.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-openssl-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-openssl-crypto.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-openssl-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-openssl-x509.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-openssl-x509.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-OPENSSL-EVP"></a>evp</h1>
<div class="REFNAMEDIV">
-<a name="AEN24158"></a><h2>Name</h2>evp -- EVP keys data implementation.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-OPENSSL-EVP.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>int</font> <a href="xmlsec-openssl-evp.html#XMLSECOPENSSLEVPKEYDATAADOPTEVP">xmlSecOpenSSLEvpKeyDataAdoptEvp</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>EVP_PKEY</font> *pKey);
-<font>EVP_PKEY</font>* <a href="xmlsec-openssl-evp.html#XMLSECOPENSSLEVPKEYDATAGETEVP">xmlSecOpenSSLEvpKeyDataGetEvp</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>EVP_PKEY</font>* <a href="xmlsec-openssl-evp.html#XMLSECOPENSSLEVPKEYDUP">xmlSecOpenSSLEvpKeyDup</a> (<font>EVP_PKEY</font> *pKey);
-<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> <a href="xmlsec-openssl-evp.html#XMLSECOPENSSLEVPKEYADOPT">xmlSecOpenSSLEvpKeyAdopt</a> (<font>EVP_PKEY</font> *pKey);</pre>
+<a name="AEN32728"></a><h2>Name</h2>evp -- EVP keys data implementation.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-OPENSSL-EVP.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN32733"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-evp.html#XMLSECOPENSSLEVPKEYDATAADOPTEVP">xmlSecOpenSSLEvpKeyDataAdoptEvp</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">EVP_PKEY</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-evp.html#XMLSECOPENSSLEVPKEYDATAGETEVP">xmlSecOpenSSLEvpKeyDataGetEvp</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">EVP_PKEY</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-evp.html#XMLSECOPENSSLEVPKEYDUP">xmlSecOpenSSLEvpKeyDup</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a></td>
+<td>
+<a href="xmlsec-openssl-evp.html#XMLSECOPENSSLEVPKEYADOPT">xmlSecOpenSSLEvpKeyAdopt</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-OPENSSL-EVP.DESCRIPTION"></a><h2>Description</h2>
<p>EVP keys data implementation.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-OPENSSL-EVP.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-OPENSSL-EVP.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECOPENSSLEVPKEYDATAADOPTEVP"></a><h3>xmlSecOpenSSLEvpKeyDataAdoptEvp ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLEvpKeyDataAdoptEvp (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>EVP_PKEY</font> *pKey);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLEvpKeyDataAdoptEvp (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">EVP_PKEY</span></font> *pKey</code>);</pre>
<p>Sets the value of key data.</p>
+<div class="REFSECT3">
+<a name="AEN32783"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24193"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL EVP key data.</p></td>
-</tr>
+<a name="AEN32785"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24198"><span style="white-space: nowrap"><code class="PARAMETER">pKey</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to EVP key.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to OpenSSL EVP key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24203"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p>pKey</p></td>
+<td><p>the pointer to EVP key.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN32800"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLEVPKEYDATAGETEVP"></a><h3>xmlSecOpenSSLEvpKeyDataGetEvp ()</h3>
-<pre class="PROGRAMLISTING"><font>EVP_PKEY</font>* xmlSecOpenSSLEvpKeyDataGetEvp (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">EVP_PKEY</span></font> *
+xmlSecOpenSSLEvpKeyDataGetEvp (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
<p>Gets the EVP_PKEY from the key data.</p>
+<div class="REFSECT3">
+<a name="AEN32814"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN32816"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to OpenSSL EVP data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24218"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL EVP data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24223"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to EVP_PKEY or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN32825"></a><h4>Returns</h4>
+<p> pointer to EVP_PKEY or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLEVPKEYDUP"></a><h3>xmlSecOpenSSLEvpKeyDup ()</h3>
-<pre class="PROGRAMLISTING"><font>EVP_PKEY</font>* xmlSecOpenSSLEvpKeyDup (<font>EVP_PKEY</font> *pKey);</pre>
-<p>Duplicates <code class="PARAMETER">pKey</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">EVP_PKEY</span></font> *
+xmlSecOpenSSLEvpKeyDup (<code class="PARAMETER"><font><span class="TYPE">EVP_PKEY</span></font> *pKey</code>);</pre>
+<p>Duplicates <code class="PARAMETER">pKey</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN32840"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN32842"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>pKey</p></td>
+<td><p>the pointer to EVP_PKEY.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24239"><span style="white-space: nowrap"><code class="PARAMETER">pKey</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to EVP_PKEY.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24244"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created EVP_PKEY object or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN32851"></a><h4>Returns</h4>
+<p> pointer to newly created EVP_PKEY object or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLEVPKEYADOPT"></a><h3>xmlSecOpenSSLEvpKeyAdopt ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> xmlSecOpenSSLEvpKeyAdopt (<font>EVP_PKEY</font> *pKey);</pre>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a>
+xmlSecOpenSSLEvpKeyAdopt (<code class="PARAMETER"><font><span class="TYPE">EVP_PKEY</span></font> *pKey</code>);</pre>
<p>Creates xmlsec key object from OpenSSL key object.</p>
+<div class="REFSECT3">
+<a name="AEN32865"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN32867"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>pKey</p></td>
+<td><p>the pointer to EVP_PKEY.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24259"><span style="white-space: nowrap"><code class="PARAMETER">pKey</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to EVP_PKEY.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24264"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created xmlsec key or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
</div>
</div>
+<div class="REFSECT3">
+<a name="AEN32876"></a><h4>Returns</h4>
+<p> pointer to newly created xmlsec key or NULL if an error occurs.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-OPENSSL-EVP.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<p></p>
+</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-openssl-crypto.html"><b><<< crypto</b></a></td>
<td align="right"><a accesskey="n" href="xmlsec-openssl-x509.html"><b>x509 >>></b></a></td>
diff --git a/docs/api/xmlsec-openssl-ref.html b/docs/api/xmlsec-openssl-ref.html
index 504968b..3ce8bd8 100644
--- a/docs/api/xmlsec-openssl-ref.html
+++ b/docs/api/xmlsec-openssl-ref.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library API Reference." href="xmlsec-reference.html">
<link rel="PREVIOUS" title="x509" href="xmlsec-x509.html">
<link rel="NEXT" title="app" href="xmlsec-openssl-app.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-x509.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-reference.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-x509.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-openssl-app.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-openssl-app.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-openssl-x509.html b/docs/api/xmlsec-openssl-x509.html
index da8a19b..39e1040 100644
--- a/docs/api/xmlsec-openssl-x509.html
+++ b/docs/api/xmlsec-openssl-x509.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library for OpenSLL API Reference." href="xmlsec-openssl-ref.html">
<link rel="PREVIOUS" title="evp" href="xmlsec-openssl-evp.html">
<link rel="NEXT" title="XML Security Library for GnuTLS API Reference." href="xmlsec-gnutls-ref.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,507 +101,819 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-openssl-evp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-openssl-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-openssl-evp.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-openssl-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-gnutls-ref.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-gnutls-ref.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-OPENSSL-X509"></a>x509</h1>
<div class="REFNAMEDIV">
-<a name="AEN24274"></a><h2>Name</h2>x509 -- X509 certificates support implementation for OpenSSL.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-OPENSSL-X509.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">#define <a href="xmlsec-openssl-x509.html#XMLSEC-STACK-OF-X509--CAPS">XMLSEC_STACK_OF_X509</a>
-#define <a href="xmlsec-openssl-x509.html#XMLSEC-STACK-OF-X509-CRL--CAPS">XMLSEC_STACK_OF_X509_CRL</a>
-#define <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509ID">xmlSecOpenSSLKeyDataX509Id</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509GETKLASS">xmlSecOpenSSLKeyDataX509GetKlass</a> (void);
-<font>X509</font>* <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509GETKEYCERT">xmlSecOpenSSLKeyDataX509GetKeyCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509ADOPTKEYCERT">xmlSecOpenSSLKeyDataX509AdoptKeyCert</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>X509</font> *cert);
-<font>int</font> <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509ADOPTCERT">xmlSecOpenSSLKeyDataX509AdoptCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>X509</font> *cert);
-<font>X509</font>* <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509GETCERT">xmlSecOpenSSLKeyDataX509GetCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);
-<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509GETCERTSSIZE">xmlSecOpenSSLKeyDataX509GetCertsSize</a>
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<font>int</font> <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509ADOPTCRL">xmlSecOpenSSLKeyDataX509AdoptCrl</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>X509_CRL</font> *crl);
-<font>X509_CRL</font>* <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509GETCRL">xmlSecOpenSSLKeyDataX509GetCrl</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);
-<a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509GETCRLSSIZE">xmlSecOpenSSLKeyDataX509GetCrlsSize</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);
-<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509CERTGETKEY">xmlSecOpenSSLX509CertGetKey</a> (<font>X509</font> *cert);
-#define <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATARAWX509CERTID">xmlSecOpenSSLKeyDataRawX509CertId</a>
-<font>xmlSecKeyDataId</font> <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATARAWX509CERTGETKLASS">xmlSecOpenSSLKeyDataRawX509CertGetKlass</a>
- (void);
-#define <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREID">xmlSecOpenSSLX509StoreId</a>
-<font>xmlSecKeyDataStoreId</font> <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREGETKLASS">xmlSecOpenSSLX509StoreGetKlass</a> (void);
-<font>X509</font>* <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREFINDCERT">xmlSecOpenSSLX509StoreFindCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>xmlChar</font> *subjectName,
- <font>xmlChar</font> *issuerName,
- <font>xmlChar</font> *issuerSerial,
- <font>xmlChar</font> *ski,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a> *keyInfoCtx);
-<font>X509</font>* <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREVERIFY">xmlSecOpenSSLX509StoreVerify</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <a href="xmlsec-openssl-x509.html#XMLSEC-STACK-OF-X509--CAPS">XMLSEC_STACK_OF_X509</a> *certs,
- <a href="xmlsec-openssl-x509.html#XMLSEC-STACK-OF-X509-CRL--CAPS">XMLSEC_STACK_OF_X509_CRL</a> *crls,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a> *keyInfoCtx);
-<font>int</font> <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREADOPTCERT">xmlSecOpenSSLX509StoreAdoptCert</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>X509</font> *cert,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);
-<font>int</font> <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREADOPTCRL">xmlSecOpenSSLX509StoreAdoptCrl</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>X509_CRL</font> *crl);
-<font>int</font> <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREADDCERTSPATH">xmlSecOpenSSLX509StoreAddCertsPath</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- const <font>char</font> *path);
-<font>int</font> <a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREADDCERTSFILE">xmlSecOpenSSLX509StoreAddCertsFile</a> (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- const <font>char</font> *file);</pre>
-</div>
+<a name="AEN32887"></a><h2>Name</h2>x509 -- X509 certificates support implementation for OpenSSL.</div>
<div class="REFSECT1">
-<a name="XMLSEC-OPENSSL-X509.DESCRIPTION"></a><h2>Description</h2>
-<p>X509 certificates support implementation for OpenSSL.</p>
+<a name="XMLSEC-OPENSSL-X509.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN32892"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509GETKLASS">xmlSecOpenSSLKeyDataX509GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">X509</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509GETKEYCERT">xmlSecOpenSSLKeyDataX509GetKeyCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509ADOPTKEYCERT">xmlSecOpenSSLKeyDataX509AdoptKeyCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509ADOPTCERT">xmlSecOpenSSLKeyDataX509AdoptCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">X509</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509GETCERT">xmlSecOpenSSLKeyDataX509GetCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a></td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509GETCERTSSIZE">xmlSecOpenSSLKeyDataX509GetCertsSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509ADOPTCRL">xmlSecOpenSSLKeyDataX509AdoptCrl</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">X509_CRL</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509GETCRL">xmlSecOpenSSLKeyDataX509GetCrl</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a></td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509GETCRLSSIZE">xmlSecOpenSSLKeyDataX509GetCrlsSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a></td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509CERTGETKEY">xmlSecOpenSSLX509CertGetKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font></td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATARAWX509CERTGETKLASS">xmlSecOpenSSLKeyDataRawX509CertGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecKeyDataStoreId</span></font></td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREGETKLASS">xmlSecOpenSSLX509StoreGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">X509</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREFINDCERT">xmlSecOpenSSLX509StoreFindCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>
+<font><span class="RETURNVALUE">X509</span></font> *</td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREVERIFY">xmlSecOpenSSLX509StoreVerify</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREADOPTCERT">xmlSecOpenSSLX509StoreAdoptCert</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREADOPTCRL">xmlSecOpenSSLX509StoreAdoptCrl</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREADDCERTSPATH">xmlSecOpenSSLX509StoreAddCertsPath</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREADDCERTSFILE">xmlSecOpenSSLX509StoreAddCertsFile</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-OPENSSL-X509.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSEC-STACK-OF-X509--CAPS"></a><h3>XMLSEC_STACK_OF_X509</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_STACK_OF_X509 STACK_OF(X509)</pre>
-<p>Macro. To make docbook happy.</p>
+<a name="XMLSEC-OPENSSL-X509.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSEC-STACK-OF-X509-CRL--CAPS"></a><h3>XMLSEC_STACK_OF_X509_CRL</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_STACK_OF_X509_CRL STACK_OF(X509_CRL)</pre>
-<p>Macro. To make docbook happy.</p>
+<a name="AEN33023"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-x509.html#XMLSEC-STACK-OF-X509:CAPS">XMLSEC_STACK_OF_X509</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-x509.html#XMLSEC-STACK-OF-X509-CRL:CAPS">XMLSEC_STACK_OF_X509_CRL</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATAX509ID">xmlSecOpenSSLKeyDataX509Id</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-x509.html#XMLSECOPENSSLKEYDATARAWX509CERTID">xmlSecOpenSSLKeyDataRawX509CertId</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-openssl-x509.html#XMLSECOPENSSLX509STOREID">xmlSecOpenSSLX509StoreId</a></td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATAX509ID"></a><h3>xmlSecOpenSSLKeyDataX509Id</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataX509Id</pre>
-<p>The OpenSSL X509 data klass.</p>
-<p></p>
</div>
-<hr>
+<div class="REFSECT1">
+<a name="XMLSEC-OPENSSL-X509.DESCRIPTION"></a><h2>Description</h2>
+<p>X509 certificates support implementation for OpenSSL.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-OPENSSL-X509.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECOPENSSLKEYDATAX509GETKLASS"></a><h3>xmlSecOpenSSLKeyDataX509GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecOpenSSLKeyDataX509GetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecOpenSSLKeyDataX509GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The OpenSSL X509 key data klass (http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-X509Data</span></font>).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN24391"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the X509 data klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN33063"></a><h4>Returns</h4>
+<p> the X509 data klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLKEYDATAX509GETKEYCERT"></a><h3>xmlSecOpenSSLKeyDataX509GetKeyCert ()</h3>
-<pre class="PROGRAMLISTING"><font>X509</font>* xmlSecOpenSSLKeyDataX509GetKeyCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">X509</span></font> *
+xmlSecOpenSSLKeyDataX509GetKeyCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
<p>Gets the certificate from which the key was extracted.</p>
+<div class="REFSECT3">
+<a name="AEN33077"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN33079"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24406"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24411"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key's certificate or NULL if key data was not used for key
-extraction or an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33088"></a><h4>Returns</h4>
+<p> the key's certificate or NULL if key data was not used for key
+extraction or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLKEYDATAX509ADOPTKEYCERT"></a><h3>xmlSecOpenSSLKeyDataX509AdoptKeyCert ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLKeyDataX509AdoptKeyCert
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>X509</font> *cert);</pre>
-<p>Sets the key's certificate in <code class="PARAMETER">data</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLKeyDataX509AdoptKeyCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">X509</span></font> *cert</code>);</pre>
+<p>Sets the key's certificate in <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN33106"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN33108"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>cert</p></td>
+<td><p>the pointer to OpenSSL X509 certificate.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24428"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24433"><span style="white-space: nowrap"><code class="PARAMETER">cert</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL X509 certificate.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24438"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33123"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLKEYDATAX509ADOPTCERT"></a><h3>xmlSecOpenSSLKeyDataX509AdoptCert ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLKeyDataX509AdoptCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>X509</font> *cert);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLKeyDataX509AdoptCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">X509</span></font> *cert</code>);</pre>
<p>Adds certificate to the X509 key data.</p>
+<div class="REFSECT3">
+<a name="AEN33140"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN33142"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24454"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24459"><span style="white-space: nowrap"><code class="PARAMETER">cert</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL X509 certificate.</p></td>
+<td><p>cert</p></td>
+<td><p>the pointer to OpenSSL X509 certificate.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24464"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33157"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLKEYDATAX509GETCERT"></a><h3>xmlSecOpenSSLKeyDataX509GetCert ()</h3>
-<pre class="PROGRAMLISTING"><font>X509</font>* xmlSecOpenSSLKeyDataX509GetCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">X509</span></font> *
+xmlSecOpenSSLKeyDataX509GetCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> pos</code>);</pre>
<p>Gets a certificate from X509 key data.</p>
+<div class="REFSECT3">
+<a name="AEN33174"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24480"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
+<a name="AEN33176"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24485"><span style="white-space: nowrap"><code class="PARAMETER">pos</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired certificate position.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24490"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to certificate or NULL if <code class="PARAMETER">pos</code> is larger than the
-number of certificates in <code class="PARAMETER">data</code> or an error occurs.</p></td>
+<td><p>pos</p></td>
+<td><p>the desired certificate position.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33191"></a><h4>Returns</h4>
+<p> the pointer to certificate or NULL if <code class="PARAMETER">pos</code>
+is larger than the
+number of certificates in <code class="PARAMETER">data</code>
+or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLKEYDATAX509GETCERTSSIZE"></a><h3>xmlSecOpenSSLKeyDataX509GetCertsSize ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecOpenSSLKeyDataX509GetCertsSize
- (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the number of certificates in <code class="PARAMETER">data</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a>
+xmlSecOpenSSLKeyDataX509GetCertsSize (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the number of certificates in <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN33208"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN33210"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24508"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24513"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> te number of certificates in <code class="PARAMETER">data</code>.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33219"></a><h4>Returns</h4>
+<p> te number of certificates in <code class="PARAMETER">data</code>
+.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLKEYDATAX509ADOPTCRL"></a><h3>xmlSecOpenSSLKeyDataX509AdoptCrl ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLKeyDataX509AdoptCrl (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <font>X509_CRL</font> *crl);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLKeyDataX509AdoptCrl (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><font><span class="TYPE">X509_CRL</span></font> *crl</code>);</pre>
<p>Adds CRL to the X509 key data.</p>
+<div class="REFSECT3">
+<a name="AEN33237"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN33239"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24530"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24535"><span style="white-space: nowrap"><code class="PARAMETER">crl</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL X509 CRL.</p></td>
+<td><p>crl</p></td>
+<td><p>the pointer to OpenSSL X509 CRL.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24540"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33254"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLKEYDATAX509GETCRL"></a><h3>xmlSecOpenSSLKeyDataX509GetCrl ()</h3>
-<pre class="PROGRAMLISTING"><font>X509_CRL</font>* xmlSecOpenSSLKeyDataX509GetCrl (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> pos);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">X509_CRL</span></font> *
+xmlSecOpenSSLKeyDataX509GetCrl (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> pos</code>);</pre>
<p>Gets a CRL from X509 key data.</p>
+<div class="REFSECT3">
+<a name="AEN33271"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24556"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
+<a name="AEN33273"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24561"><span style="white-space: nowrap"><code class="PARAMETER">pos</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired CRL position.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24566"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to CRL or NULL if <code class="PARAMETER">pos</code> is larger than the
-number of CRLs in <code class="PARAMETER">data</code> or an error occurs.</p></td>
+<td><p>pos</p></td>
+<td><p>the desired CRL position.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33288"></a><h4>Returns</h4>
+<p> the pointer to CRL or NULL if <code class="PARAMETER">pos</code>
+is larger than the
+number of CRLs in <code class="PARAMETER">data</code>
+or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLKEYDATAX509GETCRLSSIZE"></a><h3>xmlSecOpenSSLKeyDataX509GetCrlsSize ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> xmlSecOpenSSLKeyDataX509GetCrlsSize (<a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> data);</pre>
-<p>Gets the number of CRLs in <code class="PARAMETER">data</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="RETURNVALUE">xmlSecSize</span></a>
+xmlSecOpenSSLKeyDataX509GetCrlsSize (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="TYPE">xmlSecKeyDataPtr</span></a> data</code>);</pre>
+<p>Gets the number of CRLs in <code class="PARAMETER">data</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN33305"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN33307"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>data</p></td>
+<td><p>the pointer to X509 key data.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24584"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24589"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> te number of CRLs in <code class="PARAMETER">data</code>.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33316"></a><h4>Returns</h4>
+<p> te number of CRLs in <code class="PARAMETER">data</code>
+.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLX509CERTGETKEY"></a><h3>xmlSecOpenSSLX509CertGetKey ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA">xmlSecKeyDataPtr</a> xmlSecOpenSSLX509CertGetKey (<font>X509</font> *cert);</pre>
-<p>Extracts public key from the <code class="PARAMETER">cert</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-keysdata.html#XMLSECKEYDATA"><span class="RETURNVALUE">xmlSecKeyDataPtr</span></a>
+xmlSecOpenSSLX509CertGetKey (<code class="PARAMETER"><font><span class="TYPE">X509</span></font> *cert</code>);</pre>
+<p>Extracts public key from the <code class="PARAMETER">cert</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN33332"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN33334"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>cert</p></td>
+<td><p>the certificate.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24606"><span style="white-space: nowrap"><code class="PARAMETER">cert</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24611"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> public key value or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLKEYDATARAWX509CERTID"></a><h3>xmlSecOpenSSLKeyDataRawX509CertId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataRawX509CertId</pre>
-<p>The OpenSSL raw X509 certificate klass.</p>
-<p></p>
+</div>
+<div class="REFSECT3">
+<a name="AEN33343"></a><h4>Returns</h4>
+<p> public key value or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLKEYDATARAWX509CERTGETKLASS"></a><h3>xmlSecOpenSSLKeyDataRawX509CertGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataId</font> xmlSecOpenSSLKeyDataRawX509CertGetKlass
- (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataId</span></font>
+xmlSecOpenSSLKeyDataRawX509CertGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The raw X509 certificates key data klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN24632"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> raw X509 certificates key data klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN33356"></a><h4>Returns</h4>
+<p> raw X509 certificates key data klass.</p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECOPENSSLX509STOREID"></a><h3>xmlSecOpenSSLX509StoreId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecOpenSSLX509StoreId</pre>
-<p>The OpenSSL X509 store klass.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLX509STOREGETKLASS"></a><h3>xmlSecOpenSSLX509StoreGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecKeyDataStoreId</font> xmlSecOpenSSLX509StoreGetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecKeyDataStoreId</span></font>
+xmlSecOpenSSLX509StoreGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The OpenSSL X509 certificates key data store klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN24653"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to OpenSSL X509 certificates key data store klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN33369"></a><h4>Returns</h4>
+<p> pointer to OpenSSL X509 certificates key data store klass.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLX509STOREFINDCERT"></a><h3>xmlSecOpenSSLX509StoreFindCert ()</h3>
-<pre class="PROGRAMLISTING"><font>X509</font>* xmlSecOpenSSLX509StoreFindCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>xmlChar</font> *subjectName,
- <font>xmlChar</font> *issuerName,
- <font>xmlChar</font> *issuerSerial,
- <font>xmlChar</font> *ski,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a> *keyInfoCtx);</pre>
-<p>Searches <code class="PARAMETER">store</code> for a certificate that matches given criteria.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">X509</span></font> *
+xmlSecOpenSSLX509StoreFindCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlChar</span></font> *subjectName</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlChar</span></font> *issuerName</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlChar</span></font> *issuerSerial</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlChar</span></font> *ski</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtx</span></a> *keyInfoCtx</code>);</pre>
+<p>Searches <code class="PARAMETER">store</code>
+ for a certificate that matches given criteria.</p>
+<div class="REFSECT3">
+<a name="AEN33399"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24674"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data store klass.</p></td>
-</tr>
+<a name="AEN33401"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24679"><span style="white-space: nowrap"><code class="PARAMETER">subjectName</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired certificate name.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to X509 key data store klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24684"><span style="white-space: nowrap"><code class="PARAMETER">issuerName</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired certificate issuer name.</p></td>
+<td><p>subjectName</p></td>
+<td><p>the desired certificate name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24689"><span style="white-space: nowrap"><code class="PARAMETER">issuerSerial</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired certificate issuer serial number.</p></td>
+<td><p>issuerName</p></td>
+<td><p>the desired certificate issuer name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24694"><span style="white-space: nowrap"><code class="PARAMETER">ski</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired certificate SKI.</p></td>
+<td><p>issuerSerial</p></td>
+<td><p>the desired certificate issuer serial number.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24699"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
+<td><p>ski</p></td>
+<td><p>the desired certificate SKI.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24705"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to found certificate or NULL if certificate is not found
-or an error occurs.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33440"></a><h4>Returns</h4>
+<p> pointer to found certificate or NULL if certificate is not found
+or an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLX509STOREVERIFY"></a><h3>xmlSecOpenSSLX509StoreVerify ()</h3>
-<pre class="PROGRAMLISTING"><font>X509</font>* xmlSecOpenSSLX509StoreVerify (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <a href="xmlsec-openssl-x509.html#XMLSEC-STACK-OF-X509--CAPS">XMLSEC_STACK_OF_X509</a> *certs,
- <a href="xmlsec-openssl-x509.html#XMLSEC-STACK-OF-X509-CRL--CAPS">XMLSEC_STACK_OF_X509_CRL</a> *crls,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a> *keyInfoCtx);</pre>
-<p>Verifies <code class="PARAMETER">certs</code> list.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">X509</span></font> *
+xmlSecOpenSSLX509StoreVerify (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><a href="xmlsec-openssl-x509.html#XMLSEC-STACK-OF-X509:CAPS"><span class="TYPE">XMLSEC_STACK_OF_X509</span></a> *certs</code>,
+ <code class="PARAMETER"><a href="xmlsec-openssl-x509.html#XMLSEC-STACK-OF-X509-CRL:CAPS"><span class="TYPE">XMLSEC_STACK_OF_X509_CRL</span></a> *crls</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtx</span></a> *keyInfoCtx</code>);</pre>
+<p>Verifies <code class="PARAMETER">certs</code>
+ list.</p>
+<div class="REFSECT3">
+<a name="AEN33464"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24724"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data store klass.</p></td>
-</tr>
+<a name="AEN33466"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24729"><span style="white-space: nowrap"><code class="PARAMETER">certs</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the untrusted certificates stack.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to X509 key data store klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24734"><span style="white-space: nowrap"><code class="PARAMETER">crls</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the crls stack.</p></td>
+<td><p>certs</p></td>
+<td><p>the untrusted certificates stack.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24739"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element processing context.</p></td>
+<td><p>crls</p></td>
+<td><p>the crls stack.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24745"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the first verified certificate from <code class="PARAMETER">certs</code>.</p></td>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> element processing context.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33493"></a><h4>Returns</h4>
+<p> pointer to the first verified certificate from <code class="PARAMETER">certs</code>
+.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLX509STOREADOPTCERT"></a><h3>xmlSecOpenSSLX509StoreAdoptCert ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLX509StoreAdoptCert (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>X509</font> *cert,
- <a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE">xmlSecKeyDataType</a> type);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLX509StoreAdoptCert (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><font><span class="TYPE">X509</span></font> *cert</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATATYPE"><span class="TYPE">xmlSecKeyDataType</span></a> type</code>);</pre>
<p>Adds trusted (root) or untrusted certificate to the store.</p>
+<div class="REFSECT3">
+<a name="AEN33514"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN33516"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24763"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data store klass.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to X509 key data store klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24768"><span style="white-space: nowrap"><code class="PARAMETER">cert</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL X509 certificate.</p></td>
+<td><p>cert</p></td>
+<td><p>the pointer to OpenSSL X509 certificate.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24773"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certificate type (trusted/untrusted).</p></td>
+<td><p>type</p></td>
+<td><p>the certificate type (trusted/untrusted).</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24778"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33537"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLX509STOREADOPTCRL"></a><h3>xmlSecOpenSSLX509StoreAdoptCrl ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLX509StoreAdoptCrl (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- <font>X509_CRL</font> *crl);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLX509StoreAdoptCrl (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>,
+ <code class="PARAMETER"><font><span class="TYPE">X509_CRL</span></font> *crl</code>);</pre>
<p>Adds X509 CRL to the store.</p>
+<div class="REFSECT3">
+<a name="AEN33554"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN33556"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24794"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to X509 key data store klass.</p></td>
+<td><p>store</p></td>
+<td><p>the pointer to X509 key data store klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24799"><span style="white-space: nowrap"><code class="PARAMETER">crl</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL X509_CRL.</p></td>
+<td><p>crl</p></td>
+<td><p>the pointer to OpenSSL X509_CRL.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24804"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33571"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLX509STOREADDCERTSPATH"></a><h3>xmlSecOpenSSLX509StoreAddCertsPath ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLX509StoreAddCertsPath (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- const <font>char</font> *path);</pre>
-<p>Adds all certs in the <code class="PARAMETER">path</code> to the list of trusted certs
-in <code class="PARAMETER">store</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLX509StoreAddCertsPath (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *path</code>);</pre>
+<p>Adds all certs in the <code class="PARAMETER">path</code>
+ to the list of trusted certs
+in <code class="PARAMETER">store</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN33590"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN33592"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>store</p></td>
+<td><p>the pointer to OpenSSL x509 store.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>path</p></td>
+<td><p>the path to the certs dir.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24822"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL x509 store.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24827"><span style="white-space: nowrap"><code class="PARAMETER">path</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the path to the certs dir.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24832"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33607"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECOPENSSLX509STOREADDCERTSFILE"></a><h3>xmlSecOpenSSLX509StoreAddCertsFile ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecOpenSSLX509StoreAddCertsFile (<a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE">xmlSecKeyDataStorePtr</a> store,
- const <font>char</font> *file);</pre>
-<p>Adds all certs in <code class="PARAMETER">file</code> to the list of trusted certs
-in <code class="PARAMETER">store</code>. It is possible for <code class="PARAMETER">file</code> to contain multiple certs.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecOpenSSLX509StoreAddCertsFile (<code class="PARAMETER"><a href="xmlsec-keysdata.html#XMLSECKEYDATASTORE"><span class="TYPE">xmlSecKeyDataStorePtr</span></a> store</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">char</span></font> *file</code>);</pre>
+<p>Adds all certs in <code class="PARAMETER">file</code>
+ to the list of trusted certs
+in <code class="PARAMETER">store</code>
+. It is possible for <code class="PARAMETER">file</code>
+ to contain multiple certs.</p>
+<div class="REFSECT3">
+<a name="AEN33627"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN33629"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>store</p></td>
+<td><p>the pointer to OpenSSL x509 store.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>file</p></td>
+<td><p>the certs file.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24851"><span style="white-space: nowrap"><code class="PARAMETER">store</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to OpenSSL x509 store.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24856"><span style="white-space: nowrap"><code class="PARAMETER">file</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the certs file.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN24861"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN33644"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-OPENSSL-X509.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSEC-STACK-OF-X509:CAPS"></a><h3>XMLSEC_STACK_OF_X509</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_STACK_OF_X509 STACK_OF(X509)</pre>
+<p>Macro. To make docbook happy.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSEC-STACK-OF-X509-CRL:CAPS"></a><h3>XMLSEC_STACK_OF_X509_CRL</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_STACK_OF_X509_CRL STACK_OF(X509_CRL)</pre>
+<p>Macro. To make docbook happy.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATAX509ID"></a><h3>xmlSecOpenSSLKeyDataX509Id</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataX509Id</pre>
+<p>The OpenSSL X509 data klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLKEYDATARAWX509CERTID"></a><h3>xmlSecOpenSSLKeyDataRawX509CertId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLKeyDataRawX509CertId</pre>
+<p>The OpenSSL raw X509 certificate klass.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECOPENSSLX509STOREID"></a><h3>xmlSecOpenSSLX509StoreId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecOpenSSLX509StoreId</pre>
+<p>The OpenSSL X509 store klass.</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-openssl.sgml b/docs/api/xmlsec-openssl.sgml
deleted file mode 100644
index 0a6f504..0000000
--- a/docs/api/xmlsec-openssl.sgml
+++ /dev/null
@@ -1,21 +0,0 @@
-<!doctype book PUBLIC "-//DavenPort//DTD DocBook V3.0//EN" [
-<!ENTITY xmlsec-openssl-app SYSTEM "sgml/app.sgml">
-<!ENTITY xmlsec-openssl-bn SYSTEM "sgml/bn.sgml">
-<!ENTITY xmlsec-openssl-crypto SYSTEM "sgml/crypto.sgml">
-<!ENTITY xmlsec-openssl-evp SYSTEM "sgml/evp.sgml">
-<!ENTITY xmlsec-openssl-x509 SYSTEM "sgml/x509.sgml">
-]>
-<book id="index">
- <bookinfo>
- <title>[Insert name here] Reference Manual</title>
- </bookinfo>
-
- <chapter>
- <title>[Insert title here]</title>
- &xmlsec-openssl-app;
- &xmlsec-openssl-bn;
- &xmlsec-openssl-crypto;
- &xmlsec-openssl-evp;
- &xmlsec-openssl-x509;
- </chapter>
-</book>
diff --git a/docs/api/xmlsec-parser.html b/docs/api/xmlsec-parser.html
index 43a6d2d..abf343e 100644
--- a/docs/api/xmlsec-parser.html
+++ b/docs/api/xmlsec-parser.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="nodeset" href="xmlsec-nodeset.html">
<link rel="NEXT" title="templates" href="xmlsec-templates.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,145 +101,227 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-nodeset.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-nodeset.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-templates.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-templates.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-PARSER"></a>parser</h1>
<div class="REFNAMEDIV">
-<a name="AEN12288"></a><h2>Name</h2>parser -- Parser transform implementation.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-PARSER.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>xmlDocPtr</font> <a href="xmlsec-parser.html#XMLSECPARSEFILE">xmlSecParseFile</a> (const <font>char</font> *filename);
-<font>xmlDocPtr</font> <a href="xmlsec-parser.html#XMLSECPARSEMEMORY">xmlSecParseMemory</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size,
- <font>int</font> recovery);
-<font>xmlDocPtr</font> <a href="xmlsec-parser.html#XMLSECPARSEMEMORYEXT">xmlSecParseMemoryExt</a> (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *prefix,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> prefixSize,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufferSize,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *postfix,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> postfixSize);
-#define <a href="xmlsec-parser.html#XMLSECTRANSFORMXMLPARSERID">xmlSecTransformXmlParserId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-parser.html#XMLSECTRANSFORMXMLPARSERGETKLASS">xmlSecTransformXmlParserGetKlass</a> (void);</pre>
+<a name="AEN16683"></a><h2>Name</h2>parser -- Parser transform implementation.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-PARSER.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN16688"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><font><span class="RETURNVALUE">xmlDocPtr</span></font></td>
+<td>
+<a href="xmlsec-parser.html#XMLSECPARSEFILE">xmlSecParseFile</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlDocPtr</span></font></td>
+<td>
+<a href="xmlsec-parser.html#XMLSECPARSEMEMORY">xmlSecParseMemory</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlDocPtr</span></font></td>
+<td>
+<a href="xmlsec-parser.html#XMLSECPARSEMEMORYEXT">xmlSecParseMemoryExt</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-parser.html#XMLSECTRANSFORMXMLPARSERGETKLASS">xmlSecTransformXmlParserGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-PARSER.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN16721"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody><tr>
+<td>#define</td>
+<td><a href="xmlsec-parser.html#XMLSECTRANSFORMXMLPARSERID">xmlSecTransformXmlParserId</a></td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-PARSER.DESCRIPTION"></a><h2>Description</h2>
<p>Parser transform implementation.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-PARSER.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-PARSER.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECPARSEFILE"></a><h3>xmlSecParseFile ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlDocPtr</font> xmlSecParseFile (const <font>char</font> *filename);</pre>
-<p>Loads XML Doc from file <code class="PARAMETER">filename</code>. We need a special version because of
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlDocPtr</span></font>
+xmlSecParseFile (<code class="PARAMETER">const <font><span class="TYPE">char</span></font> *filename</code>);</pre>
+<p>Loads XML Doc from file <code class="PARAMETER">filename</code>
+. We need a special version because of
c14n issue. The code is copied from <font><code class="FUNCTION">xmlSAXParseFileWithData()</code></font> function.</p>
+<div class="REFSECT3">
+<a name="AEN16747"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN16749"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>filename</p></td>
+<td><p>the filename.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12331"><span style="white-space: nowrap"><code class="PARAMETER">filename</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the filename.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12336"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the loaded XML document or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN16758"></a><h4>Returns</h4>
+<p> pointer to the loaded XML document or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPARSEMEMORY"></a><h3>xmlSecParseMemory ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlDocPtr</font> xmlSecParseMemory (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size,
- <font>int</font> recovery);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlDocPtr</span></font>
+xmlSecParseMemory (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buffer</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> recovery</code>);</pre>
<p>Loads XML Doc from memory. We need a special version because of
c14n issue. The code is copied from <font><code class="FUNCTION">xmlSAXParseMemory()</code></font> function.</p>
+<div class="REFSECT3">
+<a name="AEN16780"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12355"><span style="white-space: nowrap"><code class="PARAMETER">buffer</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input buffer.</p></td>
-</tr>
+<a name="AEN16782"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12360"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input buffer size.</p></td>
+<td><p>buffer</p></td>
+<td><p>the input buffer.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12365"><span style="white-space: nowrap"><code class="PARAMETER">recovery</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag.</p></td>
+<td><p>size</p></td>
+<td><p>the input buffer size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12370"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the loaded XML document or NULL if an error occurs.</p></td>
+<td><p>recovery</p></td>
+<td><p>the flag.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN16803"></a><h4>Returns</h4>
+<p> pointer to the loaded XML document or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECPARSEMEMORYEXT"></a><h3>xmlSecParseMemoryExt ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlDocPtr</font> xmlSecParseMemoryExt (const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *prefix,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> prefixSize,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bufferSize,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *postfix,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> postfixSize);</pre>
-<p>Loads XML Doc from 3 chunks of memory: <code class="PARAMETER">prefix</code>, <code class="PARAMETER">buffer</code> and <code class="PARAMETER">postfix</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlDocPtr</span></font>
+xmlSecParseMemoryExt (<code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *prefix</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> prefixSize</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buffer</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bufferSize</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *postfix</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> postfixSize</code>);</pre>
+<p>Loads XML Doc from 3 chunks of memory: <code class="PARAMETER">prefix</code>
+, <code class="PARAMETER">buffer</code>
+ and <code class="PARAMETER">postfix</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN16835"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12393"><span style="white-space: nowrap"><code class="PARAMETER">prefix</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the first part of the input.</p></td>
-</tr>
+<a name="AEN16837"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12398"><span style="white-space: nowrap"><code class="PARAMETER">prefixSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of the first part of the input.</p></td>
+<td><p>prefix</p></td>
+<td><p>the first part of the input.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12403"><span style="white-space: nowrap"><code class="PARAMETER">buffer</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the second part of the input.</p></td>
+<td><p>prefixSize</p></td>
+<td><p>the size of the first part of the input.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12408"><span style="white-space: nowrap"><code class="PARAMETER">bufferSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of the second part of the input.</p></td>
+<td><p>buffer</p></td>
+<td><p>the second part of the input.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12413"><span style="white-space: nowrap"><code class="PARAMETER">postfix</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the third part of the input.</p></td>
+<td><p>bufferSize</p></td>
+<td><p>the size of the second part of the input.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12418"><span style="white-space: nowrap"><code class="PARAMETER">postfixSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of the third part of the input.</p></td>
+<td><p>postfix</p></td>
+<td><p>the third part of the input.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12423"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the loaded XML document or NULL if an error occurs.</p></td>
+<td><p>postfixSize</p></td>
+<td><p>the size of the third part of the input.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMXMLPARSERID"></a><h3>xmlSecTransformXmlParserId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformXmlParserId</pre>
-<p>The XML Parser transform klass.</p>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN16876"></a><h4>Returns</h4>
+<p> pointer to the loaded XML document or NULL if an error occurs.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMXMLPARSERGETKLASS"></a><h3>xmlSecTransformXmlParserGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformXmlParserGetKlass (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformXmlParserGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>The XML parser transform.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN12444"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> XML parser transform klass.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN16889"></a><h4>Returns</h4>
+<p> XML parser transform klass.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-PARSER.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMXMLPARSERID"></a><h3>xmlSecTransformXmlParserId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformXmlParserId</pre>
+<p>The XML Parser transform klass.</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-ref.html b/docs/api/xmlsec-ref.html
index c379f9b..6f504cf 100644
--- a/docs/api/xmlsec-ref.html
+++ b/docs/api/xmlsec-ref.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library API Reference." href="xmlsec-reference.html">
<link rel="PREVIOUS" title="XML Security Library API Reference." href="xmlsec-reference.html">
<link rel="NEXT" title="app" href="xmlsec-app.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-reference.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-reference.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-reference.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-app.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-app.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
diff --git a/docs/api/xmlsec-reference.html b/docs/api/xmlsec-reference.html
index 16dd77c..5543081 100644
--- a/docs/api/xmlsec-reference.html
+++ b/docs/api/xmlsec-reference.html
@@ -6,7 +6,6 @@
<link rel="HOME" title="XML Security Library Reference Manual" href="index.html">
<link rel="PREVIOUS" title="APPENDIX B. XML Security Library Encryption Klasses." href="xmlsec-encryption-klasses.html">
<link rel="NEXT" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -36,8 +35,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -78,10 +100,10 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-encryption-klasses.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-encryption-klasses.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-ref.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-ref.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="PART">
<a name="XMLSEC-REFERENCE"></a><div class="TITLEPAGE">
diff --git a/docs/api/xmlsec-signature-klasses.html b/docs/api/xmlsec-signature-klasses.html
index 72ddd53..56e5dc8 100644
--- a/docs/api/xmlsec-signature-klasses.html
+++ b/docs/api/xmlsec-signature-klasses.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Library Tutorial" href="xmlsec-notes.html">
<link rel="PREVIOUS" title="Writing a custom keys manager." href="xmlsec-custom-keys-manager.html">
<link rel="NEXT" title="APPENDIX B. XML Security Library Encryption Klasses." href="xmlsec-encryption-klasses.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,17 +101,17 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-custom-keys-manager.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-custom-keys-manager.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-notes.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-encryption-klasses.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-encryption-klasses.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="CHAPTER">
<h1>
<a name="XMLSEC-SIGNATURE-KLASSES"></a>APPENDIX A. XML Security Library Signature Klasses.</h1>
<div class="FIGURE">
-<a name="AEN818"></a><p><b>Figure 1. XML Security Library Signature Klasses.</b></p>
+<a name="AEN839"></a><p><b>Figure 1. XML Security Library Signature Klasses.</b></p>
<p><img src="images/signature-structure.png" align="CENTER"></p>
</div>
</div>
diff --git a/docs/api/xmlsec-templates.html b/docs/api/xmlsec-templates.html
index a9cfe02..84a489a 100644
--- a/docs/api/xmlsec-templates.html
+++ b/docs/api/xmlsec-templates.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="parser" href="xmlsec-parser.html">
<link rel="NEXT" title="transforms" href="xmlsec-transforms.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,1250 +101,1957 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-parser.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-parser.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-transforms.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-transforms.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-TEMPLATES"></a>templates</h1>
<div class="REFNAMEDIV">
-<a name="AEN12454"></a><h2>Name</h2>templates -- Dynamic templates creation functions.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-TEMPLATES.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS"><font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLSIGNATURECREATE">xmlSecTmplSignatureCreate</a> (<font>xmlDocPtr</font> doc,
- <font>xmlSecTransformId</font> c14nMethodId,
- <font>xmlSecTransformId</font> signMethodId,
- const <font>xmlChar</font> *id);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLSIGNATURECREATENSPREF">xmlSecTmplSignatureCreateNsPref</a> (<font>xmlDocPtr</font> doc,
- <font>xmlSecTransformId</font> c14nMethodId,
- <font>xmlSecTransformId</font> signMethodId,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *nsPrefix);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLSIGNATUREENSUREKEYINFO">xmlSecTmplSignatureEnsureKeyInfo</a> (<font>xmlNodePtr</font> signNode,
- const <font>xmlChar</font> *id);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLSIGNATUREADDREFERENCE">xmlSecTmplSignatureAddReference</a> (<font>xmlNodePtr</font> signNode,
- <font>xmlSecTransformId</font> digestMethodId,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *uri,
- const <font>xmlChar</font> *type);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLSIGNATUREADDOBJECT">xmlSecTmplSignatureAddObject</a> (<font>xmlNodePtr</font> signNode,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *mimeType,
- const <font>xmlChar</font> *encoding);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLSIGNATUREGETSIGNMETHODNODE">xmlSecTmplSignatureGetSignMethodNode</a>
- (<font>xmlNodePtr</font> signNode);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLSIGNATUREGETC14NMETHODNODE">xmlSecTmplSignatureGetC14NMethodNode</a>
- (<font>xmlNodePtr</font> signNode);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLREFERENCEADDTRANSFORM">xmlSecTmplReferenceAddTransform</a> (<font>xmlNodePtr</font> referenceNode,
- <font>xmlSecTransformId</font> transformId);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLOBJECTADDSIGNPROPERTIES">xmlSecTmplObjectAddSignProperties</a> (<font>xmlNodePtr</font> objectNode,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *target);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLOBJECTADDMANIFEST">xmlSecTmplObjectAddManifest</a> (<font>xmlNodePtr</font> objectNode,
- const <font>xmlChar</font> *id);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLMANIFESTADDREFERENCE">xmlSecTmplManifestAddReference</a> (<font>xmlNodePtr</font> manifestNode,
- <font>xmlSecTransformId</font> digestMethodId,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *uri,
- const <font>xmlChar</font> *type);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLENCDATACREATE">xmlSecTmplEncDataCreate</a> (<font>xmlDocPtr</font> doc,
- <font>xmlSecTransformId</font> encMethodId,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *type,
- const <font>xmlChar</font> *mimeType,
- const <font>xmlChar</font> *encoding);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLENCDATAENSUREKEYINFO">xmlSecTmplEncDataEnsureKeyInfo</a> (<font>xmlNodePtr</font> encNode,
- const <font>xmlChar</font> *id);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLENCDATAENSUREENCPROPERTIES">xmlSecTmplEncDataEnsureEncProperties</a>
- (<font>xmlNodePtr</font> encNode,
- const <font>xmlChar</font> *id);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLENCDATAADDENCPROPERTY">xmlSecTmplEncDataAddEncProperty</a> (<font>xmlNodePtr</font> encNode,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *target);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLENCDATAENSURECIPHERVALUE">xmlSecTmplEncDataEnsureCipherValue</a> (<font>xmlNodePtr</font> encNode);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLENCDATAENSURECIPHERREFERENCE">xmlSecTmplEncDataEnsureCipherReference</a>
- (<font>xmlNodePtr</font> encNode,
- const <font>xmlChar</font> *uri);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLENCDATAGETENCMETHODNODE">xmlSecTmplEncDataGetEncMethodNode</a> (<font>xmlNodePtr</font> encNode);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLCIPHERREFERENCEADDTRANSFORM">xmlSecTmplCipherReferenceAddTransform</a>
- (<font>xmlNodePtr</font> cipherReferenceNode,
- <font>xmlSecTransformId</font> transformId);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLREFERENCELISTADDDATAREFERENCE">xmlSecTmplReferenceListAddDataReference</a>
- (<font>xmlNodePtr</font> encNode,
- const <font>xmlChar</font> *uri);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLREFERENCELISTADDKEYREFERENCE">xmlSecTmplReferenceListAddKeyReference</a>
- (<font>xmlNodePtr</font> encNode,
- const <font>xmlChar</font> *uri);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLKEYINFOADDKEYNAME">xmlSecTmplKeyInfoAddKeyName</a> (<font>xmlNodePtr</font> keyInfoNode,
- const <font>xmlChar</font> *name);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLKEYINFOADDKEYVALUE">xmlSecTmplKeyInfoAddKeyValue</a> (<font>xmlNodePtr</font> keyInfoNode);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLKEYINFOADDX509DATA">xmlSecTmplKeyInfoAddX509Data</a> (<font>xmlNodePtr</font> keyInfoNode);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLKEYINFOADDRETRIEVALMETHOD">xmlSecTmplKeyInfoAddRetrievalMethod</a> (<font>xmlNodePtr</font> keyInfoNode,
- const <font>xmlChar</font> *uri,
- const <font>xmlChar</font> *type);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLRETRIEVALMETHODADDTRANSFORM">xmlSecTmplRetrievalMethodAddTransform</a>
- (<font>xmlNodePtr</font> retrMethodNode,
- <font>xmlSecTransformId</font> transformId);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLKEYINFOADDENCRYPTEDKEY">xmlSecTmplKeyInfoAddEncryptedKey</a> (<font>xmlNodePtr</font> keyInfoNode,
- <font>xmlSecTransformId</font> encMethodId,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *type,
- const <font>xmlChar</font> *recipient);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLX509DATAADDISSUERSERIAL">xmlSecTmplX509DataAddIssuerSerial</a> (<font>xmlNodePtr</font> x509DataNode);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLX509ISSUERSERIALADDISSUERNAME">xmlSecTmplX509IssuerSerialAddIssuerName</a>
- (<font>xmlNodePtr</font> x509IssuerSerialNode,
- const <font>xmlChar</font> *issuerName);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLX509ISSUERSERIALADDSERIALNUMBER">xmlSecTmplX509IssuerSerialAddSerialNumber</a>
- (<font>xmlNodePtr</font> x509IssuerSerialNode,
- const <font>xmlChar</font> *serial);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLX509DATAADDSUBJECTNAME">xmlSecTmplX509DataAddSubjectName</a> (<font>xmlNodePtr</font> x509DataNode);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLX509DATAADDSKI">xmlSecTmplX509DataAddSKI</a> (<font>xmlNodePtr</font> x509DataNode);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLX509DATAADDCERTIFICATE">xmlSecTmplX509DataAddCertificate</a> (<font>xmlNodePtr</font> x509DataNode);
-<font>xmlNodePtr</font> <a href="xmlsec-templates.html#XMLSECTMPLX509DATAADDCRL">xmlSecTmplX509DataAddCRL</a> (<font>xmlNodePtr</font> x509DataNode);
-<font>int</font> <a href="xmlsec-templates.html#XMLSECTMPLTRANSFORMADDHMACOUTPUTLENGTH">xmlSecTmplTransformAddHmacOutputLength</a>
- (<font>xmlNodePtr</font> transformNode,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bitsLen);
-<font>int</font> <a href="xmlsec-templates.html#XMLSECTMPLTRANSFORMADDRSAOAEPPARAM">xmlSecTmplTransformAddRsaOaepParam</a> (<font>xmlNodePtr</font> transformNode,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<font>int</font> <a href="xmlsec-templates.html#XMLSECTMPLTRANSFORMADDXSLTSTYLESHEET">xmlSecTmplTransformAddXsltStylesheet</a>
- (<font>xmlNodePtr</font> transformNode,
- const <font>xmlChar</font> *xslt);
-<font>int</font> <a href="xmlsec-templates.html#XMLSECTMPLTRANSFORMADDC14NINCLNAMESPACES">xmlSecTmplTransformAddC14NInclNamespaces</a>
- (<font>xmlNodePtr</font> transformNode,
- const <font>xmlChar</font> *prefixList);
-<font>int</font> <a href="xmlsec-templates.html#XMLSECTMPLTRANSFORMADDXPATH">xmlSecTmplTransformAddXPath</a> (<font>xmlNodePtr</font> transformNode,
- const <font>xmlChar</font> *expression,
- const <font>xmlChar</font> **nsList);
-<font>int</font> <a href="xmlsec-templates.html#XMLSECTMPLTRANSFORMADDXPATH2">xmlSecTmplTransformAddXPath2</a> (<font>xmlNodePtr</font> transformNode,
- const <font>xmlChar</font> *type,
- const <font>xmlChar</font> *expression,
- const <font>xmlChar</font> **nsList);
-<font>int</font> <a href="xmlsec-templates.html#XMLSECTMPLTRANSFORMADDXPOINTER">xmlSecTmplTransformAddXPointer</a> (<font>xmlNodePtr</font> transformNode,
- const <font>xmlChar</font> *expression,
- const <font>xmlChar</font> **nsList);</pre>
-</div>
-<div class="REFSECT1">
-<a name="XMLSEC-TEMPLATES.DESCRIPTION"></a><h2>Description</h2>
-<p>Dynamic templates creation functions.</p>
-</div>
+<a name="AEN16905"></a><h2>Name</h2>templates -- Dynamic templates creation functions.</div>
<div class="REFSECT1">
-<a name="XMLSEC-TEMPLATES.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECTMPLSIGNATURECREATE"></a><h3>xmlSecTmplSignatureCreate ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplSignatureCreate (<font>xmlDocPtr</font> doc,
- <font>xmlSecTransformId</font> c14nMethodId,
- <font>xmlSecTransformId</font> signMethodId,
- const <font>xmlChar</font> *id);</pre>
-<p>Creates new <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node with the mandatory <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignedInfo" target="_top"><dsig:SignedInfo/></a>,
-<a href="http://www.w3.org/TR/xmldsig-core/#sec-CanonicalizationMethod" target="_top"><dsig:CanonicalizationMethod/></a>, <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignatureMethod" target="_top"><dsig:SignatureMethod/></a> and
-<a href="http://www.w3.org/TR/xmldsig-core/#sec-SignatureValue" target="_top"><dsig:SignatureValue/></a> children and sub-children.
-The application is responsible for inserting the returned node
-in the XML document.</p>
-<p></p>
+<a name="XMLSEC-TEMPLATES.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN16910"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12664"><span style="white-space: nowrap"><code class="PARAMETER">doc</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to signature document or NULL; in the
- second case, application must later call <code class="PARAMETER">xmlSetTreeDoc</code>
- to ensure that all the children nodes have correct
- pointer to XML document.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLSIGNATURECREATE">xmlSecTmplSignatureCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12670"><span style="white-space: nowrap"><code class="PARAMETER">c14nMethodId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the signature canonicalization method.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLSIGNATURECREATENSPREF">xmlSecTmplSignatureCreateNsPref</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12675"><span style="white-space: nowrap"><code class="PARAMETER">signMethodId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the signature method.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLSIGNATUREENSUREKEYINFO">xmlSecTmplSignatureEnsureKeyInfo</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12680"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the node id (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLSIGNATUREADDREFERENCE">xmlSecTmplSignatureAddReference</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12685"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node or NULL if an
-error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLSIGNATUREADDOBJECT">xmlSecTmplSignatureAddObject</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTMPLSIGNATURECREATENSPREF"></a><h3>xmlSecTmplSignatureCreateNsPref ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplSignatureCreateNsPref (<font>xmlDocPtr</font> doc,
- <font>xmlSecTransformId</font> c14nMethodId,
- <font>xmlSecTransformId</font> signMethodId,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *nsPrefix);</pre>
-<p>Creates new <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node with the mandatory
-<a href="http://www.w3.org/TR/xmldsig-core/#sec-SignedInfo" target="_top"><dsig:SignedInfo/></a>, <a href="http://www.w3.org/TR/xmldsig-core/#sec-CanonicalizationMethod" target="_top"><dsig:CanonicalizationMethod/></a>,
-<a href="http://www.w3.org/TR/xmldsig-core/#sec-SignatureMethod" target="_top"><dsig:SignatureMethod/></a> and <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignatureValue" target="_top"><dsig:SignatureValue/></a> children and
-sub-children. This method differs from xmlSecTmplSignatureCreate in
-that it will define the http://www.w3.org/2000/09/xmldsig#
-namespace with the given prefix that will be used for all of the
-appropriate child nodes. The application is responsible for
-inserting the returned node in the XML document.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12710"><span style="white-space: nowrap"><code class="PARAMETER">doc</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to signature document or NULL; in the
- second case, application must later call <code class="PARAMETER">xmlSetTreeDoc</code>
- to ensure that all the children nodes have correct
- pointer to XML document.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLSIGNATUREGETSIGNMETHODNODE">xmlSecTmplSignatureGetSignMethodNode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12716"><span style="white-space: nowrap"><code class="PARAMETER">c14nMethodId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the signature canonicalization method.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLSIGNATUREGETC14NMETHODNODE">xmlSecTmplSignatureGetC14NMethodNode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12721"><span style="white-space: nowrap"><code class="PARAMETER">signMethodId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the signature method.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLREFERENCEADDTRANSFORM">xmlSecTmplReferenceAddTransform</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12726"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the node id (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLOBJECTADDSIGNPROPERTIES">xmlSecTmplObjectAddSignProperties</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12731"><span style="white-space: nowrap"><code class="PARAMETER">nsPrefix</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the namespace prefix for the signature element (e.g. "dsig"), or NULL</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLOBJECTADDMANIFEST">xmlSecTmplObjectAddManifest</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12736"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node or NULL if an
-error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLMANIFESTADDREFERENCE">xmlSecTmplManifestAddReference</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTMPLSIGNATUREENSUREKEYINFO"></a><h3>xmlSecTmplSignatureEnsureKeyInfo ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplSignatureEnsureKeyInfo (<font>xmlNodePtr</font> signNode,
- const <font>xmlChar</font> *id);</pre>
-<p>Adds (if necessary) <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a>
-node <code class="PARAMETER">signNode</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12756"><span style="white-space: nowrap"><code class="PARAMETER">signNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLENCDATACREATE">xmlSecTmplEncDataCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12762"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the node id (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLENCDATAENSUREKEYINFO">xmlSecTmplEncDataEnsureKeyInfo</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12767"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node or NULL if an
-error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLENCDATAENSUREENCPROPERTIES">xmlSecTmplEncDataEnsureEncProperties</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTMPLSIGNATUREADDREFERENCE"></a><h3>xmlSecTmplSignatureAddReference ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplSignatureAddReference (<font>xmlNodePtr</font> signNode,
- <font>xmlSecTransformId</font> digestMethodId,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *uri,
- const <font>xmlChar</font> *type);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node with given URI (<code class="PARAMETER">uri</code>), Id (<code class="PARAMETER">id</code>) and
-Type (<code class="PARAMETER">type</code>) attributes and the required children <a href="http://www.w3.org/TR/xmldsig-core/#sec-DigestMethod" target="_top"><dsig:DigestMethod/></a> and
-<a href="http://www.w3.org/TR/xmldsig-core/#sec-DigestValue" target="_top"><dsig:DigestValue/></a> to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignedInfo" target="_top"><dsig:SignedInfo/></a> child of <code class="PARAMETER">signNode</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12795"><span style="white-space: nowrap"><code class="PARAMETER">signNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLENCDATAADDENCPROPERTY">xmlSecTmplEncDataAddEncProperty</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12801"><span style="white-space: nowrap"><code class="PARAMETER">digestMethodId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the reference digest method.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLENCDATAENSURECIPHERVALUE">xmlSecTmplEncDataEnsureCipherValue</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12806"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the node id (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLENCDATAENSURECIPHERREFERENCE">xmlSecTmplEncDataEnsureCipherReference</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12811"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the reference node uri (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLENCDATAGETENCMETHODNODE">xmlSecTmplEncDataGetEncMethodNode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12816"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the reference node type (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLCIPHERREFERENCEADDTRANSFORM">xmlSecTmplCipherReferenceAddTransform</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12821"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node or NULL
-if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLREFERENCELISTADDDATAREFERENCE">xmlSecTmplReferenceListAddDataReference</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTMPLSIGNATUREADDOBJECT"></a><h3>xmlSecTmplSignatureAddObject ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplSignatureAddObject (<font>xmlNodePtr</font> signNode,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *mimeType,
- const <font>xmlChar</font> *encoding);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-Object" target="_top"><dsig:Object/></a> node to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node <code class="PARAMETER">signNode</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12843"><span style="white-space: nowrap"><code class="PARAMETER">signNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLREFERENCELISTADDKEYREFERENCE">xmlSecTmplReferenceListAddKeyReference</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12849"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the node id (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLKEYINFOADDKEYNAME">xmlSecTmplKeyInfoAddKeyName</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12854"><span style="white-space: nowrap"><code class="PARAMETER">mimeType</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the object mime type (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLKEYINFOADDKEYVALUE">xmlSecTmplKeyInfoAddKeyValue</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12859"><span style="white-space: nowrap"><code class="PARAMETER">encoding</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the object encoding (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLKEYINFOADDX509DATA">xmlSecTmplKeyInfoAddX509Data</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12864"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-Object" target="_top"><dsig:Object/></a> node or NULL
-if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLKEYINFOADDRETRIEVALMETHOD">xmlSecTmplKeyInfoAddRetrievalMethod</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTMPLSIGNATUREGETSIGNMETHODNODE"></a><h3>xmlSecTmplSignatureGetSignMethodNode ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplSignatureGetSignMethodNode
- (<font>xmlNodePtr</font> signNode);</pre>
-<p>Gets pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignatureMethod" target="_top"><dsig:SignatureMethod/></a> child of <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12882"><span style="white-space: nowrap"><code class="PARAMETER">signNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature%20" target="_top"><dsig:Signature /></a> node.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLRETRIEVALMETHODADDTRANSFORM">xmlSecTmplRetrievalMethodAddTransform</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12888"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignatureMethod%20" target="_top"><dsig:SignatureMethod /></a> node or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLKEYINFOADDENCRYPTEDKEY">xmlSecTmplKeyInfoAddEncryptedKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTMPLSIGNATUREGETC14NMETHODNODE"></a><h3>xmlSecTmplSignatureGetC14NMethodNode ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplSignatureGetC14NMethodNode
- (<font>xmlNodePtr</font> signNode);</pre>
-<p>Gets pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-CanonicalizationMethod" target="_top"><dsig:CanonicalizationMethod/></a> child of <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12906"><span style="white-space: nowrap"><code class="PARAMETER">signNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature%20" target="_top"><dsig:Signature /></a> node.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLX509DATAADDISSUERSERIAL">xmlSecTmplX509DataAddIssuerSerial</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12912"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-CanonicalizationMethod%20" target="_top"><dsig:CanonicalizationMethod /></a> node or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLX509ISSUERSERIALADDISSUERNAME">xmlSecTmplX509IssuerSerialAddIssuerName</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTMPLREFERENCEADDTRANSFORM"></a><h3>xmlSecTmplReferenceAddTransform ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplReferenceAddTransform (<font>xmlNodePtr</font> referenceNode,
- <font>xmlSecTransformId</font> transformId);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node <code class="PARAMETER">referenceNode</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12932"><span style="white-space: nowrap"><code class="PARAMETER">referenceNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLX509ISSUERSERIALADDSERIALNUMBER">xmlSecTmplX509IssuerSerialAddSerialNumber</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12938"><span style="white-space: nowrap"><code class="PARAMETER">transformId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform method id.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLX509DATAADDSUBJECTNAME">xmlSecTmplX509DataAddSubjectName</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12943"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node or NULL if an
-error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLX509DATAADDSKI">xmlSecTmplX509DataAddSKI</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTMPLOBJECTADDSIGNPROPERTIES"></a><h3>xmlSecTmplObjectAddSignProperties ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplObjectAddSignProperties (<font>xmlNodePtr</font> objectNode,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *target);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignatureProperties" target="_top"><dsig:SignatureProperties/></a> node to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Object" target="_top"><dsig:Object/></a> node <code class="PARAMETER">objectNode</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12964"><span style="white-space: nowrap"><code class="PARAMETER">objectNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Object" target="_top"><dsig:Object/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLX509DATAADDCERTIFICATE">xmlSecTmplX509DataAddCertificate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12970"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the node id (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLX509DATAADDCRL">xmlSecTmplX509DataAddCRL</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12975"><span style="white-space: nowrap"><code class="PARAMETER">target</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Target (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLTRANSFORMADDHMACOUTPUTLENGTH">xmlSecTmplTransformAddHmacOutputLength</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN12980"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignatureProperties" target="_top"><dsig:SignatureProperties/></a> node or NULL
-if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLTRANSFORMADDRSAOAEPPARAM">xmlSecTmplTransformAddRsaOaepParam</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTMPLOBJECTADDMANIFEST"></a><h3>xmlSecTmplObjectAddManifest ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplObjectAddManifest (<font>xmlNodePtr</font> objectNode,
- const <font>xmlChar</font> *id);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-Manifest" target="_top"><dsig:Manifest/></a> node to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Object" target="_top"><dsig:Object/></a> node <code class="PARAMETER">objectNode</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13000"><span style="white-space: nowrap"><code class="PARAMETER">objectNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Object" target="_top"><dsig:Object/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLTRANSFORMADDXSLTSTYLESHEET">xmlSecTmplTransformAddXsltStylesheet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13006"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the node id (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLTRANSFORMADDC14NINCLNAMESPACES">xmlSecTmplTransformAddC14NInclNamespaces</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13011"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-Manifest" target="_top"><dsig:Manifest/></a> node or NULL
-if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLTRANSFORMADDXPATH">xmlSecTmplTransformAddXPath</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTMPLMANIFESTADDREFERENCE"></a><h3>xmlSecTmplManifestAddReference ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplManifestAddReference (<font>xmlNodePtr</font> manifestNode,
- <font>xmlSecTransformId</font> digestMethodId,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *uri,
- const <font>xmlChar</font> *type);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node with specified URI (<code class="PARAMETER">uri</code>), Id (<code class="PARAMETER">id</code>) and
-Type (<code class="PARAMETER">type</code>) attributes and the required children <a href="http://www.w3.org/TR/xmldsig-core/#sec-DigestMethod" target="_top"><dsig:DigestMethod/></a> and
-<a href="http://www.w3.org/TR/xmldsig-core/#sec-DigestValue" target="_top"><dsig:DigestValue/></a> to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Manifest" target="_top"><dsig:Manifest/></a> node <code class="PARAMETER">manifestNode</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13039"><span style="white-space: nowrap"><code class="PARAMETER">manifestNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Manifest" target="_top"><dsig:Manifest/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLTRANSFORMADDXPATH2">xmlSecTmplTransformAddXPath2</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13045"><span style="white-space: nowrap"><code class="PARAMETER">digestMethodId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the reference digest method.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-templates.html#XMLSECTMPLTRANSFORMADDXPOINTER">xmlSecTmplTransformAddXPointer</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-TEMPLATES.DESCRIPTION"></a><h2>Description</h2>
+<p>Dynamic templates creation functions.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-TEMPLATES.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
+<div class="REFSECT2">
+<a name="XMLSECTMPLSIGNATURECREATE"></a><h3>xmlSecTmplSignatureCreate ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplSignatureCreate (<code class="PARAMETER"><font><span class="TYPE">xmlDocPtr</span></font> doc</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> c14nMethodId</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> signMethodId</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *id</code>);</pre>
+<p>Creates new <dsig:Signature/> node with the mandatory <dsig:SignedInfo/>,
+<dsig:CanonicalizationMethod/>, <dsig:SignatureMethod/> and
+<dsig:SignatureValue/> children and sub-children.
+The application is responsible for inserting the returned node
+in the XML document.</p>
+<div class="REFSECT3">
+<a name="AEN17225"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17227"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13050"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the node id (may be NULL).</p></td>
+<td><p>doc</p></td>
+<td><p>the pointer to signature document or NULL; in the
+second case, application must later call <code class="PARAMETER">xmlSetTreeDoc</code>
+to ensure that all the children nodes have correct
+pointer to XML document.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13055"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the reference node uri (may be NULL).</p></td>
+<td><p>c14nMethodId</p></td>
+<td><p>the signature canonicalization method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13060"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the reference node type (may be NULL).</p></td>
+<td><p>signMethodId</p></td>
+<td><p>the signature method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13065"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node or NULL
-if an error occurs.</p></td>
+<td><p>id</p></td>
+<td><p>the node id (may be NULL).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17255"></a><h4>Returns</h4>
+<p> the pointer to newly created <dsig:Signature/> node or NULL if an
+error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLENCDATACREATE"></a><h3>xmlSecTmplEncDataCreate ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplEncDataCreate (<font>xmlDocPtr</font> doc,
- <font>xmlSecTransformId</font> encMethodId,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *type,
- const <font>xmlChar</font> *mimeType,
- const <font>xmlChar</font> *encoding);</pre>
-<p>Creates new <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData%20" target="_top"><enc:EncryptedData /></a> node for encryption template.</p>
-<p></p>
+<a name="XMLSECTMPLSIGNATURECREATENSPREF"></a><h3>xmlSecTmplSignatureCreateNsPref ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplSignatureCreateNsPref (<code class="PARAMETER"><font><span class="TYPE">xmlDocPtr</span></font> doc</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> c14nMethodId</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> signMethodId</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *id</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *nsPrefix</code>);</pre>
+<p>Creates new <dsig:Signature/> node with the mandatory
+<dsig:SignedInfo/>, <dsig:CanonicalizationMethod/>,
+<dsig:SignatureMethod/> and <dsig:SignatureValue/> children and
+sub-children. This method differs from xmlSecTmplSignatureCreate in
+that it will define the http://www.w3.org/2000/09/xmldsig#
+namespace with the given prefix that will be used for all of the
+appropriate child nodes. The application is responsible for
+inserting the returned node in the XML document.</p>
+<div class="REFSECT3">
+<a name="AEN17281"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13087"><span style="white-space: nowrap"><code class="PARAMETER">doc</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to signature document or NULL; in the later
- case, application must later call <code class="PARAMETER">xmlSetTreeDoc</code> to ensure
- that all the children nodes have correct pointer to XML document.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13093"><span style="white-space: nowrap"><code class="PARAMETER">encMethodId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the encryption method (may be NULL).</p></td>
-</tr>
+<a name="AEN17283"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13098"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Id attribute (optional).</p></td>
+<td><p>doc</p></td>
+<td><p>the pointer to signature document or NULL; in the
+second case, application must later call <code class="PARAMETER">xmlSetTreeDoc</code>
+to ensure that all the children nodes have correct
+pointer to XML document.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13103"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Type attribute (optional)</p></td>
+<td><p>c14nMethodId</p></td>
+<td><p>the signature canonicalization method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13108"><span style="white-space: nowrap"><code class="PARAMETER">mimeType</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the MimeType attribute (optional)</p></td>
+<td><p>signMethodId</p></td>
+<td><p>the signature method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13113"><span style="white-space: nowrap"><code class="PARAMETER">encoding</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Encoding attribute (optional)</p></td>
+<td><p>id</p></td>
+<td><p>the node id (may be NULL).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13118"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer newly created <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> node or NULL
-if an error occurs.</p></td>
+<td><p>nsPrefix</p></td>
+<td><p>the namespace prefix for the signature element (e.g. "dsig"), or NULL</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17317"></a><h4>Returns</h4>
+<p> the pointer to newly created <dsig:Signature/> node or NULL if an
+error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLENCDATAENSUREKEYINFO"></a><h3>xmlSecTmplEncDataEnsureKeyInfo ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplEncDataEnsureKeyInfo (<font>xmlNodePtr</font> encNode,
- const <font>xmlChar</font> *id);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> to the <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> node <code class="PARAMETER">encNode</code>.</p>
-<p></p>
+<a name="XMLSECTMPLSIGNATUREENSUREKEYINFO"></a><h3>xmlSecTmplSignatureEnsureKeyInfo ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplSignatureEnsureKeyInfo (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> signNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *id</code>);</pre>
+<p>Adds (if necessary) <dsig:KeyInfo/> node to the <dsig:Signature/>
+node <code class="PARAMETER">signNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN17335"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17337"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>signNode</p></td>
+<td><p>the pointer to <dsig:Signature/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>id</p></td>
+<td><p>the node id (may be NULL).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13138"><span style="white-space: nowrap"><code class="PARAMETER">encNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13144"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Id attrbibute (optional).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13149"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17352"></a><h4>Returns</h4>
+<p> the pointer to newly created <dsig:KeyInfo/> node or NULL if an
+error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLENCDATAENSUREENCPROPERTIES"></a><h3>xmlSecTmplEncDataEnsureEncProperties ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplEncDataEnsureEncProperties
- (<font>xmlNodePtr</font> encNode,
- const <font>xmlChar</font> *id);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptionProperties" target="_top"><enc:EncryptionProperties/></a> node to the <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a>
-node <code class="PARAMETER">encNode</code>.</p>
-<p></p>
+<a name="XMLSECTMPLSIGNATUREADDREFERENCE"></a><h3>xmlSecTmplSignatureAddReference ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplSignatureAddReference (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> signNode</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> digestMethodId</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *id</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *uri</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *type</code>);</pre>
+<p>Adds <dsig:Reference/> node with given URI (<code class="PARAMETER">uri</code>
+), Id (<code class="PARAMETER">id</code>
+) and
+Type (<code class="PARAMETER">type</code>
+) attributes and the required children <dsig:DigestMethod/> and
+<dsig:DigestValue/> to the <dsig:SignedInfo/> child of <code class="PARAMETER">signNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN17382"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17384"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>signNode</p></td>
+<td><p>the pointer to <dsig:Signature/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>digestMethodId</p></td>
+<td><p>the reference digest method.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>id</p></td>
+<td><p>the node id (may be NULL).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>uri</p></td>
+<td><p>the reference node uri (may be NULL).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>type</p></td>
+<td><p>the reference node type (may be NULL).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13169"><span style="white-space: nowrap"><code class="PARAMETER">encNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13175"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Id attribute (optional).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13180"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptionProperties" target="_top"><enc:EncryptionProperties/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17417"></a><h4>Returns</h4>
+<p> the pointer to newly created <dsig:Reference/> node or NULL
+if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLENCDATAADDENCPROPERTY"></a><h3>xmlSecTmplEncDataAddEncProperty ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplEncDataAddEncProperty (<font>xmlNodePtr</font> encNode,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *target);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptionProperty" target="_top"><enc:EncryptionProperty/></a> node (and the parent
-<a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptionProperties" target="_top"><enc:EncryptionProperties/></a> node if required) to the
-<a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> node <code class="PARAMETER">encNode</code>.</p>
-<p></p>
+<a name="XMLSECTMPLSIGNATUREADDOBJECT"></a><h3>xmlSecTmplSignatureAddObject ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplSignatureAddObject (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> signNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *id</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *mimeType</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *encoding</code>);</pre>
+<p>Adds <dsig:Object/> node to the <dsig:Signature/> node <code class="PARAMETER">signNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN17441"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN17443"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13202"><span style="white-space: nowrap"><code class="PARAMETER">encNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> node.</p></td>
+<td><p>signNode</p></td>
+<td><p>the pointer to <dsig:Signature/> node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13208"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Id attribute (optional).</p></td>
+<td><p>id</p></td>
+<td><p>the node id (may be NULL).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13213"><span style="white-space: nowrap"><code class="PARAMETER">target</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Target attribute (optional).</p></td>
+<td><p>mimeType</p></td>
+<td><p>the object mime type (may be NULL).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13218"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptionProperty" target="_top"><enc:EncryptionProperty/></a> node or
-NULL if an error occurs.</p></td>
+<td><p>encoding</p></td>
+<td><p>the object encoding (may be NULL).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17470"></a><h4>Returns</h4>
+<p> the pointer to newly created <dsig:Object/> node or NULL
+if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLENCDATAENSURECIPHERVALUE"></a><h3>xmlSecTmplEncDataEnsureCipherValue ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplEncDataEnsureCipherValue (<font>xmlNodePtr</font> encNode);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmlenc-core/#sec-CipherValue" target="_top"><enc:CipherValue/></a> to the <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> node <code class="PARAMETER">encNode</code>.</p>
+<a name="XMLSECTMPLSIGNATUREGETSIGNMETHODNODE"></a><h3>xmlSecTmplSignatureGetSignMethodNode ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplSignatureGetSignMethodNode (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> signNode</code>);</pre>
+<p>Gets pointer to <dsig:SignatureMethod/> child of <dsig:KeyInfo/> node.</p>
+<div class="REFSECT3">
+<a name="AEN17484"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17486"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>signNode</p></td>
+<td><p>the pointer to <dsig:Signature /> node.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17495"></a><h4>Returns</h4>
+<p> pointer to <dsig:SignatureMethod /> node or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTMPLSIGNATUREGETC14NMETHODNODE"></a><h3>xmlSecTmplSignatureGetC14NMethodNode ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplSignatureGetC14NMethodNode (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> signNode</code>);</pre>
+<p>Gets pointer to <dsig:CanonicalizationMethod/> child of <dsig:KeyInfo/> node.</p>
+<div class="REFSECT3">
+<a name="AEN17509"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17511"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>signNode</p></td>
+<td><p>the pointer to <dsig:Signature /> node.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13237"><span style="white-space: nowrap"><code class="PARAMETER">encNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13243"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmlenc-core/#sec-CipherValue" target="_top"><enc:CipherValue/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17520"></a><h4>Returns</h4>
+<p> pointer to <dsig:CanonicalizationMethod /> node or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLENCDATAENSURECIPHERREFERENCE"></a><h3>xmlSecTmplEncDataEnsureCipherReference ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplEncDataEnsureCipherReference
- (<font>xmlNodePtr</font> encNode,
- const <font>xmlChar</font> *uri);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmlenc-core/#sec-CipherReference" target="_top"><enc:CipherReference/></a> node with specified URI attribute <code class="PARAMETER">uri</code>
-to the <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> node <code class="PARAMETER">encNode</code>.</p>
+<a name="XMLSECTMPLREFERENCEADDTRANSFORM"></a><h3>xmlSecTmplReferenceAddTransform ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplReferenceAddTransform (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> referenceNode</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> transformId</code>);</pre>
+<p>Adds <dsig:Transform/> node to the <dsig:Reference/> node <code class="PARAMETER">referenceNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN17538"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17540"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>referenceNode</p></td>
+<td><p>the pointer to <dsig:Reference/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformId</p></td>
+<td><p>the transform method id.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17555"></a><h4>Returns</h4>
+<p> the pointer to newly created <dsig:Transform/> node or NULL if an
+error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTMPLOBJECTADDSIGNPROPERTIES"></a><h3>xmlSecTmplObjectAddSignProperties ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplObjectAddSignProperties (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> objectNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *id</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *target</code>);</pre>
+<p>Adds <dsig:SignatureProperties/> node to the <dsig:Object/> node <code class="PARAMETER">objectNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN17576"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN17578"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13264"><span style="white-space: nowrap"><code class="PARAMETER">encNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> node.</p></td>
+<td><p>objectNode</p></td>
+<td><p>the pointer to <dsig:Object/> node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13270"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the URI attribute (may be NULL).</p></td>
+<td><p>id</p></td>
+<td><p>the node id (may be NULL).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13275"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmlenc-core/#sec-CipherReference" target="_top"><enc:CipherReference/></a> node or
-NULL if an error occurs.</p></td>
+<td><p>target</p></td>
+<td><p>the Target (may be NULL).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17599"></a><h4>Returns</h4>
+<p> the pointer to newly created <dsig:SignatureProperties/> node or NULL
+if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLENCDATAGETENCMETHODNODE"></a><h3>xmlSecTmplEncDataGetEncMethodNode ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplEncDataGetEncMethodNode (<font>xmlNodePtr</font> encNode);</pre>
-<p>Gets pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncrytpionMethod" target="_top"><enc:EncrytpionMethod/></a> node.</p>
-<p></p>
+<a name="XMLSECTMPLOBJECTADDMANIFEST"></a><h3>xmlSecTmplObjectAddManifest ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplObjectAddManifest (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> objectNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *id</code>);</pre>
+<p>Adds <dsig:Manifest/> node to the <dsig:Object/> node <code class="PARAMETER">objectNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN17617"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17619"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>objectNode</p></td>
+<td><p>the pointer to <dsig:Object/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>id</p></td>
+<td><p>the node id (may be NULL).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13292"><span style="white-space: nowrap"><code class="PARAMETER">encNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EcnryptedData%20" target="_top"><enc:EcnryptedData /></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13298"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptionMethod%20" target="_top"><enc:EncryptionMethod /></a> node or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17634"></a><h4>Returns</h4>
+<p> the pointer to newly created <dsig:Manifest/> node or NULL
+if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLCIPHERREFERENCEADDTRANSFORM"></a><h3>xmlSecTmplCipherReferenceAddTransform ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplCipherReferenceAddTransform
- (<font>xmlNodePtr</font> cipherReferenceNode,
- <font>xmlSecTransformId</font> transformId);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node (and the parent <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transforms" target="_top"><dsig:Transforms/></a> node)
-with specified transform methods <code class="PARAMETER">transform</code> to the <a href="http://www.w3.org/TR/xmlenc-core/#sec-CipherReference" target="_top"><enc:CipherReference/></a>
-child node of the <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> node <code class="PARAMETER">encNode</code>.</p>
+<a name="XMLSECTMPLMANIFESTADDREFERENCE"></a><h3>xmlSecTmplManifestAddReference ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplManifestAddReference (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> manifestNode</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> digestMethodId</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *id</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *uri</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *type</code>);</pre>
+<p>Adds <dsig:Reference/> node with specified URI (<code class="PARAMETER">uri</code>
+), Id (<code class="PARAMETER">id</code>
+) and
+Type (<code class="PARAMETER">type</code>
+) attributes and the required children <dsig:DigestMethod/> and
+<dsig:DigestValue/> to the <dsig:Manifest/> node <code class="PARAMETER">manifestNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN17664"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17666"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>manifestNode</p></td>
+<td><p>the pointer to <dsig:Manifest/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>digestMethodId</p></td>
+<td><p>the reference digest method.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>id</p></td>
+<td><p>the node id (may be NULL).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>uri</p></td>
+<td><p>the reference node uri (may be NULL).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>type</p></td>
+<td><p>the reference node type (may be NULL).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17699"></a><h4>Returns</h4>
+<p> the pointer to newly created <dsig:Reference/> node or NULL
+if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTMPLENCDATACREATE"></a><h3>xmlSecTmplEncDataCreate ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplEncDataCreate (<code class="PARAMETER"><font><span class="TYPE">xmlDocPtr</span></font> doc</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> encMethodId</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *id</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *type</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *mimeType</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *encoding</code>);</pre>
+<p>Creates new <enc:EncryptedData /> node for encryption template.</p>
+<div class="REFSECT3">
+<a name="AEN17728"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN17730"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13321"><span style="white-space: nowrap"><code class="PARAMETER">cipherReferenceNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-CipherReference" target="_top"><enc:CipherReference/></a> node.</p></td>
+<td><p>doc</p></td>
+<td><p>the pointer to signature document or NULL; in the later
+case, application must later call <code class="PARAMETER">xmlSetTreeDoc</code>
+to ensure
+that all the children nodes have correct pointer to XML document.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13327"><span style="white-space: nowrap"><code class="PARAMETER">transformId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform id.</p></td>
+<td><p>encMethodId</p></td>
+<td><p>the encryption method (may be NULL).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13332"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node or
-NULL if an error occurs.</p></td>
+<td><p>id</p></td>
+<td><p>the Id attribute (optional).</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTMPLREFERENCELISTADDDATAREFERENCE"></a><h3>xmlSecTmplReferenceListAddDataReference ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplReferenceListAddDataReference
- (<font>xmlNodePtr</font> encNode,
- const <font>xmlChar</font> *uri);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmlenc-core/#sec-DataReference" target="_top"><enc:DataReference/></a> and the parent <a href="http://www.w3.org/TR/xmlenc-core/#sec-ReferenceList" target="_top"><enc:ReferenceList/></a> node (if needed).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13351"><span style="white-space: nowrap"><code class="PARAMETER">encNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> node.</p></td>
+<td><p>type</p></td>
+<td><p>the Type attribute (optional)</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13357"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> uri to reference (optional)</p></td>
+<td><p>mimeType</p></td>
+<td><p>the MimeType attribute (optional)</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13362"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmlenc-core/#sec-DataReference" target="_top"><enc:DataReference/></a> node or
-NULL if an error occurs.</p></td>
+<td><p>encoding</p></td>
+<td><p>the Encoding attribute (optional)</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17770"></a><h4>Returns</h4>
+<p> the pointer newly created <enc:EncryptedData/> node or NULL
+if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLREFERENCELISTADDKEYREFERENCE"></a><h3>xmlSecTmplReferenceListAddKeyReference ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplReferenceListAddKeyReference
- (<font>xmlNodePtr</font> encNode,
- const <font>xmlChar</font> *uri);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmlenc-core/#sec-KeyReference" target="_top"><enc:KeyReference/></a> and the parent <a href="http://www.w3.org/TR/xmlenc-core/#sec-ReferenceList" target="_top"><enc:ReferenceList/></a> node (if needed).</p>
+<a name="XMLSECTMPLENCDATAENSUREKEYINFO"></a><h3>xmlSecTmplEncDataEnsureKeyInfo ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplEncDataEnsureKeyInfo (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> encNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *id</code>);</pre>
+<p>Adds <dsig:KeyInfo/> to the <enc:EncryptedData/> node <code class="PARAMETER">encNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN17788"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17790"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>encNode</p></td>
+<td><p>the pointer to <enc:EncryptedData/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>id</p></td>
+<td><p>the Id attrbibute (optional).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17805"></a><h4>Returns</h4>
+<p> the pointer to newly created <dsig:KeyInfo/> node or
+NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTMPLENCDATAENSUREENCPROPERTIES"></a><h3>xmlSecTmplEncDataEnsureEncProperties ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplEncDataEnsureEncProperties (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> encNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *id</code>);</pre>
+<p>Adds <enc:EncryptionProperties/> node to the <enc:EncryptedData/>
+node <code class="PARAMETER">encNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN17823"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17825"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>encNode</p></td>
+<td><p>the pointer to <enc:EncryptedData/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>id</p></td>
+<td><p>the Id attribute (optional).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13381"><span style="white-space: nowrap"><code class="PARAMETER">encNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13387"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> uri to reference (optional)</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13392"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to newly created <a href="http://www.w3.org/TR/xmlenc-core/#sec-KeyReference" target="_top"><enc:KeyReference/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17840"></a><h4>Returns</h4>
+<p> the pointer to newly created <enc:EncryptionProperties/> node or
+NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLKEYINFOADDKEYNAME"></a><h3>xmlSecTmplKeyInfoAddKeyName ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplKeyInfoAddKeyName (<font>xmlNodePtr</font> keyInfoNode,
- const <font>xmlChar</font> *name);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName" target="_top"><dsig:KeyName/></a> node to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node <code class="PARAMETER">keyInfoNode</code>.</p>
+<a name="XMLSECTMPLENCDATAADDENCPROPERTY"></a><h3>xmlSecTmplEncDataAddEncProperty ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplEncDataAddEncProperty (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> encNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *id</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *target</code>);</pre>
+<p>Adds <enc:EncryptionProperty/> node (and the parent
+<enc:EncryptionProperties/> node if required) to the
+<enc:EncryptedData/> node <code class="PARAMETER">encNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN17861"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17863"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>encNode</p></td>
+<td><p>the pointer to <enc:EncryptedData/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>id</p></td>
+<td><p>the Id attribute (optional).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>target</p></td>
+<td><p>the Target attribute (optional).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17884"></a><h4>Returns</h4>
+<p> the pointer to newly created <enc:EncryptionProperty/> node or
+NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTMPLENCDATAENSURECIPHERVALUE"></a><h3>xmlSecTmplEncDataEnsureCipherValue ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplEncDataEnsureCipherValue (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> encNode</code>);</pre>
+<p>Adds <enc:CipherValue/> to the <enc:EncryptedData/> node <code class="PARAMETER">encNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN17899"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17901"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>encNode</p></td>
+<td><p>the pointer to <enc:EncryptedData/> node.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13412"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13418"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the key name (optional).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13423"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyName" target="_top"><dsig:KeyName/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17910"></a><h4>Returns</h4>
+<p> the pointer to newly created <enc:CipherValue/> node or
+NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLKEYINFOADDKEYVALUE"></a><h3>xmlSecTmplKeyInfoAddKeyValue ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplKeyInfoAddKeyValue (<font>xmlNodePtr</font> keyInfoNode);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue" target="_top"><dsig:KeyValue/></a> node to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node <code class="PARAMETER">keyInfoNode</code>.</p>
+<a name="XMLSECTMPLENCDATAENSURECIPHERREFERENCE"></a><h3>xmlSecTmplEncDataEnsureCipherReference ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplEncDataEnsureCipherReference
+ (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> encNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *uri</code>);</pre>
+<p>Adds <enc:CipherReference/> node with specified URI attribute <code class="PARAMETER">uri</code>
+
+to the <enc:EncryptedData/> node <code class="PARAMETER">encNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN17929"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17931"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>encNode</p></td>
+<td><p>the pointer to <enc:EncryptedData/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>uri</p></td>
+<td><p>the URI attribute (may be NULL).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17946"></a><h4>Returns</h4>
+<p> the pointer to newly created <enc:CipherReference/> node or
+NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTMPLENCDATAGETENCMETHODNODE"></a><h3>xmlSecTmplEncDataGetEncMethodNode ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplEncDataGetEncMethodNode (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> encNode</code>);</pre>
+<p>Gets pointer to <enc:EncrytpionMethod/> node.</p>
+<div class="REFSECT3">
+<a name="AEN17960"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17962"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>encNode</p></td>
+<td><p>the pointer to <enc:EcnryptedData /> node.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13442"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13448"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyValue" target="_top"><dsig:KeyValue/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN17971"></a><h4>Returns</h4>
+<p> pointer to <enc:EncryptionMethod /> node or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLKEYINFOADDX509DATA"></a><h3>xmlSecTmplKeyInfoAddX509Data ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplKeyInfoAddX509Data (<font>xmlNodePtr</font> keyInfoNode);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node <code class="PARAMETER">keyInfoNode</code>.</p>
+<a name="XMLSECTMPLCIPHERREFERENCEADDTRANSFORM"></a><h3>xmlSecTmplCipherReferenceAddTransform ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplCipherReferenceAddTransform (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> cipherReferenceNode</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> transformId</code>);</pre>
+<p>Adds <dsig:Transform/> node (and the parent <dsig:Transforms/> node)
+with specified transform methods <code class="PARAMETER">transform</code>
+ to the <enc:CipherReference/>
+child node of the <enc:EncryptedData/> node <code class="PARAMETER">encNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN17990"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN17992"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>cipherReferenceNode</p></td>
+<td><p>the pointer to <enc:CipherReference/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformId</p></td>
+<td><p>the transform id.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18007"></a><h4>Returns</h4>
+<p> the pointer to newly created <dsig:Transform/> node or
+NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTMPLREFERENCELISTADDDATAREFERENCE"></a><h3>xmlSecTmplReferenceListAddDataReference ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplReferenceListAddDataReference
+ (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> encNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *uri</code>);</pre>
+<p>Adds <enc:DataReference/> and the parent <enc:ReferenceList/> node (if needed).</p>
+<div class="REFSECT3">
+<a name="AEN18024"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18026"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>encNode</p></td>
+<td><p>the pointer to <enc:EncryptedKey/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>uri</p></td>
+<td><p>uri to reference (optional)</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13467"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13473"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18041"></a><h4>Returns</h4>
+<p> the pointer to newly created <enc:DataReference/> node or
+NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLKEYINFOADDRETRIEVALMETHOD"></a><h3>xmlSecTmplKeyInfoAddRetrievalMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplKeyInfoAddRetrievalMethod (<font>xmlNodePtr</font> keyInfoNode,
- const <font>xmlChar</font> *uri,
- const <font>xmlChar</font> *type);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod" target="_top"><dsig:RetrievalMethod/></a> node to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node <code class="PARAMETER">keyInfoNode</code>.</p>
+<a name="XMLSECTMPLREFERENCELISTADDKEYREFERENCE"></a><h3>xmlSecTmplReferenceListAddKeyReference ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplReferenceListAddKeyReference
+ (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> encNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *uri</code>);</pre>
+<p>Adds <enc:KeyReference/> and the parent <enc:ReferenceList/> node (if needed).</p>
+<div class="REFSECT3">
+<a name="AEN18058"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18060"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>encNode</p></td>
+<td><p>the pointer to <enc:EncryptedKey/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>uri</p></td>
+<td><p>uri to reference (optional)</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18075"></a><h4>Returns</h4>
+<p> the pointer to newly created <enc:KeyReference/> node or
+NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTMPLKEYINFOADDKEYNAME"></a><h3>xmlSecTmplKeyInfoAddKeyName ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplKeyInfoAddKeyName (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> keyInfoNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>);</pre>
+<p>Adds <dsig:KeyName/> node to the <dsig:KeyInfo/> node <code class="PARAMETER">keyInfoNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18093"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18095"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>keyInfoNode</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>name</p></td>
+<td><p>the key name (optional).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13494"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13500"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the URI attribute (optional).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13505"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Type attribute(optional).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13510"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod" target="_top"><dsig:RetrievalMethod/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18110"></a><h4>Returns</h4>
+<p> the pointer to the newly created <dsig:KeyName/> node or
+NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLRETRIEVALMETHODADDTRANSFORM"></a><h3>xmlSecTmplRetrievalMethodAddTransform ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplRetrievalMethodAddTransform
- (<font>xmlNodePtr</font> retrMethodNode,
- <font>xmlSecTransformId</font> transformId);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node (and the parent <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transforms" target="_top"><dsig:Transforms/></a> node
-if required) to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod" target="_top"><dsig:RetrievalMethod/></a> node <code class="PARAMETER">retrMethod</code>.</p>
+<a name="XMLSECTMPLKEYINFOADDKEYVALUE"></a><h3>xmlSecTmplKeyInfoAddKeyValue ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplKeyInfoAddKeyValue (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> keyInfoNode</code>);</pre>
+<p>Adds <dsig:KeyValue/> node to the <dsig:KeyInfo/> node <code class="PARAMETER">keyInfoNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18125"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18127"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keyInfoNode</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> node.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18136"></a><h4>Returns</h4>
+<p> the pointer to the newly created <dsig:KeyValue/> node or
+NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTMPLKEYINFOADDX509DATA"></a><h3>xmlSecTmplKeyInfoAddX509Data ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplKeyInfoAddX509Data (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> keyInfoNode</code>);</pre>
+<p>Adds <dsig:X509Data/> node to the <dsig:KeyInfo/> node <code class="PARAMETER">keyInfoNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18151"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18153"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keyInfoNode</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> node.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18162"></a><h4>Returns</h4>
+<p> the pointer to the newly created <dsig:X509Data/> node or
+NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTMPLKEYINFOADDRETRIEVALMETHOD"></a><h3>xmlSecTmplKeyInfoAddRetrievalMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplKeyInfoAddRetrievalMethod (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> keyInfoNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *uri</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *type</code>);</pre>
+<p>Adds <dsig:RetrievalMethod/> node to the <dsig:KeyInfo/> node <code class="PARAMETER">keyInfoNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18183"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN18185"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13531"><span style="white-space: nowrap"><code class="PARAMETER">retrMethodNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-RetrievalMethod" target="_top"><dsig:RetrievalMethod/></a> node.</p></td>
+<td><p>keyInfoNode</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13537"><span style="white-space: nowrap"><code class="PARAMETER">transformId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform id.</p></td>
+<td><p>uri</p></td>
+<td><p>the URI attribute (optional).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13542"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transforms" target="_top"><dsig:Transforms/></a> node or
-NULL if an error occurs.</p></td>
+<td><p>type</p></td>
+<td><p>the Type attribute(optional).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18206"></a><h4>Returns</h4>
+<p> the pointer to the newly created <dsig:RetrievalMethod/> node or
+NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTMPLKEYINFOADDENCRYPTEDKEY"></a><h3>xmlSecTmplKeyInfoAddEncryptedKey ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplKeyInfoAddEncryptedKey (<font>xmlNodePtr</font> keyInfoNode,
- <font>xmlSecTransformId</font> encMethodId,
- const <font>xmlChar</font> *id,
- const <font>xmlChar</font> *type,
- const <font>xmlChar</font> *recipient);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> node with given attributes to
-the <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node <code class="PARAMETER">keyInfoNode</code>.</p>
+<a name="XMLSECTMPLRETRIEVALMETHODADDTRANSFORM"></a><h3>xmlSecTmplRetrievalMethodAddTransform ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplRetrievalMethodAddTransform (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> retrMethodNode</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> transformId</code>);</pre>
+<p>Adds <dsig:Transform/> node (and the parent <dsig:Transforms/> node
+if required) to the <dsig:RetrievalMethod/> node <code class="PARAMETER">retrMethod</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18224"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18226"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>retrMethodNode</p></td>
+<td><p>the pointer to <dsig:RetrievalMethod/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformId</p></td>
+<td><p>the transform id.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18241"></a><h4>Returns</h4>
+<p> the pointer to the newly created <dsig:Transforms/> node or
+NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTMPLKEYINFOADDENCRYPTEDKEY"></a><h3>xmlSecTmplKeyInfoAddEncryptedKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplKeyInfoAddEncryptedKey (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> keyInfoNode</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> encMethodId</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *id</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *type</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *recipient</code>);</pre>
+<p>Adds <enc:EncryptedKey/> node with given attributes to
+the <dsig:KeyInfo/> node <code class="PARAMETER">keyInfoNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18268"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13565"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node.</p></td>
-</tr>
+<a name="AEN18270"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13571"><span style="white-space: nowrap"><code class="PARAMETER">encMethodId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the encryption method (optional).</p></td>
+<td><p>keyInfoNode</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13576"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Id attribute (optional).</p></td>
+<td><p>encMethodId</p></td>
+<td><p>the encryption method (optional).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13581"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Type attribute (optional).</p></td>
+<td><p>id</p></td>
+<td><p>the Id attribute (optional).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13586"><span style="white-space: nowrap"><code class="PARAMETER">recipient</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Recipient attribute (optional).</p></td>
+<td><p>type</p></td>
+<td><p>the Type attribute (optional).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13591"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the newly created <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> node or
-NULL if an error occurs.</p></td>
+<td><p>recipient</p></td>
+<td><p>the Recipient attribute (optional).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18303"></a><h4>Returns</h4>
+<p> the pointer to the newly created <enc:EncryptedKey/> node or
+NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTMPLX509DATAADDISSUERSERIAL"></a><h3>xmlSecTmplX509DataAddIssuerSerial ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplX509DataAddIssuerSerial (<font>xmlNodePtr</font> x509DataNode);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509IssuerSerial" target="_top"><dsig:X509IssuerSerial/></a> node to the given <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplX509DataAddIssuerSerial (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> x509DataNode</code>);</pre>
+<p>Adds <dsig:X509IssuerSerial/> node to the given <dsig:X509Data/> node.</p>
+<div class="REFSECT3">
+<a name="AEN18317"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18319"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>x509DataNode</p></td>
+<td><p>the pointer to <dsig:X509Data/> node.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13609"><span style="white-space: nowrap"><code class="PARAMETER">x509DataNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13615"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509IssuerSerial" target="_top"><dsig:X509IssuerSerial/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18328"></a><h4>Returns</h4>
+<p> the pointer to the newly created <dsig:X509IssuerSerial/> node or
+NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTMPLX509ISSUERSERIALADDISSUERNAME"></a><h3>xmlSecTmplX509IssuerSerialAddIssuerName ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplX509IssuerSerialAddIssuerName
- (<font>xmlNodePtr</font> x509IssuerSerialNode,
- const <font>xmlChar</font> *issuerName);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509IssuerName" target="_top"><dsig:X509IssuerName/></a> node to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509IssuerSerial" target="_top"><dsig:X509IssuerSerial/></a> node <code class="PARAMETER">x509IssuerSerialNode</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplX509IssuerSerialAddIssuerName
+ (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> x509IssuerSerialNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *issuerName</code>);</pre>
+<p>Adds <dsig:X509IssuerName/> node to the <dsig:X509IssuerSerial/> node <code class="PARAMETER">x509IssuerSerialNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18346"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18348"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>x509IssuerSerialNode</p></td>
+<td><p>the pointer to <dsig:X509IssuerSerial/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>issuerName</p></td>
+<td><p>the issuer name (optional).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13635"><span style="white-space: nowrap"><code class="PARAMETER">x509IssuerSerialNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509IssuerSerial" target="_top"><dsig:X509IssuerSerial/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13641"><span style="white-space: nowrap"><code class="PARAMETER">issuerName</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the issuer name (optional).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13646"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509IssuerName" target="_top"><dsig:X509IssuerName/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18363"></a><h4>Returns</h4>
+<p> the pointer to the newly created <dsig:X509IssuerName/> node or
+NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTMPLX509ISSUERSERIALADDSERIALNUMBER"></a><h3>xmlSecTmplX509IssuerSerialAddSerialNumber ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplX509IssuerSerialAddSerialNumber
- (<font>xmlNodePtr</font> x509IssuerSerialNode,
- const <font>xmlChar</font> *serial);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509SerialNumber" target="_top"><dsig:X509SerialNumber/></a> node to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509IssuerSerial" target="_top"><dsig:X509IssuerSerial/></a> node <code class="PARAMETER">x509IssuerSerialNode</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplX509IssuerSerialAddSerialNumber
+ (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> x509IssuerSerialNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *serial</code>);</pre>
+<p>Adds <dsig:X509SerialNumber/> node to the <dsig:X509IssuerSerial/> node <code class="PARAMETER">x509IssuerSerialNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18381"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18383"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>x509IssuerSerialNode</p></td>
+<td><p>the pointer to <dsig:X509IssuerSerial/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>serial</p></td>
+<td><p>the serial number (optional).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13666"><span style="white-space: nowrap"><code class="PARAMETER">x509IssuerSerialNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509IssuerSerial" target="_top"><dsig:X509IssuerSerial/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13672"><span style="white-space: nowrap"><code class="PARAMETER">serial</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the serial number (optional).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13677"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509SerialNumber" target="_top"><dsig:X509SerialNumber/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18398"></a><h4>Returns</h4>
+<p> the pointer to the newly created <dsig:X509SerialNumber/> node or
+NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTMPLX509DATAADDSUBJECTNAME"></a><h3>xmlSecTmplX509DataAddSubjectName ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplX509DataAddSubjectName (<font>xmlNodePtr</font> x509DataNode);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509SubjectName" target="_top"><dsig:X509SubjectName/></a> node to the given <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplX509DataAddSubjectName (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> x509DataNode</code>);</pre>
+<p>Adds <dsig:X509SubjectName/> node to the given <dsig:X509Data/> node.</p>
+<div class="REFSECT3">
+<a name="AEN18412"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18414"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>x509DataNode</p></td>
+<td><p>the pointer to <dsig:X509Data/> node.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13695"><span style="white-space: nowrap"><code class="PARAMETER">x509DataNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13701"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509SubjectName" target="_top"><dsig:X509SubjectName/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18423"></a><h4>Returns</h4>
+<p> the pointer to the newly created <dsig:X509SubjectName/> node or
+NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTMPLX509DATAADDSKI"></a><h3>xmlSecTmplX509DataAddSKI ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplX509DataAddSKI (<font>xmlNodePtr</font> x509DataNode);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509SKI" target="_top"><dsig:X509SKI/></a> node to the given <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplX509DataAddSKI (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> x509DataNode</code>);</pre>
+<p>Adds <dsig:X509SKI/> node to the given <dsig:X509Data/> node.</p>
+<div class="REFSECT3">
+<a name="AEN18437"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18439"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>x509DataNode</p></td>
+<td><p>the pointer to <dsig:X509Data/> node.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13719"><span style="white-space: nowrap"><code class="PARAMETER">x509DataNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13725"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509SKI" target="_top"><dsig:X509SKI/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18448"></a><h4>Returns</h4>
+<p> the pointer to the newly created <dsig:X509SKI/> node or
+NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTMPLX509DATAADDCERTIFICATE"></a><h3>xmlSecTmplX509DataAddCertificate ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplX509DataAddCertificate (<font>xmlNodePtr</font> x509DataNode);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Certificate" target="_top"><dsig:X509Certificate/></a> node to the given <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplX509DataAddCertificate (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> x509DataNode</code>);</pre>
+<p>Adds <dsig:X509Certificate/> node to the given <dsig:X509Data/> node.</p>
+<div class="REFSECT3">
+<a name="AEN18462"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18464"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>x509DataNode</p></td>
+<td><p>the pointer to <dsig:X509Data/> node.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13743"><span style="white-space: nowrap"><code class="PARAMETER">x509DataNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13749"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Certificate" target="_top"><dsig:X509Certificate/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18473"></a><h4>Returns</h4>
+<p> the pointer to the newly created <dsig:X509Certificate/> node or
+NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTMPLX509DATAADDCRL"></a><h3>xmlSecTmplX509DataAddCRL ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecTmplX509DataAddCRL (<font>xmlNodePtr</font> x509DataNode);</pre>
-<p>Adds <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509CRL" target="_top"><dsig:X509CRL/></a> node to the given <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecTmplX509DataAddCRL (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> x509DataNode</code>);</pre>
+<p>Adds <dsig:X509CRL/> node to the given <dsig:X509Data/> node.</p>
+<div class="REFSECT3">
+<a name="AEN18487"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18489"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>x509DataNode</p></td>
+<td><p>the pointer to <dsig:X509Data/> node.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13767"><span style="white-space: nowrap"><code class="PARAMETER">x509DataNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13773"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the newly created <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509CRL" target="_top"><dsig:X509CRL/></a> node or
-NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18498"></a><h4>Returns</h4>
+<p> the pointer to the newly created <dsig:X509CRL/> node or
+NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTMPLTRANSFORMADDHMACOUTPUTLENGTH"></a><h3>xmlSecTmplTransformAddHmacOutputLength ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTmplTransformAddHmacOutputLength
- (<font>xmlNodePtr</font> transformNode,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> bitsLen);</pre>
-<p>Creates <a href="http://www.w3.org/TR/xmldsig-core/#sec-HMACOutputLength" target="_top"><dsig:HMACOutputLength/></a> child for the HMAC transform
-node <code class="PARAMETER">node</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTmplTransformAddHmacOutputLength
+ (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> transformNode</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> bitsLen</code>);</pre>
+<p>Creates <dsig:HMACOutputLength/> child for the HMAC transform
+node <code class="PARAMETER">node</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18516"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18518"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transformNode</p></td>
+<td><p>the pointer to <dsig:Transform/> node</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>bitsLen</p></td>
+<td><p>the required length in bits</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13792"><span style="white-space: nowrap"><code class="PARAMETER">transformNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13798"><span style="white-space: nowrap"><code class="PARAMETER">bitsLen</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the required length in bits</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13803"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success and a negatie value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18533"></a><h4>Returns</h4>
+<p> 0 on success and a negatie value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTMPLTRANSFORMADDRSAOAEPPARAM"></a><h3>xmlSecTmplTransformAddRsaOaepParam ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTmplTransformAddRsaOaepParam (<font>xmlNodePtr</font> transformNode,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buf,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
-<p>Creates <a href="http://www.w3.org/TR/xmlenc-core/#sec-OAEPParam" target="_top"><enc:OAEPParam/></a> child node in the <code class="PARAMETER">node</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTmplTransformAddRsaOaepParam (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> transformNode</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buf</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
+<p>Creates <enc:OAEPParam/> child node in the <code class="PARAMETER">node</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18554"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN18556"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13822"><span style="white-space: nowrap"><code class="PARAMETER">transformNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node.</p></td>
+<td><p>transformNode</p></td>
+<td><p>the pointer to <dsig:Transform/> node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13828"><span style="white-space: nowrap"><code class="PARAMETER">buf</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the OAEP param buffer.</p></td>
+<td><p>buf</p></td>
+<td><p>the OAEP param buffer.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13833"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the OAEP param buffer size.</p></td>
+<td><p>size</p></td>
+<td><p>the OAEP param buffer size.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13838"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18577"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTMPLTRANSFORMADDXSLTSTYLESHEET"></a><h3>xmlSecTmplTransformAddXsltStylesheet ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTmplTransformAddXsltStylesheet
- (<font>xmlNodePtr</font> transformNode,
- const <font>xmlChar</font> *xslt);</pre>
-<p>Writes the XSLT transform expression to the <code class="PARAMETER">node</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTmplTransformAddXsltStylesheet (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> transformNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *xslt</code>);</pre>
+<p>Writes the XSLT transform expression to the <code class="PARAMETER">node</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18595"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18597"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transformNode</p></td>
+<td><p>the pointer to <dsig:Transform/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xslt</p></td>
+<td><p>the XSLT transform exspression.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13855"><span style="white-space: nowrap"><code class="PARAMETER">transformNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13861"><span style="white-space: nowrap"><code class="PARAMETER">xslt</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XSLT transform exspression.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13866"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18612"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTMPLTRANSFORMADDC14NINCLNAMESPACES"></a><h3>xmlSecTmplTransformAddC14NInclNamespaces ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTmplTransformAddC14NInclNamespaces
- (<font>xmlNodePtr</font> transformNode,
- const <font>xmlChar</font> *prefixList);</pre>
-<p>Adds "inclusive" namespaces to the ExcC14N transform node <code class="PARAMETER">node</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTmplTransformAddC14NInclNamespaces
+ (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> transformNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *prefixList</code>);</pre>
+<p>Adds "inclusive" namespaces to the ExcC14N transform node <code class="PARAMETER">node</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18630"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18632"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transformNode</p></td>
+<td><p>the pointer to <dsig:Transform/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>prefixList</p></td>
+<td><p>the white space delimited list of namespace prefixes,
+where "<font><span class="TYPE">default</span></font>" indicates the default namespace
+(optional).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13883"><span style="white-space: nowrap"><code class="PARAMETER">transformNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13889"><span style="white-space: nowrap"><code class="PARAMETER">prefixList</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the white space delimited list of namespace prefixes,
- where "<font><span class="TYPE">default</span></font>" indicates the default namespace
- (optional).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13896"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 if success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18649"></a><h4>Returns</h4>
+<p> 0 if success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTMPLTRANSFORMADDXPATH"></a><h3>xmlSecTmplTransformAddXPath ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTmplTransformAddXPath (<font>xmlNodePtr</font> transformNode,
- const <font>xmlChar</font> *expression,
- const <font>xmlChar</font> **nsList);</pre>
-<p>Writes XPath transform infromation to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node
-<code class="PARAMETER">node</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTmplTransformAddXPath (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> transformNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *expression</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> **nsList</code>);</pre>
+<p>Writes XPath transform infromation to the <dsig:Transform/> node
+<code class="PARAMETER">node</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18670"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18672"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transformNode</p></td>
+<td><p>the pointer to the <dsig:Transform/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>expression</p></td>
+<td><p>the XPath expression.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>nsList</p></td>
+<td><p>the NULL terminated list of namespace prefix/href pairs
+(optional).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13915"><span style="white-space: nowrap"><code class="PARAMETER">transformNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13921"><span style="white-space: nowrap"><code class="PARAMETER">expression</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XPath expression.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13926"><span style="white-space: nowrap"><code class="PARAMETER">nsList</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the NULL terminated list of namespace prefix/href pairs
- (optional).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13931"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 for success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18693"></a><h4>Returns</h4>
+<p> 0 for success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTMPLTRANSFORMADDXPATH2"></a><h3>xmlSecTmplTransformAddXPath2 ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTmplTransformAddXPath2 (<font>xmlNodePtr</font> transformNode,
- const <font>xmlChar</font> *type,
- const <font>xmlChar</font> *expression,
- const <font>xmlChar</font> **nsList);</pre>
-<p>Writes XPath2 transform infromation to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node
-<code class="PARAMETER">node</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTmplTransformAddXPath2 (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> transformNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *type</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *expression</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> **nsList</code>);</pre>
+<p>Writes XPath2 transform infromation to the <dsig:Transform/> node
+<code class="PARAMETER">node</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18717"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN18719"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13951"><span style="white-space: nowrap"><code class="PARAMETER">transformNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node.</p></td>
+<td><p>transformNode</p></td>
+<td><p>the pointer to the <dsig:Transform/> node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13957"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XPath2 transform type ("union", "intersect" or "subtract").</p></td>
+<td><p>type</p></td>
+<td><p>the XPath2 transform type ("union", "intersect" or "subtract").</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13962"><span style="white-space: nowrap"><code class="PARAMETER">expression</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XPath expression.</p></td>
+<td><p>expression</p></td>
+<td><p>the XPath expression.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13967"><span style="white-space: nowrap"><code class="PARAMETER">nsList</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the NULL terminated list of namespace prefix/href pairs.
- (optional).</p></td>
+<td><p>nsList</p></td>
+<td><p>the NULL terminated list of namespace prefix/href pairs.
+(optional).</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13972"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 for success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN18746"></a><h4>Returns</h4>
+<p> 0 for success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTMPLTRANSFORMADDXPOINTER"></a><h3>xmlSecTmplTransformAddXPointer ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTmplTransformAddXPointer (<font>xmlNodePtr</font> transformNode,
- const <font>xmlChar</font> *expression,
- const <font>xmlChar</font> **nsList);</pre>
-<p>Writes XPoniter transform infromation to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node
-<code class="PARAMETER">node</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTmplTransformAddXPointer (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> transformNode</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *expression</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> **nsList</code>);</pre>
+<p>Writes XPoniter transform infromation to the <dsig:Transform/> node
+<code class="PARAMETER">node</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN18767"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN18769"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transformNode</p></td>
+<td><p>the pointer to the <dsig:Transform/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>expression</p></td>
+<td><p>the XPath expression.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>nsList</p></td>
+<td><p>the NULL terminated list of namespace prefix/href pairs.
+(optional).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13991"><span style="white-space: nowrap"><code class="PARAMETER">transformNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN13997"><span style="white-space: nowrap"><code class="PARAMETER">expression</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XPath expression.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14002"><span style="white-space: nowrap"><code class="PARAMETER">nsList</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the NULL terminated list of namespace prefix/href pairs.
- (optional).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14007"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 for success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
</div>
</div>
+<div class="REFSECT3">
+<a name="AEN18790"></a><h4>Returns</h4>
+<p> 0 for success or a negative value otherwise.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-TEMPLATES.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<p></p>
+</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
<td align="left"><a accesskey="p" href="xmlsec-parser.html"><b><<< parser</b></a></td>
<td align="right"><a accesskey="n" href="xmlsec-transforms.html"><b>transforms >>></b></a></td>
diff --git a/docs/api/xmlsec-transforms.html b/docs/api/xmlsec-transforms.html
index 0ba8658..04b879c 100644
--- a/docs/api/xmlsec-transforms.html
+++ b/docs/api/xmlsec-transforms.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="templates" href="xmlsec-templates.html">
<link rel="NEXT" title="version" href="xmlsec-version.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,2405 +101,4502 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-templates.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-templates.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-version.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-version.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-TRANSFORMS"></a>transforms</h1>
<div class="REFNAMEDIV">
-<a name="AEN14017"></a><h2>Name</h2>transforms -- Transform object definition.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-TRANSFORMS.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">#define <a href="xmlsec-transforms.html#XMLSEC-TRANSFORM-BINARY-CHUNK--CAPS">XMLSEC_TRANSFORM_BINARY_CHUNK</a>
-<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> <a href="xmlsec-transforms.html#XMLSECTRANSFORMIDSGET">xmlSecTransformIdsGet</a> (void);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMIDSINIT">xmlSecTransformIdsInit</a> (void);
-<font>void</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMIDSSHUTDOWN">xmlSecTransformIdsShutdown</a> (void);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMIDSREGISTERDEFAULT">xmlSecTransformIdsRegisterDefault</a> (void);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMIDSREGISTER">xmlSecTransformIdsRegister</a> (<font>xmlSecTransformId</font> id);
-enum <a href="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS">xmlSecTransformStatus</a>;
-enum <a href="xmlsec-transforms.html#XMLSECTRANSFORMMODE">xmlSecTransformMode</a>;
-enum <a href="xmlsec-transforms.html#XMLSECTRANSFORMOPERATION">xmlSecTransformOperation</a>;
-typedef <a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPE">xmlSecTransformUriType</a>;
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPENONE">xmlSecTransformUriTypeNone</a>
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPEEMPTY">xmlSecTransformUriTypeEmpty</a>
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPESAMEDOCUMENT">xmlSecTransformUriTypeSameDocument</a>
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPELOCAL">xmlSecTransformUriTypeLocal</a>
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPEREMOTE">xmlSecTransformUriTypeRemote</a>
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPEANY">xmlSecTransformUriTypeAny</a>
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPECHECK">xmlSecTransformUriTypeCheck</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPE">xmlSecTransformUriType</a> type,
- const <font>xmlChar</font> *uri);
-typedef <a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE">xmlSecTransformDataType</a>;
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPEUNKNOWN">xmlSecTransformDataTypeUnknown</a>
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPEBIN">xmlSecTransformDataTypeBin</a>
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPEXML">xmlSecTransformDataTypeXml</a>
-typedef <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE">xmlSecTransformUsage</a>;
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGEUNKNOWN">xmlSecTransformUsageUnknown</a>
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGEDSIGTRANSFORM">xmlSecTransformUsageDSigTransform</a>
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGEC14NMETHOD">xmlSecTransformUsageC14NMethod</a>
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGEDIGESTMETHOD">xmlSecTransformUsageDigestMethod</a>
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGESIGNATUREMETHOD">xmlSecTransformUsageSignatureMethod</a>
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGEENCRYPTIONMETHOD">xmlSecTransformUsageEncryptionMethod</a>
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGEANY">xmlSecTransformUsageAny</a>
-<font>int</font> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXPREEXECUTECALLBACK">*xmlSecTransformCtxPreExecuteCallback</a>)
- (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-#define <a href="xmlsec-transforms.html#XMLSEC-TRANSFORMCTX-FLAGS-USE-VISA3D-HACK--CAPS">XMLSEC_TRANSFORMCTX_FLAGS_USE_VISA3D_HACK</a>
-struct <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtx</a>;
-<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXCREATE">xmlSecTransformCtxCreate</a> (void);
-<font>void</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXDESTROY">xmlSecTransformCtxDestroy</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXINITIALIZE">xmlSecTransformCtxInitialize</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx);
-<font>void</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXFINALIZE">xmlSecTransformCtxFinalize</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx);
-<font>void</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXRESET">xmlSecTransformCtxReset</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXCOPYUSERPREF">xmlSecTransformCtxCopyUserPref</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> dst,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> src);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXSETURI">xmlSecTransformCtxSetUri</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- const <font>xmlChar</font> *uri,
- <font>xmlNodePtr</font> hereNode);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXAPPEND">xmlSecTransformCtxAppend</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXPREPEND">xmlSecTransformCtxPrepend</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform);
-<font>xmlSecTransformPtr</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXCREATEANDAPPEND">xmlSecTransformCtxCreateAndAppend</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <font>xmlSecTransformId</font> id);
-<font>xmlSecTransformPtr</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXCREATEANDPREPEND">xmlSecTransformCtxCreateAndPrepend</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <font>xmlSecTransformId</font> id);
-<font>xmlSecTransformPtr</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXNODEREAD">xmlSecTransformCtxNodeRead</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE">xmlSecTransformUsage</a> usage);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXNODESLISTREAD">xmlSecTransformCtxNodesListRead</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE">xmlSecTransformUsage</a> usage);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXPREPARE">xmlSecTransformCtxPrepare</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE">xmlSecTransformDataType</a> inputDataType);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXBINARYEXECUTE">xmlSecTransformCtxBinaryExecute</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXURIEXECUTE">xmlSecTransformCtxUriExecute</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- const <font>xmlChar</font> *uri);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXXMLEXECUTE">xmlSecTransformCtxXmlExecute</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nodes);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXEXECUTE">xmlSecTransformCtxExecute</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <font>xmlDocPtr</font> doc);
-<font>void</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXDEBUGDUMP">xmlSecTransformCtxDebugDump</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXDEBUGXMLDUMP">xmlSecTransformCtxDebugXmlDump</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <font>FILE</font> *output);
-struct <a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransform</a>;
-<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCREATE">xmlSecTransformCreate</a> (<font>xmlSecTransformId</font> id);
-<font>void</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMDESTROY">xmlSecTransformDestroy</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform);
-<font>xmlSecTransformPtr</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMNODEREAD">xmlSecTransformNodeRead</a> (<font>xmlNodePtr</font> node,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE">xmlSecTransformUsage</a> usage,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMPUMP">xmlSecTransformPump</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> left,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> right,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMSETKEY">xmlSecTransformSetKey</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMSETKEYREQ">xmlSecTransformSetKeyReq</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMVERIFY">xmlSecTransformVerify</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMVERIFYNODECONTENT">xmlSecTransformVerifyNodeContent</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE">xmlSecTransformDataType</a> <a href="xmlsec-transforms.html#XMLSECTRANSFORMGETDATATYPE">xmlSecTransformGetDataType</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMMODE">xmlSecTransformMode</a> mode,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHBIN">xmlSecTransformPushBin</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <font>int</font> final,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMPOPBIN">xmlSecTransformPopBin</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> maxDataSize,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *dataSize,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHXML">xmlSecTransformPushXml</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nodes,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMPOPXML">xmlSecTransformPopXml</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> *nodes,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMEXECUTE">xmlSecTransformExecute</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <font>int</font> last,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>void</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMDEBUGDUMP">xmlSecTransformDebugDump</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMDEBUGXMLDUMP">xmlSecTransformDebugXmlDump</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <font>FILE</font> *output);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMGETNAME">xmlSecTransformGetName</a> (transform)
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMISVALID">xmlSecTransformIsValid</a> (transform)
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMCHECKID">xmlSecTransformCheckId</a> (transform, i)
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMCHECKSIZE">xmlSecTransformCheckSize</a> (transform, size)
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCONNECT">xmlSecTransformConnect</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> left,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> right,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>void</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMREMOVE">xmlSecTransformRemove</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform);
-<a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE">xmlSecTransformDataType</a> <a href="xmlsec-transforms.html#XMLSECTRANSFORMDEFAULTGETDATATYPE">xmlSecTransformDefaultGetDataType</a>
- (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMMODE">xmlSecTransformMode</a> mode,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMDEFAULTPUSHBIN">xmlSecTransformDefaultPushBin</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <font>int</font> final,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMDEFAULTPOPBIN">xmlSecTransformDefaultPopBin</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> maxDataSize,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *dataSize,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMDEFAULTPUSHXML">xmlSecTransformDefaultPushXml</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nodes,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMDEFAULTPOPXML">xmlSecTransformDefaultPopXml</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> *nodes,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>xmlOutputBufferPtr</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCREATEOUTPUTBUFFER">xmlSecTransformCreateOutputBuffer</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>xmlParserInputBufferPtr</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMCREATEINPUTBUFFER">xmlSecTransformCreateInputBuffer</a>
- (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMINITIALIZEMETHOD">*xmlSecTransformInitializeMethod</a>) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform);
-<font>void</font> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMFINALIZEMETHOD">*xmlSecTransformFinalizeMethod</a>) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform);
-<a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE">xmlSecTransformDataType</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMGETDATATYPEMETHOD">*xmlSecTransformGetDataTypeMethod</a>)
- (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMMODE">xmlSecTransformMode</a> mode,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMNODEREADMETHOD">*xmlSecTransformNodeReadMethod</a>) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMNODEWRITEMETHOD">*xmlSecTransformNodeWriteMethod</a>) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMSETKEYREQUIREMENTSMETHOD">*xmlSecTransformSetKeyRequirementsMethod</a>)
- (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);
-<font>int</font> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMSETKEYMETHOD">*xmlSecTransformSetKeyMethod</a>) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);
-<font>int</font> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMVERIFYMETHOD">*xmlSecTransformVerifyMethod</a>) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHBINMETHOD">*xmlSecTransformPushBinMethod</a>) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <font>int</font> final,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMPOPBINMETHOD">*xmlSecTransformPopBinMethod</a>) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> maxDataSize,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *dataSize,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHXMLMETHOD">*xmlSecTransformPushXmlMethod</a>) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nodes,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMPOPXMLMETHOD">*xmlSecTransformPopXmlMethod</a>) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> *nodes,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-<font>int</font> (<a href="xmlsec-transforms.html#XMLSECTRANSFORMEXECUTEMETHOD">*xmlSecTransformExecuteMethod</a>) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <font>int</font> last,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);
-struct <a href="xmlsec-transforms.html#XMLSECTRANSFORMKLASS">xmlSecTransformKlass</a>;
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMKLASSGETNAME">xmlSecTransformKlassGetName</a> (klass)
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMIDLISTID">xmlSecTransformIdListId</a>
-<font>xmlSecPtrListId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMIDLISTGETKLASS">xmlSecTransformIdListGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMIDLISTFIND">xmlSecTransformIdListFind</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>xmlSecTransformId</font> transformId);
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMIDLISTFINDBYHREF">xmlSecTransformIdListFindByHref</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- const <font>xmlChar</font> *href,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE">xmlSecTransformUsage</a> usage);
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMIDLISTFINDBYNAME">xmlSecTransformIdListFindByName</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- const <font>xmlChar</font> *name,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE">xmlSecTransformUsage</a> usage);
-<font>void</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMIDLISTDEBUGDUMP">xmlSecTransformIdListDebugDump</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMIDLISTDEBUGXMLDUMP">xmlSecTransformIdListDebugXmlDump</a> (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>FILE</font> *output);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMIDUNKNOWN">xmlSecTransformIdUnknown</a>
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMBASE64ID">xmlSecTransformBase64Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMBASE64GETKLASS">xmlSecTransformBase64GetKlass</a> (void);
-<font>void</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMBASE64SETLINESIZE">xmlSecTransformBase64SetLineSize</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> lineSize);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14NID">xmlSecTransformInclC14NId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14NGETKLASS">xmlSecTransformInclC14NGetKlass</a> (void);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14NWITHCOMMENTSID">xmlSecTransformInclC14NWithCommentsId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14NWITHCOMMENTSGETKLASS">xmlSecTransformInclC14NWithCommentsGetKlass</a>
- (void);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14N11ID">xmlSecTransformInclC14N11Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14N11GETKLASS">xmlSecTransformInclC14N11GetKlass</a> (void);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14N11WITHCOMMENTSID">xmlSecTransformInclC14N11WithCommentsId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14N11WITHCOMMENTSGETKLASS">xmlSecTransformInclC14N11WithCommentsGetKlass</a>
- (void);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMEXCLC14NID">xmlSecTransformExclC14NId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMEXCLC14NGETKLASS">xmlSecTransformExclC14NGetKlass</a> (void);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMEXCLC14NWITHCOMMENTSID">xmlSecTransformExclC14NWithCommentsId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMEXCLC14NWITHCOMMENTSGETKLASS">xmlSecTransformExclC14NWithCommentsGetKlass</a>
- (void);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMENVELOPEDID">xmlSecTransformEnvelopedId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMENVELOPEDGETKLASS">xmlSecTransformEnvelopedGetKlass</a> (void);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMXPATHID">xmlSecTransformXPathId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMXPATHGETKLASS">xmlSecTransformXPathGetKlass</a> (void);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMXPATH2ID">xmlSecTransformXPath2Id</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMXPATH2GETKLASS">xmlSecTransformXPath2GetKlass</a> (void);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMXPOINTERID">xmlSecTransformXPointerId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMXPOINTERGETKLASS">xmlSecTransformXPointerGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMXPOINTERSETEXPR">xmlSecTransformXPointerSetExpr</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <font>xmlChar</font> *expr,
- <a href="xmlsec-nodeset.html#XMLSECNODESETTYPE">xmlSecNodeSetType</a> nodeSetType,
- <font>xmlNodePtr</font> hereNode);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMXSLTID">xmlSecTransformXsltId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMXSLTGETKLASS">xmlSecTransformXsltGetKlass</a> (void);
-<font>void</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMXSLTSETDEFAULTSECURITYPREFS">xmlSecTransformXsltSetDefaultSecurityPrefs</a>
- (<font>xsltSecurityPrefsPtr</font> sec);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMREMOVEXMLTAGSC14NID">xmlSecTransformRemoveXmlTagsC14NId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMREMOVEXMLTAGSC14NGETKLASS">xmlSecTransformRemoveXmlTagsC14NGetKlass</a>
- (void);
-#define <a href="xmlsec-transforms.html#XMLSECTRANSFORMVISA3DHACKID">xmlSecTransformVisa3DHackId</a>
-<font>xmlSecTransformId</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMVISA3DHACKGETKLASS">xmlSecTransformVisa3DHackGetKlass</a> (void);
-<font>int</font> <a href="xmlsec-transforms.html#XMLSECTRANSFORMVISA3DHACKSETID">xmlSecTransformVisa3DHackSetID</a> (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <font>xmlChar</font> *id);</pre>
-</div>
-<div class="REFSECT1">
-<a name="XMLSEC-TRANSFORMS.DESCRIPTION"></a><h2>Description</h2>
-<p>Transform object definition.</p>
-</div>
+<a name="AEN18801"></a><h2>Name</h2>transforms -- Transform object definition.</div>
<div class="REFSECT1">
-<a name="XMLSEC-TRANSFORMS.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSEC-TRANSFORM-BINARY-CHUNK--CAPS"></a><h3>XMLSEC_TRANSFORM_BINARY_CHUNK</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_TRANSFORM_BINARY_CHUNK 64</pre>
-<p>The binary data chunks size. XMLSec processes binary data one chunk
-at a time. Changing this impacts xmlsec memory usage and performance.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMIDSGET"></a><h3>xmlSecTransformIdsGet ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> xmlSecTransformIdsGet (void);</pre>
-<p>Gets global registered transform klasses list.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN14443"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to list of all registered transform klasses.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMIDSINIT"></a><h3>xmlSecTransformIdsInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformIdsInit (void);</pre>
-<p>Initializes the transform klasses. This function is called from the
-<a href="xmlsec-xmlsec.html#XMLSECINIT"><span class="TYPE">xmlSecInit</span></a> function and the application should not call it directly.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN14459"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMIDSSHUTDOWN"></a><h3>xmlSecTransformIdsShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecTransformIdsShutdown (void);</pre>
-<p>Shuts down the keys data klasses. This function is called from the
-<a href="xmlsec-xmlsec.html#XMLSECSHUTDOWN"><span class="TYPE">xmlSecShutdown</span></a> function and the application should not call it directly.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMIDSREGISTERDEFAULT"></a><h3>xmlSecTransformIdsRegisterDefault ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformIdsRegisterDefault (void);</pre>
-<p>Registers default (implemented by XML Security Library)
-transform klasses: XPath transform, Base64 transform, ...</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN14483"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMIDSREGISTER"></a><h3>xmlSecTransformIdsRegister ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformIdsRegister (<font>xmlSecTransformId</font> id);</pre>
-<p>Registers <code class="PARAMETER">id</code> in the global list of transform klasses.</p>
-<p></p>
+<a name="XMLSEC-TRANSFORMS.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN18806"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14499"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform klass.</p></td>
+<td><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="RETURNVALUE">xmlSecPtrListPtr</span></a></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMIDSGET">xmlSecTransformIdsGet</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14504"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMIDSINIT">xmlSecTransformIdsInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSTATUS"></a><h3>enum xmlSecTransformStatus</h3>
-<pre class="PROGRAMLISTING">typedef enum {
- xmlSecTransformStatusNone = 0,
- xmlSecTransformStatusWorking,
- xmlSecTransformStatusFinished,
- xmlSecTransformStatusOk,
- xmlSecTransformStatusFail
-} xmlSecTransformStatus;</pre>
-<p>The transform execution status.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMSTATUSNONE"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformStatusNone</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the status unknown.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMIDSSHUTDOWN">xmlSecTransformIdsShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMSTATUSWORKING"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformStatusWorking</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform is executed.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMIDSREGISTERDEFAULT">xmlSecTransformIdsRegisterDefault</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMSTATUSFINISHED"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformStatusFinished</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform finished</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMIDSREGISTER">xmlSecTransformIdsRegister</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMSTATUSOK"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformStatusOk</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform succeeded.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPECHECK">xmlSecTransformUriTypeCheck</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMSTATUSFAIL"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformStatusFail</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform failed (an error occur).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXPREEXECUTECALLBACK">*xmlSecTransformCtxPreExecuteCallback</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMMODE"></a><h3>enum xmlSecTransformMode</h3>
-<pre class="PROGRAMLISTING">typedef enum {
- xmlSecTransformModeNone = 0,
- xmlSecTransformModePush,
- xmlSecTransformModePop
-} xmlSecTransformMode;</pre>
-<p>The transform operation mode</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMMODENONE"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformModeNone</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the mode is unknown.</p></td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="RETURNVALUE">xmlSecTransformCtxPtr</span></a></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXCREATE">xmlSecTransformCtxCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMMODEPUSH"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformModePush</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> pushing data thru transform.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXDESTROY">xmlSecTransformCtxDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMMODEPOP"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformModePop</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> popping data from transform.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXINITIALIZE">xmlSecTransformCtxInitialize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMOPERATION"></a><h3>enum xmlSecTransformOperation</h3>
-<pre class="PROGRAMLISTING">typedef enum {
- xmlSecTransformOperationNone = 0,
- xmlSecTransformOperationEncode,
- xmlSecTransformOperationDecode,
- xmlSecTransformOperationSign,
- xmlSecTransformOperationVerify,
- xmlSecTransformOperationEncrypt,
- xmlSecTransformOperationDecrypt
-} xmlSecTransformOperation;</pre>
-<p>The transform operation.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMOPERATIONNONE"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformOperationNone</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the operation is unknown.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXFINALIZE">xmlSecTransformCtxFinalize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMOPERATIONENCODE"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformOperationEncode</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the encode operation (for base64 transform).</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXRESET">xmlSecTransformCtxReset</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMOPERATIONDECODE"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformOperationDecode</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the decode operation (for base64 transform).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXCOPYUSERPREF">xmlSecTransformCtxCopyUserPref</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMOPERATIONSIGN"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformOperationSign</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the sign or digest operation.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXSETURI">xmlSecTransformCtxSetUri</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMOPERATIONVERIFY"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformOperationVerify</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the verification of signature or digest operation.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXAPPEND">xmlSecTransformCtxAppend</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMOPERATIONENCRYPT"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformOperationEncrypt</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the encryption operation.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXPREPEND">xmlSecTransformCtxPrepend</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECTRANSFORMOPERATIONDECRYPT"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecTransformOperationDecrypt</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the decryption operation.</p></td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="RETURNVALUE">xmlSecTransformPtr</span></a></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXCREATEANDAPPEND">xmlSecTransformCtxCreateAndAppend</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMURITYPE"></a><h3>xmlSecTransformUriType</h3>
-<pre class="PROGRAMLISTING">typedef unsigned int xmlSecTransformUriType;</pre>
-<p>URI transform type bit mask.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMURITYPENONE"></a><h3>xmlSecTransformUriTypeNone</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformUriTypeNone 0x0000</pre>
-<p>The URI type is unknown or not set.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMURITYPEEMPTY"></a><h3>xmlSecTransformUriTypeEmpty</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformUriTypeEmpty 0x0001</pre>
-<p>The empty URI ("") type.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMURITYPESAMEDOCUMENT"></a><h3>xmlSecTransformUriTypeSameDocument</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformUriTypeSameDocument 0x0002</pre>
-<p>The smae document ("#...") but not empty ("") URI type.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMURITYPELOCAL"></a><h3>xmlSecTransformUriTypeLocal</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformUriTypeLocal 0x0004</pre>
-<p>The local URI ("file:///....") type.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMURITYPEREMOTE"></a><h3>xmlSecTransformUriTypeRemote</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformUriTypeRemote 0x0008</pre>
-<p>The remote URI type.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMURITYPEANY"></a><h3>xmlSecTransformUriTypeAny</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformUriTypeAny 0xFFFF</pre>
-<p>Any URI type.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMURITYPECHECK"></a><h3>xmlSecTransformUriTypeCheck ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformUriTypeCheck (<a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPE">xmlSecTransformUriType</a> type,
- const <font>xmlChar</font> *uri);</pre>
-<p>Checks if <code class="PARAMETER">uri</code> matches expected type <code class="PARAMETER">type</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14670"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the expected URI type.</p></td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="RETURNVALUE">xmlSecTransformPtr</span></a></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXCREATEANDPREPEND">xmlSecTransformCtxCreateAndPrepend</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14675"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the uri for checking.</p></td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="RETURNVALUE">xmlSecTransformPtr</span></a></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXNODEREAD">xmlSecTransformCtxNodeRead</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14680"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 1 if <code class="PARAMETER">uri</code> matches <code class="PARAMETER">type</code>, 0 if not or a negative value
-if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXNODESLISTREAD">xmlSecTransformCtxNodesListRead</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDATATYPE"></a><h3>xmlSecTransformDataType</h3>
-<pre class="PROGRAMLISTING">typedef xmlSecByte xmlSecTransformDataType;</pre>
-<p>Transform data type bit mask.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDATATYPEUNKNOWN"></a><h3>xmlSecTransformDataTypeUnknown</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformDataTypeUnknown 0x0000</pre>
-<p>The transform data type is unknown or nor data expected.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDATATYPEBIN"></a><h3>xmlSecTransformDataTypeBin</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformDataTypeBin 0x0001</pre>
-<p>The binary transform data.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDATATYPEXML"></a><h3>xmlSecTransformDataTypeXml</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformDataTypeXml 0x0002</pre>
-<p>The xml transform data.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMUSAGE"></a><h3>xmlSecTransformUsage</h3>
-<pre class="PROGRAMLISTING">typedef unsigned int xmlSecTransformUsage;</pre>
-<p>The transform usage bit mask.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMUSAGEUNKNOWN"></a><h3>xmlSecTransformUsageUnknown</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformUsageUnknown 0x0000</pre>
-<p>Transforms usage is unknown or undefined.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMUSAGEDSIGTRANSFORM"></a><h3>xmlSecTransformUsageDSigTransform</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformUsageDSigTransform 0x0001</pre>
-<p>Transform could be used in <dsig:Transform>.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMUSAGEC14NMETHOD"></a><h3>xmlSecTransformUsageC14NMethod</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformUsageC14NMethod 0x0002</pre>
-<p>Transform could be used in <dsig:CanonicalizationMethod>.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMUSAGEDIGESTMETHOD"></a><h3>xmlSecTransformUsageDigestMethod</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformUsageDigestMethod 0x0004</pre>
-<p>Transform could be used in <dsig:DigestMethod>.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMUSAGESIGNATUREMETHOD"></a><h3>xmlSecTransformUsageSignatureMethod</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformUsageSignatureMethod 0x0008</pre>
-<p>Transform could be used in <dsig:SignatureMethod>.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMUSAGEENCRYPTIONMETHOD"></a><h3>xmlSecTransformUsageEncryptionMethod</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformUsageEncryptionMethod 0x0010</pre>
-<p>Transform could be used in <enc:EncryptionMethod>.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMUSAGEANY"></a><h3>xmlSecTransformUsageAny</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformUsageAny 0xFFFF</pre>
-<p>Transform could be used for operation.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXPREEXECUTECALLBACK"></a><h3>xmlSecTransformCtxPreExecuteCallback ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecTransformCtxPreExecuteCallback)
- (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>The callback called after creating transforms chain but before
-starting data processing. Application can use this callback to
-do additional transforms chain verification or modification and
-aborting transforms execution (if necessary).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14781"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform's context.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXPREPARE">xmlSecTransformCtxPrepare</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14786"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success and a negative value otherwise (in this case,
-transforms chain will not be executed and xmlsec processing stops).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXBINARYEXECUTE">xmlSecTransformCtxBinaryExecute</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSEC-TRANSFORMCTX-FLAGS-USE-VISA3D-HACK--CAPS"></a><h3>XMLSEC_TRANSFORMCTX_FLAGS_USE_VISA3D_HACK</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_TRANSFORMCTX_FLAGS_USE_VISA3D_HACK 0x00000001</pre>
-<p>If this flag is set then URI ID references are resolved directly
-without using XPointers. This allows one to sign/verify Visa3D
-documents that don't follow XML, XPointer and XML DSig specifications.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTX"></a><h3>struct xmlSecTransformCtx</h3>
-<pre class="PROGRAMLISTING">struct xmlSecTransformCtx {
- /* user settings */
- void* userData;
- unsigned int flags;
- unsigned int flags2;
- xmlSecTransformUriType enabledUris;
- xmlSecPtrList enabledTransforms;
- xmlSecTransformCtxPreExecuteCallback preExecCallback;
-
- /* results */
- xmlSecBufferPtr result;
- xmlSecTransformStatus status;
- xmlChar* uri;
- xmlChar* xptrExpr;
- xmlSecTransformPtr first;
- xmlSecTransformPtr last;
-
- /* for the future */
- void* reserved0;
- void* reserved1;
-};</pre>
-<p>The transform execution context.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14806"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">userData</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to user data (xmlsec and xmlsec-crypto never
- touch this).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXURIEXECUTE">xmlSecTransformCtxUriExecute</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14812"><span style="white-space: nowrap">unsigned <font>int</font> <code class="STRUCTFIELD">flags</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the bit mask flags to control transforms execution
- (reserved for the future).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXXMLEXECUTE">xmlSecTransformCtxXmlExecute</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14818"><span style="white-space: nowrap">unsigned <font>int</font> <code class="STRUCTFIELD">flags2</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the bit mask flags to control transforms execution
- (reserved for the future).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXEXECUTE">xmlSecTransformCtxExecute</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14824"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPE">xmlSecTransformUriType</a> <code class="STRUCTFIELD">enabledUris</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the allowed transform data source uri types.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXDEBUGDUMP">xmlSecTransformCtxDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14830"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrList</a> <code class="STRUCTFIELD">enabledTransforms</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list of enabled transforms; if list is empty (default)
- then all registered transforms are enabled.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXDEBUGXMLDUMP">xmlSecTransformCtxDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14836"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXPREEXECUTECALLBACK">xmlSecTransformCtxPreExecuteCallback</a> <code class="STRUCTFIELD">preExecCallback</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the callback called after preparing transform chain
- and right before actual data processing; application
- can use this callback to change transforms parameters,
- insert additional transforms in the chain or do
- additional validation (and abort transform execution
- if needed).</p></td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="RETURNVALUE">xmlSecTransformPtr</span></a></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCREATE">xmlSecTransformCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14842"><span style="white-space: nowrap"><a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> <code class="STRUCTFIELD">result</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms result buffer.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMDESTROY">xmlSecTransformDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14848"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS">xmlSecTransformStatus</a> <code class="STRUCTFIELD">status</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transforms chain processng status.</p></td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="RETURNVALUE">xmlSecTransformPtr</span></a></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMNODEREAD">xmlSecTransformNodeRead</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14854"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">uri</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data source URI without xpointer expression.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMPUMP">xmlSecTransformPump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14860"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">xptrExpr</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the xpointer expression from data source URI (if any).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMSETKEY">xmlSecTransformSetKey</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14866"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> <code class="STRUCTFIELD">first</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the first transform in the chain.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMSETKEYREQ">xmlSecTransformSetKeyReq</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14872"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> <code class="STRUCTFIELD">last</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the last transform in the chain.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMVERIFY">xmlSecTransformVerify</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14878"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMVERIFYNODECONTENT">xmlSecTransformVerifyNodeContent</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14884"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE"><span class="RETURNVALUE">xmlSecTransformDataType</span></a></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMGETDATATYPE">xmlSecTransformGetDataType</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXCREATE"></a><h3>xmlSecTransformCtxCreate ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> xmlSecTransformCtxCreate (void);</pre>
-<p>Creates transforms chain processing context.
-The caller is responsible for destroying returned object by calling
-<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXDESTROY"><span class="TYPE">xmlSecTransformCtxDestroy</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN14901"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly allocated context object or NULL if an error
-occurs.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXDESTROY"></a><h3>xmlSecTransformCtxDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecTransformCtxDestroy (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx);</pre>
-<p>Destroy context object created with <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXCREATE"><span class="TYPE">xmlSecTransformCtxCreate</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN14918"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXINITIALIZE"></a><h3>xmlSecTransformCtxInitialize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformCtxInitialize (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx);</pre>
-<p>Initializes transforms chain processing context.
-The caller is responsible for cleaning up returned object by calling
-<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXFINALIZE"><span class="TYPE">xmlSecTransformCtxFinalize</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14935"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHBIN">xmlSecTransformPushBin</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14940"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMPOPBIN">xmlSecTransformPopBin</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXFINALIZE"></a><h3>xmlSecTransformCtxFinalize ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecTransformCtxFinalize (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx);</pre>
-<p>Cleans up <code class="PARAMETER">ctx</code> object initialized with <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXINITIALIZE"><span class="TYPE">xmlSecTransformCtxInitialize</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN14958"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXRESET"></a><h3>xmlSecTransformCtxReset ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecTransformCtxReset (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx);</pre>
-<p>Resets transfroms context for new processing.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN14973"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXCOPYUSERPREF"></a><h3>xmlSecTransformCtxCopyUserPref ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformCtxCopyUserPref (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> dst,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> src);</pre>
-<p>Copies user settings from <code class="PARAMETER">src</code> context to <code class="PARAMETER">dst</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14991"><span style="white-space: nowrap"><code class="PARAMETER">dst</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to destination transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHXML">xmlSecTransformPushXml</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN14996"><span style="white-space: nowrap"><code class="PARAMETER">src</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to source transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMPOPXML">xmlSecTransformPopXml</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15001"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMEXECUTE">xmlSecTransformExecute</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXSETURI"></a><h3>xmlSecTransformCtxSetUri ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformCtxSetUri (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- const <font>xmlChar</font> *uri,
- <font>xmlNodePtr</font> hereNode);</pre>
-<p>Parses uri and adds xpointer transforms if required.</p>
-<p>The following examples demonstrate what the URI attribute identifies and
-how it is dereferenced
-(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-ReferenceProcessingModel</span></font>):</p>
-<p>- URI="http://example.com/bar.xml"
-identifies the octets that represent the external resource
-'http://example.com/bar.xml', that is probably an XML document given
-its file extension.</p>
-<p>- URI="http://example.com/bar.xml<font><span class="TYPE">chapter1</span></font>"
-identifies the element with ID attribute value 'chapter1' of the
-external XML resource 'http://example.com/bar.xml', provided as an
-octet stream. Again, for the sake of interoperability, the element
-identified as 'chapter1' should be obtained using an XPath transform
-rather than a URI fragment (barename XPointer resolution in external
-resources is not REQUIRED in this specification).</p>
-<p>- URI=""
-identifies the node-set (minus any comment nodes) of the XML resource
-containing the signature</p>
-<p>- URI="<font><span class="TYPE">chapter1</span></font>"
-identifies a node-set containing the element with ID attribute value
-'chapter1' of the XML resource containing the signature. XML Signature
-(and its applications) modify this node-set to include the element plus
-all descendents including namespaces and attributes -- but not comments.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15029"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMDEBUGDUMP">xmlSecTransformDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15034"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the URI.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMDEBUGXMLDUMP">xmlSecTransformDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15039"><span style="white-space: nowrap"><code class="PARAMETER">hereNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to "here" node required by some
- XML transforms (may be NULL).</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMGETNAME">xmlSecTransformGetName</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15044"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMISVALID">xmlSecTransformIsValid</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXAPPEND"></a><h3>xmlSecTransformCtxAppend ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformCtxAppend (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform);</pre>
-<p>Connects the <code class="PARAMETER">transform</code> to the end of the chain of transforms in the <code class="PARAMETER">ctx</code>
-(see <a href="xmlsec-transforms.html#XMLSECTRANSFORMCONNECT"><span class="TYPE">xmlSecTransformConnect</span></a> function for details).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15064"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCHECKID">xmlSecTransformCheckId</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15069"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to new transform.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCHECKSIZE">xmlSecTransformCheckSize</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15074"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCONNECT">xmlSecTransformConnect</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXPREPEND"></a><h3>xmlSecTransformCtxPrepend ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformCtxPrepend (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform);</pre>
-<p>Connects the <code class="PARAMETER">transform</code> to the beggining of the chain of transforms in the <code class="PARAMETER">ctx</code>
-(see <a href="xmlsec-transforms.html#XMLSECTRANSFORMCONNECT"><span class="TYPE">xmlSecTransformConnect</span></a> function for details).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15094"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMREMOVE">xmlSecTransformRemove</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15099"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to new transform.</p></td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE"><span class="RETURNVALUE">xmlSecTransformDataType</span></a></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMDEFAULTGETDATATYPE">xmlSecTransformDefaultGetDataType</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15104"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMDEFAULTPUSHBIN">xmlSecTransformDefaultPushBin</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXCREATEANDAPPEND"></a><h3>xmlSecTransformCtxCreateAndAppend ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformPtr</font> xmlSecTransformCtxCreateAndAppend (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <font>xmlSecTransformId</font> id);</pre>
-<p>Creaeates new transform and connects it to the end of the chain of
-transforms in the <code class="PARAMETER">ctx</code> (see <a href="xmlsec-transforms.html#XMLSECTRANSFORMCONNECT"><span class="TYPE">xmlSecTransformConnect</span></a> function for details).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15123"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMDEFAULTPOPBIN">xmlSecTransformDefaultPopBin</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15128"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new transform klass.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMDEFAULTPUSHXML">xmlSecTransformDefaultPushXml</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15133"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created transform or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMDEFAULTPOPXML">xmlSecTransformDefaultPopXml</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXCREATEANDPREPEND"></a><h3>xmlSecTransformCtxCreateAndPrepend ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformPtr</font> xmlSecTransformCtxCreateAndPrepend (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <font>xmlSecTransformId</font> id);</pre>
-<p>Creaeates new transform and connects it to the end of the chain of
-transforms in the <code class="PARAMETER">ctx</code> (see <a href="xmlsec-transforms.html#XMLSECTRANSFORMCONNECT"><span class="TYPE">xmlSecTransformConnect</span></a> function for details).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15152"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">xmlOutputBufferPtr</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCREATEOUTPUTBUFFER">xmlSecTransformCreateOutputBuffer</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15157"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new transform klass.</p></td>
+<td><font><span class="RETURNVALUE">xmlParserInputBufferPtr</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCREATEINPUTBUFFER">xmlSecTransformCreateInputBuffer</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15162"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created transform or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-transforms.html#XMLSECTRANSFORMINITIALIZEMETHOD">*xmlSecTransformInitializeMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXNODEREAD"></a><h3>xmlSecTransformCtxNodeRead ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformPtr</font> xmlSecTransformCtxNodeRead (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE">xmlSecTransformUsage</a> usage);</pre>
-<p>Reads the transform from the <code class="PARAMETER">node</code> and appends it to the current chain
-of transforms in <code class="PARAMETER">ctx</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15181"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-transforms.html#XMLSECTRANSFORMFINALIZEMETHOD">*xmlSecTransformFinalizeMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15186"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform's node.</p></td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE"><span class="RETURNVALUE">xmlSecTransformDataType</span></a></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-transforms.html#XMLSECTRANSFORMGETDATATYPEMETHOD">*xmlSecTransformGetDataTypeMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15191"><span style="white-space: nowrap"><code class="PARAMETER">usage</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's usage (signature, encryption, etc.).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-transforms.html#XMLSECTRANSFORMNODEREADMETHOD">*xmlSecTransformNodeReadMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15196"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created transform or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-transforms.html#XMLSECTRANSFORMNODEWRITEMETHOD">*xmlSecTransformNodeWriteMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXNODESLISTREAD"></a><h3>xmlSecTransformCtxNodesListRead ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformCtxNodesListRead (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE">xmlSecTransformUsage</a> usage);</pre>
-<p>Reads transforms from the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> children of the <code class="PARAMETER">node</code> and
-appends them to the current transforms chain in <code class="PARAMETER">ctx</code> object.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15216"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-transforms.html#XMLSECTRANSFORMSETKEYREQUIREMENTSMETHOD">*xmlSecTransformSetKeyRequirementsMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15221"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> nodes parent node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-transforms.html#XMLSECTRANSFORMSETKEYMETHOD">*xmlSecTransformSetKeyMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15227"><span style="white-space: nowrap"><code class="PARAMETER">usage</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's usage (signature, encryption, etc.).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-transforms.html#XMLSECTRANSFORMVERIFYMETHOD">*xmlSecTransformVerifyMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15232"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHBINMETHOD">*xmlSecTransformPushBinMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXPREPARE"></a><h3>xmlSecTransformCtxPrepare ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformCtxPrepare (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE">xmlSecTransformDataType</a> inputDataType);</pre>
-<p>Prepares the transform context for processing data of <code class="PARAMETER">inputDataType</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15249"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-transforms.html#XMLSECTRANSFORMPOPBINMETHOD">*xmlSecTransformPopBinMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15254"><span style="white-space: nowrap"><code class="PARAMETER">inputDataType</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the expected input type.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHXMLMETHOD">*xmlSecTransformPushXmlMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15259"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-transforms.html#XMLSECTRANSFORMPOPXMLMETHOD">*xmlSecTransformPopXmlMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXBINARYEXECUTE"></a><h3>xmlSecTransformCtxBinaryExecute ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformCtxBinaryExecute (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize);</pre>
-<p>Processes binary data using transforms chain in the <code class="PARAMETER">ctx</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15277"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<span class="c_punctuation"><span class="PHRASE">(</span></span><a href="xmlsec-transforms.html#XMLSECTRANSFORMEXECUTEMETHOD">*xmlSecTransformExecuteMethod</a><span class="c_punctuation"><span class="PHRASE">)</span></span> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15282"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input binary data buffer.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMKLASSGETNAME">xmlSecTransformKlassGetName</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15287"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input data size.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecPtrListId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMIDLISTGETKLASS">xmlSecTransformIdListGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15292"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMIDLISTFIND">xmlSecTransformIdListFind</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXURIEXECUTE"></a><h3>xmlSecTransformCtxUriExecute ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformCtxUriExecute (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- const <font>xmlChar</font> *uri);</pre>
-<p>Process binary data from the URI using transforms chain in <code class="PARAMETER">ctx</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15309"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMIDLISTFINDBYHREF">xmlSecTransformIdListFindByHref</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15314"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the URI.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMIDLISTFINDBYNAME">xmlSecTransformIdListFindByName</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15319"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMIDLISTDEBUGDUMP">xmlSecTransformIdListDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXXMLEXECUTE"></a><h3>xmlSecTransformCtxXmlExecute ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformCtxXmlExecute (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nodes);</pre>
-<p>Process <code class="PARAMETER">nodes</code> using transforms in the transforms chain in <code class="PARAMETER">ctx</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15337"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMIDLISTDEBUGXMLDUMP">xmlSecTransformIdListDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15342"><span style="white-space: nowrap"><code class="PARAMETER">nodes</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input node set.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMIDUNKNOWN">xmlSecTransformIdUnknown</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15347"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMBASE64GETKLASS">xmlSecTransformBase64GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXEXECUTE"></a><h3>xmlSecTransformCtxExecute ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformCtxExecute (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <font>xmlDocPtr</font> doc);</pre>
-<p>Executes transforms chain in <code class="PARAMETER">ctx</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15364"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMBASE64SETLINESIZE">xmlSecTransformBase64SetLineSize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15369"><span style="white-space: nowrap"><code class="PARAMETER">doc</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to input document.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14NGETKLASS">xmlSecTransformInclC14NGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15374"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14NWITHCOMMENTSGETKLASS">xmlSecTransformInclC14NWithCommentsGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXDEBUGDUMP"></a><h3>xmlSecTransformCtxDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecTransformCtxDebugDump (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <font>FILE</font> *output);</pre>
-<p>Prints transforms context debug information to <code class="PARAMETER">output</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15391"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14N11GETKLASS">xmlSecTransformInclC14N11GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15396"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14N11WITHCOMMENTSGETKLASS">xmlSecTransformInclC14N11WithCommentsGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCTXDEBUGXMLDUMP"></a><h3>xmlSecTransformCtxDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecTransformCtxDebugXmlDump (<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> ctx,
- <font>FILE</font> *output);</pre>
-<p>Prints transforms context debug information to <code class="PARAMETER">output</code> in XML format.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15413"><span style="white-space: nowrap"><code class="PARAMETER">ctx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transforms chain processing context.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMEXCLC14NGETKLASS">xmlSecTransformExclC14NGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15418"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMEXCLC14NWITHCOMMENTSGETKLASS">xmlSecTransformExclC14NWithCommentsGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORM"></a><h3>struct xmlSecTransform</h3>
-<pre class="PROGRAMLISTING">struct xmlSecTransform {
- xmlSecTransformId id;
- xmlSecTransformOperation operation;
- xmlSecTransformStatus status;
- xmlNodePtr hereNode;
-
- /* transforms chain */
- xmlSecTransformPtr next;
- xmlSecTransformPtr prev;
-
- /* binary data */
- xmlSecBuffer inBuf;
- xmlSecBuffer outBuf;
-
- /* xml data */
- xmlSecNodeSetPtr inNodes;
- xmlSecNodeSetPtr outNodes;
-
- /* reserved for the future */
- void* reserved0;
- void* reserved1;
-};</pre>
-<p>The transform structure.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15431"><span style="white-space: nowrap"><font>xmlSecTransformId</font> <code class="STRUCTFIELD">id</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform id (pointer to <font><span class="TYPE">xmlSecTransformId</span></font>).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15439"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMOPERATION">xmlSecTransformOperation</a> <code class="STRUCTFIELD">operation</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's opertaion.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMENVELOPEDGETKLASS">xmlSecTransformEnvelopedGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15445"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS">xmlSecTransformStatus</a> <code class="STRUCTFIELD">status</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the current status.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMXPATHGETKLASS">xmlSecTransformXPathGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15451"><span style="white-space: nowrap"><font>xmlNodePtr</font> <code class="STRUCTFIELD">hereNode</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform's <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform%20" target="_top"><dsig:Transform /></a> node.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMXPATH2GETKLASS">xmlSecTransformXPath2GetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15458"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> <code class="STRUCTFIELD">next</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to next transform in the chain.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMXPOINTERGETKLASS">xmlSecTransformXPointerGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15464"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> <code class="STRUCTFIELD">prev</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to previous transform in the chain.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMXPOINTERSETEXPR">xmlSecTransformXPointerSetExpr</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15470"><span style="white-space: nowrap"><a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBuffer</a> <code class="STRUCTFIELD">inBuf</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input binary data buffer.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMRELATIONSHIPGETKLASS">xmlSecTransformRelationshipGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15476"><span style="white-space: nowrap"><a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBuffer</a> <code class="STRUCTFIELD">outBuf</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output binary data buffer.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMXSLTGETKLASS">xmlSecTransformXsltGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15482"><span style="white-space: nowrap"><a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> <code class="STRUCTFIELD">inNodes</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input XML nodes.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMXSLTSETDEFAULTSECURITYPREFS">xmlSecTransformXsltSetDefaultSecurityPrefs</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15488"><span style="white-space: nowrap"><a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> <code class="STRUCTFIELD">outNodes</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the output XML nodes.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMREMOVEXMLTAGSC14NGETKLASS">xmlSecTransformRemoveXmlTagsC14NGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15494"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecTransformId</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMVISA3DHACKGETKLASS">xmlSecTransformVisa3DHackGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15500"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMVISA3DHACKSETID">xmlSecTransformVisa3DHackSetID</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCREATE"></a><h3>xmlSecTransformCreate ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> xmlSecTransformCreate (<font>xmlSecTransformId</font> id);</pre>
-<p>Creates new transform of the <code class="PARAMETER">id</code> klass. The caller is responsible for
-destroying returned tansform using <a href="xmlsec-transforms.html#XMLSECTRANSFORMDESTROY"><span class="TYPE">xmlSecTransformDestroy</span></a> function.</p>
-<p></p>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15519"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform id to create.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15524"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created transform or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDESTROY"></a><h3>xmlSecTransformDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecTransformDestroy (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform);</pre>
-<p>Destroys transform created with <a href="xmlsec-transforms.html#XMLSECTRANSFORMCREATE"><span class="TYPE">xmlSecTransformCreate</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN15541"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
-</tr></tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMNODEREAD"></a><h3>xmlSecTransformNodeRead ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformPtr</font> xmlSecTransformNodeRead (<font>xmlNodePtr</font> node,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE">xmlSecTransformUsage</a> usage,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Reads transform from the <code class="PARAMETER">node</code> as follows:</p>
-<p> 1) reads "Algorithm" attribute;</p>
-<p> 2) checks the lists of known and allowed transforms;</p>
-<p> 3) calls transform's create method;</p>
-<p> 4) calls transform's read transform node method.</p>
-<p></p>
+<div class="REFSECT1">
+<a name="XMLSEC-TRANSFORMS.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN19498"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15563"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the transform's node.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSEC-TRANSFORM-BINARY-CHUNK:CAPS">XMLSEC_TRANSFORM_BINARY_CHUNK</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15568"><span style="white-space: nowrap"><code class="PARAMETER">usage</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform usage (signature, encryption, ...).</p></td>
+<td>enum</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS">xmlSecTransformStatus</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15573"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's chaing processing context.</p></td>
+<td>enum</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMMODE">xmlSecTransformMode</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15578"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created transform or NULL if an error occurs.</p></td>
+<td>enum</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMOPERATION">xmlSecTransformOperation</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMPUMP"></a><h3>xmlSecTransformPump ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformPump (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> left,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> right,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Pops data from <code class="PARAMETER">left</code> transform and pushes to <code class="PARAMETER">right</code> transform until
-no more data is available.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15597"><span style="white-space: nowrap"><code class="PARAMETER">left</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the source pumping transform.</p></td>
+<td>typedef</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPE">xmlSecTransformUriType</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15602"><span style="white-space: nowrap"><code class="PARAMETER">right</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the destination pumping transform.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPENONE">xmlSecTransformUriTypeNone</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15607"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's chaing processing context.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPEEMPTY">xmlSecTransformUriTypeEmpty</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15612"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPESAMEDOCUMENT">xmlSecTransformUriTypeSameDocument</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSETKEY"></a><h3>xmlSecTransformSetKey ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformSetKey (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>Sets the transform's key.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15628"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPELOCAL">xmlSecTransformUriTypeLocal</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15633"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPEREMOTE">xmlSecTransformUriTypeRemote</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15638"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPEANY">xmlSecTransformUriTypeAny</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSETKEYREQ"></a><h3>xmlSecTransformSetKeyReq ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformSetKeyReq (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);</pre>
-<p>Sets the key requirements for <code class="PARAMETER">transform</code> in the <code class="PARAMETER">keyReq</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15656"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
+<td>typedef</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE">xmlSecTransformDataType</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15661"><span style="white-space: nowrap"><code class="PARAMETER">keyReq</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys requirements object.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPEUNKNOWN">xmlSecTransformDataTypeUnknown</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15666"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPEBIN">xmlSecTransformDataTypeBin</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMVERIFY"></a><h3>xmlSecTransformVerify ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformVerify (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Verifies the data with transform's processing results
-(for digest, HMAC and signature transforms). The verification
-result is stored in the <font><span class="TYPE">status</span></font> member of <a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransform</span></a> object.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15688"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPEXML">xmlSecTransformDataTypeXml</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15693"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the binary data for verification.</p></td>
+<td>typedef</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE">xmlSecTransformUsage</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15698"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data size.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGEUNKNOWN">xmlSecTransformUsageUnknown</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15703"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's chaing processing context.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGEDSIGTRANSFORM">xmlSecTransformUsageDSigTransform</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15708"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGEC14NMETHOD">xmlSecTransformUsageC14NMethod</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMVERIFYNODECONTENT"></a><h3>xmlSecTransformVerifyNodeContent ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformVerifyNodeContent (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Gets the <code class="PARAMETER">node</code> content, base64 decodes it and calls <a href="xmlsec-transforms.html#XMLSECTRANSFORMVERIFY"><span class="TYPE">xmlSecTransformVerify</span></a>
-function to verify binary results.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15728"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGEDIGESTMETHOD">xmlSecTransformUsageDigestMethod</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15733"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGESIGNATUREMETHOD">xmlSecTransformUsageSignatureMethod</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15738"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's chaing processing context.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGEENCRYPTIONMETHOD">xmlSecTransformUsageEncryptionMethod</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15743"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGEANY">xmlSecTransformUsageAny</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMGETDATATYPE"></a><h3>xmlSecTransformGetDataType ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE">xmlSecTransformDataType</a> xmlSecTransformGetDataType (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMMODE">xmlSecTransformMode</a> mode,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Gets transform input (<code class="PARAMETER">mode</code> is "push") or output (<code class="PARAMETER">mode</code> is "pop") data
-type (binary or XML).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15762"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSEC-TRANSFORMCTX-FLAGS-USE-VISA3D-HACK:CAPS">XMLSEC_TRANSFORMCTX_FLAGS_USE_VISA3D_HACK</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15767"><span style="white-space: nowrap"><code class="PARAMETER">mode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data mode (push or pop).</p></td>
+<td>struct</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtx</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15772"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's chaing processing context.</p></td>
+<td>struct</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransform</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15777"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's data type for the <code class="PARAMETER">mode</code> operation.</p></td>
+<td>struct</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMKLASS">xmlSecTransformKlass</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMPUSHBIN"></a><h3>xmlSecTransformPushBin ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformPushBin (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <font>int</font> final,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Process binary <code class="PARAMETER">data</code> and pushes results to next transform.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15798"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMIDLISTID">xmlSecTransformIdListId</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15803"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input binary data,</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMBASE64ID">xmlSecTransformBase64Id</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15808"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input data size.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14NID">xmlSecTransformInclC14NId</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15813"><span style="white-space: nowrap"><code class="PARAMETER">final</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag: if set to 1 then it's the last
- data chunk.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14NWITHCOMMENTSID">xmlSecTransformInclC14NWithCommentsId</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15818"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14N11ID">xmlSecTransformInclC14N11Id</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15823"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMINCLC14N11WITHCOMMENTSID">xmlSecTransformInclC14N11WithCommentsId</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMPOPBIN"></a><h3>xmlSecTransformPopBin ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformPopBin (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> maxDataSize,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *dataSize,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Pops data from previous transform in the chain, processes data and
-returns result in the <code class="PARAMETER">data</code> buffer. The size of returned data is
-placed in the <code class="PARAMETER">dataSize</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15844"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMEXCLC14NID">xmlSecTransformExclC14NId</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15849"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the buffer to store result data.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMEXCLC14NWITHCOMMENTSID">xmlSecTransformExclC14NWithCommentsId</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15854"><span style="white-space: nowrap"><code class="PARAMETER">maxDataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of the buffer <font><span class="TYPE">data</span></font>.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMENVELOPEDID">xmlSecTransformEnvelopedId</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15861"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to returned data size.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMXPATHID">xmlSecTransformXPathId</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15866"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMXPATH2ID">xmlSecTransformXPath2Id</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15871"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMXPOINTERID">xmlSecTransformXPointerId</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMPUSHXML"></a><h3>xmlSecTransformPushXml ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformPushXml (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nodes,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Processes <code class="PARAMETER">nodes</code> and pushes result to the next transform in the chain.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15889"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMRELATIONSHIPID">xmlSecTransformRelationshipId</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15894"><span style="white-space: nowrap"><code class="PARAMETER">nodes</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input nodes.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMXSLTID">xmlSecTransformXsltId</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15899"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMREMOVEXMLTAGSC14NID">xmlSecTransformRemoveXmlTagsC14NId</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15904"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-transforms.html#XMLSECTRANSFORMVISA3DHACKID">xmlSecTransformVisa3DHackId</a></td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMPOPXML"></a><h3>xmlSecTransformPopXml ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformPopXml (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> *nodes,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Pops data from previous transform in the chain, processes the data and
-returns result in <code class="PARAMETER">nodes</code>.</p>
-<p></p>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15922"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15927"><span style="white-space: nowrap"><code class="PARAMETER">nodes</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to store popinter to result nodes.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15932"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15937"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
</div>
-<hr>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-TRANSFORMS.DESCRIPTION"></a><h2>Description</h2>
+<p>Transform object definition.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-TRANSFORMS.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMEXECUTE"></a><h3>xmlSecTransformExecute ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformExecute (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <font>int</font> last,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Executes transform (used by default popBin/pushBin/popXml/pushXml methods).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15954"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15959"><span style="white-space: nowrap"><code class="PARAMETER">last</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag: if set to 1 then it's the last data chunk.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15964"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's chaing processing context.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15969"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMIDSGET"></a><h3>xmlSecTransformIdsGet ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="RETURNVALUE">xmlSecPtrListPtr</span></a>
+xmlSecTransformIdsGet (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Gets global registered transform klasses list.</p>
+<div class="REFSECT3">
+<a name="AEN19688"></a><h4>Returns</h4>
+<p> the pointer to list of all registered transform klasses.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDEBUGDUMP"></a><h3>xmlSecTransformDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecTransformDebugDump (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <font>FILE</font> *output);</pre>
-<p>Prints transform's debug information to <code class="PARAMETER">output</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15986"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN15991"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMIDSINIT"></a><h3>xmlSecTransformIdsInit ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformIdsInit (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Initializes the transform klasses. This function is called from the
+<a href="xmlsec-xmlsec.html#XMLSECINIT"><span class="TYPE">xmlSecInit</span></a> function and the application should not call it directly.</p>
+<div class="REFSECT3">
+<a name="AEN19703"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDEBUGXMLDUMP"></a><h3>xmlSecTransformDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecTransformDebugXmlDump (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <font>FILE</font> *output);</pre>
-<p>Prints transform's debug information to <code class="PARAMETER">output</code> in XML format.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16008"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16013"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMIDSSHUTDOWN"></a><h3>xmlSecTransformIdsShutdown ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecTransformIdsShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Shuts down the keys data klasses. This function is called from the
+<a href="xmlsec-xmlsec.html#XMLSECSHUTDOWN"><span class="TYPE">xmlSecShutdown</span></a> function and the application should not call it directly.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMGETNAME"></a><h3>xmlSecTransformGetName()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformGetName(transform)</pre>
-<p>Macro. Returns transform name.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN16026"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMIDSREGISTERDEFAULT"></a><h3>xmlSecTransformIdsRegisterDefault ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformIdsRegisterDefault (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Registers default (implemented by XML Security Library)
+transform klasses: XPath transform, Base64 transform, ...</p>
+<div class="REFSECT3">
+<a name="AEN19728"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMISVALID"></a><h3>xmlSecTransformIsValid()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformIsValid(transform)</pre>
-<p>Macro. Returns 1 if the <code class="PARAMETER">transform</code> is valid or 0 otherwise.</p>
-<p></p>
+<a name="XMLSECTRANSFORMIDSREGISTER"></a><h3>xmlSecTransformIdsRegister ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformIdsRegister (<code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> id</code>);</pre>
+<p>Registers <code class="PARAMETER">id</code>
+ in the global list of transform klasses.</p>
+<div class="REFSECT3">
+<a name="AEN19743"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN19745"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>id</p></td>
+<td><p>the transform klass.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN16040"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN19754"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCHECKID"></a><h3>xmlSecTransformCheckId()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformCheckId(transform, i)</pre>
-<p>Macro. Returns 1 if the <code class="PARAMETER">transform</code> is valid and has specified id <code class="PARAMETER">i</code>
-or 0 otherwise.</p>
-<p></p>
+<a name="XMLSECTRANSFORMURITYPECHECK"></a><h3>xmlSecTransformUriTypeCheck ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformUriTypeCheck (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPE"><span class="TYPE">xmlSecTransformUriType</span></a> type</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *uri</code>);</pre>
+<p>Checks if <code class="PARAMETER">uri</code>
+ matches expected type <code class="PARAMETER">type</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN19773"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN19775"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>type</p></td>
+<td><p>the expected URI type.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>uri</p></td>
+<td><p>the uri for checking.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16055"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16060"><span style="white-space: nowrap"><code class="PARAMETER">i</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform id.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN19790"></a><h4>Returns</h4>
+<p> 1 if <code class="PARAMETER">uri</code>
+matches <code class="PARAMETER">type</code>
+, 0 if not or a negative value
+if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCHECKSIZE"></a><h3>xmlSecTransformCheckSize()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformCheckSize(transform, size)</pre>
-<p>Macro. Returns 1 if the <code class="PARAMETER">transform</code> is valid and has at least <code class="PARAMETER">size</code>
-bytes or 0 otherwise.</p>
-<p></p>
+<a name="XMLSECTRANSFORMCTXPREEXECUTECALLBACK"></a><h3>xmlSecTransformCtxPreExecuteCallback ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecTransformCtxPreExecuteCallback<span class="c_punctuation"><span class="PHRASE">)</span></span>
+ (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>The callback called after creating transforms chain but before
+starting data processing. Application can use this callback to
+do additional transforms chain verification or modification and
+aborting transforms execution (if necessary).</p>
+<div class="REFSECT3">
+<a name="AEN19808"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN19810"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform's context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16075"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16080"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform object size.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN19819"></a><h4>Returns</h4>
+<p> 0 on success and a negative value otherwise (in this case,
+transforms chain will not be executed and xmlsec processing stops).</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCONNECT"></a><h3>xmlSecTransformConnect ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformConnect (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> left,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> right,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>If the data object is a node-set and the next transform requires octets,
-the signature application MUST attempt to convert the node-set to an octet
-stream using Canonical XML [XML-C14N].</p>
-<p>The story is different if the right transform is base64 decode
-(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-Base-64</span></font>):</p>
-<p>This transform requires an octet stream for input. If an XPath node-set
-(or sufficiently functional alternative) is given as input, then it is
-converted to an octet stream by performing operations logically equivalent
-to 1) applying an XPath transform with expression self::<font><code class="FUNCTION">text()</code></font>, then 2)
-taking the string-value of the node-set. Thus, if an XML element is
-identified by a barename XPointer in the Reference URI, and its content
-consists solely of base64 encoded character data, then this transform
-automatically strips away the start and end tags of the identified element
-and any of its descendant elements as well as any descendant comments and
-processing instructions. The output of this transform is an octet stream.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16103"><span style="white-space: nowrap"><code class="PARAMETER">left</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to left (prev) transform.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16108"><span style="white-space: nowrap"><code class="PARAMETER">right</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to right (next) transform.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16113"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's chaing processing context.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16118"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMCTXCREATE"></a><h3>xmlSecTransformCtxCreate ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="RETURNVALUE">xmlSecTransformCtxPtr</span></a>
+xmlSecTransformCtxCreate (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Creates transforms chain processing context.
+The caller is responsible for destroying returned object by calling
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXDESTROY"><span class="TYPE">xmlSecTransformCtxDestroy</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN19834"></a><h4>Returns</h4>
+<p> pointer to newly allocated context object or NULL if an error
+occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMREMOVE"></a><h3>xmlSecTransformRemove ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecTransformRemove (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform);</pre>
-<p>Removes <code class="PARAMETER">transform</code> from the chain.</p>
-<p></p>
+<a name="XMLSECTRANSFORMCTXDESTROY"></a><h3>xmlSecTransformCtxDestroy ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecTransformCtxDestroy (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>);</pre>
+<p>Destroy context object created with <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXCREATE"><span class="TYPE">xmlSecTransformCtxCreate</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN19850"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN19852"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN16134"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransform</span></a> structure.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDEFAULTGETDATATYPE"></a><h3>xmlSecTransformDefaultGetDataType ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE">xmlSecTransformDataType</a> xmlSecTransformDefaultGetDataType
- (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMMODE">xmlSecTransformMode</a> mode,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Gets transform input (<code class="PARAMETER">mode</code> is "push") or output (<code class="PARAMETER">mode</code> is "pop") data
-type (binary or XML) by analyzing available pushBin/popBin/pushXml/popXml
-methods.</p>
+<a name="XMLSECTRANSFORMCTXINITIALIZE"></a><h3>xmlSecTransformCtxInitialize ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformCtxInitialize (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>);</pre>
+<p>Initializes transforms chain processing context.
+The caller is responsible for cleaning up returned object by calling
+<a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXFINALIZE"><span class="TYPE">xmlSecTransformCtxFinalize</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN19874"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN19876"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN19885"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCTXFINALIZE"></a><h3>xmlSecTransformCtxFinalize ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecTransformCtxFinalize (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>);</pre>
+<p>Cleans up <code class="PARAMETER">ctx</code>
+ object initialized with <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXINITIALIZE"><span class="TYPE">xmlSecTransformCtxInitialize</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN19902"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN19904"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16155"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16160"><span style="white-space: nowrap"><code class="PARAMETER">mode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the data mode (push or pop).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16165"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's chaing processing context.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16170"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's data type for the <code class="PARAMETER">mode</code> operation.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDEFAULTPUSHBIN"></a><h3>xmlSecTransformDefaultPushBin ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformDefaultPushBin (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <font>int</font> final,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Process binary <code class="PARAMETER">data</code> by calling transform's execute method and pushes
-results to next transform.</p>
+<a name="XMLSECTRANSFORMCTXRESET"></a><h3>xmlSecTransformCtxReset ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecTransformCtxReset (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>);</pre>
+<p>Resets transfroms context for new processing.</p>
+<div class="REFSECT3">
+<a name="AEN19924"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN19926"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCTXCOPYUSERPREF"></a><h3>xmlSecTransformCtxCopyUserPref ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformCtxCopyUserPref (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> dst</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> src</code>);</pre>
+<p>Copies user settings from <code class="PARAMETER">src</code>
+ context to <code class="PARAMETER">dst</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN19951"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN19953"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>dst</p></td>
+<td><p>the pointer to destination transforms chain processing context.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>src</p></td>
+<td><p>the pointer to source transforms chain processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN19968"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCTXSETURI"></a><h3>xmlSecTransformCtxSetUri ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformCtxSetUri (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *uri</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> hereNode</code>);</pre>
+<p>Parses uri and adds xpointer transforms if required.</p>
+<p>The following examples demonstrate what the URI attribute identifies and
+how it is dereferenced
+(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-ReferenceProcessingModel</span></font>):</p>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16191"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
-</tr>
+<ul>
+<li><p>URI="http://example.com/bar.xml"
+identifies the octets that represent the external resource
+'http://example.com/bar.xml', that is probably an XML document given
+its file extension.</p></li>
+<li><p>URI="http://example.com/bar.xml<font><span class="TYPE">chapter1</span></font>"
+identifies the element with ID attribute value 'chapter1' of the
+external XML resource 'http://example.com/bar.xml', provided as an
+octet stream. Again, for the sake of interoperability, the element
+identified as 'chapter1' should be obtained using an XPath transform
+rather than a URI fragment (barename XPointer resolution in external
+resources is not REQUIRED in this specification).</p></li>
+<li><p>URI=""
+identifies the node-set (minus any comment nodes) of the XML resource
+containing the signature</p></li>
+<li><p>URI="<font><span class="TYPE">chapter1</span></font>"
+identifies a node-set containing the element with ID attribute value
+'chapter1' of the XML resource containing the signature. XML Signature
+(and its applications) modify this node-set to include the element plus
+all descendents including namespaces and attributes -- but not comments.</p></li>
+</ul>
+<div class="REFSECT3">
+<a name="AEN20004"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20006"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16196"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input binary data,</p></td>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16201"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input data size.</p></td>
+<td><p>uri</p></td>
+<td><p>the URI.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16206"><span style="white-space: nowrap"><code class="PARAMETER">final</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag: if set to 1 then it's the last
- data chunk.</p></td>
+<td><p>hereNode</p></td>
+<td><p>the pointer to "here" node required by some
+XML transforms (may be NULL).</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20027"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCTXAPPEND"></a><h3>xmlSecTransformCtxAppend ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformCtxAppend (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>);</pre>
+<p>Connects the <code class="PARAMETER">transform</code>
+ to the end of the chain of transforms in the <code class="PARAMETER">ctx</code>
+
+(see <a href="xmlsec-transforms.html#XMLSECTRANSFORMCONNECT"><span class="TYPE">xmlSecTransformConnect</span></a> function for details).</p>
+<div class="REFSECT3">
+<a name="AEN20048"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20050"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16211"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16216"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>transform</p></td>
+<td><p>the pointer to new transform.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20065"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDEFAULTPOPBIN"></a><h3>xmlSecTransformDefaultPopBin ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformDefaultPopBin (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> maxDataSize,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *dataSize,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Pops data from previous transform in the chain, processes data by calling
-transform's execute method and returns result in the <code class="PARAMETER">data</code> buffer. The
-size of returned data is placed in the <code class="PARAMETER">dataSize</code>.</p>
-<p></p>
+<a name="XMLSECTRANSFORMCTXPREPEND"></a><h3>xmlSecTransformCtxPrepend ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformCtxPrepend (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>);</pre>
+<p>Connects the <code class="PARAMETER">transform</code>
+ to the beggining of the chain of transforms in the <code class="PARAMETER">ctx</code>
+
+(see <a href="xmlsec-transforms.html#XMLSECTRANSFORMCONNECT"><span class="TYPE">xmlSecTransformConnect</span></a> function for details).</p>
+<div class="REFSECT3">
+<a name="AEN20086"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN20088"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16237"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16242"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the buffer to store result data.</p></td>
+<td><p>transform</p></td>
+<td><p>the pointer to new transform.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20103"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCTXCREATEANDAPPEND"></a><h3>xmlSecTransformCtxCreateAndAppend ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="RETURNVALUE">xmlSecTransformPtr</span></a>
+xmlSecTransformCtxCreateAndAppend (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> id</code>);</pre>
+<p>Creaeates new transform and connects it to the end of the chain of
+transforms in the <code class="PARAMETER">ctx</code>
+ (see <a href="xmlsec-transforms.html#XMLSECTRANSFORMCONNECT"><span class="TYPE">xmlSecTransformConnect</span></a> function for details).</p>
+<div class="REFSECT3">
+<a name="AEN20123"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20125"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16247"><span style="white-space: nowrap"><code class="PARAMETER">maxDataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of the buffer <font><span class="TYPE">data</span></font>.</p></td>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16254"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to returned data size.</p></td>
+<td><p>id</p></td>
+<td><p>the new transform klass.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20140"></a><h4>Returns</h4>
+<p> pointer to newly created transform or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCTXCREATEANDPREPEND"></a><h3>xmlSecTransformCtxCreateAndPrepend ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="RETURNVALUE">xmlSecTransformPtr</span></a>
+xmlSecTransformCtxCreateAndPrepend (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> id</code>);</pre>
+<p>Creaeates new transform and connects it to the end of the chain of
+transforms in the <code class="PARAMETER">ctx</code>
+ (see <a href="xmlsec-transforms.html#XMLSECTRANSFORMCONNECT"><span class="TYPE">xmlSecTransformConnect</span></a> function for details).</p>
+<div class="REFSECT3">
+<a name="AEN20160"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20162"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16259"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16264"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>id</p></td>
+<td><p>the new transform klass.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20177"></a><h4>Returns</h4>
+<p> pointer to newly created transform or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDEFAULTPUSHXML"></a><h3>xmlSecTransformDefaultPushXml ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformDefaultPushXml (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nodes,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Processes <code class="PARAMETER">nodes</code> by calling transform's execute method and pushes
-result to the next transform in the chain.</p>
+<a name="XMLSECTRANSFORMCTXNODEREAD"></a><h3>xmlSecTransformCtxNodeRead ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="RETURNVALUE">xmlSecTransformPtr</span></a>
+xmlSecTransformCtxNodeRead (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE"><span class="TYPE">xmlSecTransformUsage</span></a> usage</code>);</pre>
+<p>Reads the transform from the <code class="PARAMETER">node</code>
+ and appends it to the current chain
+of transforms in <code class="PARAMETER">ctx</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN20199"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20201"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to transform's node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>usage</p></td>
+<td><p>the transform's usage (signature, encryption, etc.).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20222"></a><h4>Returns</h4>
+<p> pointer to newly created transform or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCTXNODESLISTREAD"></a><h3>xmlSecTransformCtxNodesListRead ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformCtxNodesListRead (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE"><span class="TYPE">xmlSecTransformUsage</span></a> usage</code>);</pre>
+<p>Reads transforms from the <dsig:Transform/> children of the <code class="PARAMETER">node</code>
+ and
+appends them to the current transforms chain in <code class="PARAMETER">ctx</code>
+ object.</p>
+<div class="REFSECT3">
+<a name="AEN20244"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20246"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to <dsig:Transform/> nodes parent node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>usage</p></td>
+<td><p>the transform's usage (signature, encryption, etc.).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20267"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCTXPREPARE"></a><h3>xmlSecTransformCtxPrepare ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformCtxPrepare (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE"><span class="TYPE">xmlSecTransformDataType</span></a> inputDataType</code>);</pre>
+<p>Prepares the transform context for processing data of <code class="PARAMETER">inputDataType</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN20285"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20287"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>inputDataType</p></td>
+<td><p>the expected input type.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16282"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
-</tr>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20302"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCTXBINARYEXECUTE"></a><h3>xmlSecTransformCtxBinaryExecute ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformCtxBinaryExecute (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>);</pre>
+<p>Processes binary data using transforms chain in the <code class="PARAMETER">ctx</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN20323"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20325"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16287"><span style="white-space: nowrap"><code class="PARAMETER">nodes</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input nodes.</p></td>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16292"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td><p>data</p></td>
+<td><p>the input binary data buffer.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16297"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the input data size.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20346"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMDEFAULTPOPXML"></a><h3>xmlSecTransformDefaultPopXml ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformDefaultPopXml (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> *nodes,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Pops data from previous transform in the chain, processes the data
-by calling transform's execute method and returns result in <code class="PARAMETER">nodes</code>.</p>
+<a name="XMLSECTRANSFORMCTXURIEXECUTE"></a><h3>xmlSecTransformCtxUriExecute ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformCtxUriExecute (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *uri</code>);</pre>
+<p>Process binary data from the URI using transforms chain in <code class="PARAMETER">ctx</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN20364"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20366"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>uri</p></td>
+<td><p>the URI.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20381"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCTXXMLEXECUTE"></a><h3>xmlSecTransformCtxXmlExecute ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformCtxXmlExecute (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>,
+ <code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> nodes</code>);</pre>
+<p>Process <code class="PARAMETER">nodes</code>
+ using transforms in the transforms chain in <code class="PARAMETER">ctx</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN20400"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20402"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>nodes</p></td>
+<td><p>the input node set.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20417"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCTXEXECUTE"></a><h3>xmlSecTransformCtxExecute ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformCtxExecute (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlDocPtr</span></font> doc</code>);</pre>
+<p>Executes transforms chain in <code class="PARAMETER">ctx</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN20435"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20437"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>doc</p></td>
+<td><p>the pointer to input document.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16315"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
-</tr>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20452"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCTXDEBUGDUMP"></a><h3>xmlSecTransformCtxDebugDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecTransformCtxDebugDump (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints transforms context debug information to <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN20470"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20472"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCTXDEBUGXMLDUMP"></a><h3>xmlSecTransformCtxDebugXmlDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecTransformCtxDebugXmlDump (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> ctx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints transforms context debug information to <code class="PARAMETER">output</code>
+ in XML format.</p>
+<div class="REFSECT3">
+<a name="AEN20502"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20504"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>ctx</p></td>
+<td><p>the pointer to transforms chain processing context.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCREATE"></a><h3>xmlSecTransformCreate ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="RETURNVALUE">xmlSecTransformPtr</span></a>
+xmlSecTransformCreate (<code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> id</code>);</pre>
+<p>Creates new transform of the <code class="PARAMETER">id</code>
+ klass. The caller is responsible for
+destroying returned tansform using <a href="xmlsec-transforms.html#XMLSECTRANSFORMDESTROY"><span class="TYPE">xmlSecTransformDestroy</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN20533"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20535"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>id</p></td>
+<td><p>the transform id to create.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20544"></a><h4>Returns</h4>
+<p> pointer to newly created transform or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMDESTROY"></a><h3>xmlSecTransformDestroy ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecTransformDestroy (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>);</pre>
+<p>Destroys transform created with <a href="xmlsec-transforms.html#XMLSECTRANSFORMCREATE"><span class="TYPE">xmlSecTransformCreate</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN20560"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20562"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMNODEREAD"></a><h3>xmlSecTransformNodeRead ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="RETURNVALUE">xmlSecTransformPtr</span></a>
+xmlSecTransformNodeRead (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE"><span class="TYPE">xmlSecTransformUsage</span></a> usage</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Reads transform from the <code class="PARAMETER">node</code>
+ as follows:</p>
+<p> 1) reads "Algorithm" attribute;</p>
+<p> 2) checks the lists of known and allowed transforms;</p>
+<p> 3) calls transform's create method;</p>
+<p> 4) calls transform's read transform node method.</p>
+<div class="REFSECT3">
+<a name="AEN20593"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20595"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16320"><span style="white-space: nowrap"><code class="PARAMETER">nodes</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to store popinter to result nodes.</p></td>
+<td><p>node</p></td>
+<td><p>the pointer to the transform's node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16325"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td><p>usage</p></td>
+<td><p>the transform usage (signature, encryption, ...).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16330"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>transformCtx</p></td>
+<td><p>the transform's chaing processing context.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20616"></a><h4>Returns</h4>
+<p> pointer to newly created transform or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCREATEOUTPUTBUFFER"></a><h3>xmlSecTransformCreateOutputBuffer ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlOutputBufferPtr</font> xmlSecTransformCreateOutputBuffer (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Creates output buffer to write data to <code class="PARAMETER">transform</code>.</p>
-<p></p>
+<a name="XMLSECTRANSFORMPUMP"></a><h3>xmlSecTransformPump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformPump (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> left</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> right</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Pops data from <code class="PARAMETER">left</code>
+ transform and pushes to <code class="PARAMETER">right</code>
+ transform until
+no more data is available.</p>
+<div class="REFSECT3">
+<a name="AEN20638"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN20640"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16347"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
+<td><p>left</p></td>
+<td><p>the source pumping transform.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16352"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td><p>right</p></td>
+<td><p>the destination pumping transform.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16357"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to new output buffer or NULL if an error occurs.</p></td>
+<td><p>transformCtx</p></td>
+<td><p>the transform's chaing processing context.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20661"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMCREATEINPUTBUFFER"></a><h3>xmlSecTransformCreateInputBuffer ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlParserInputBufferPtr</font> xmlSecTransformCreateInputBuffer
- (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Creates input buffer to read data from <code class="PARAMETER">transform</code>.</p>
-<p></p>
+<a name="XMLSECTRANSFORMSETKEY"></a><h3>xmlSecTransformSetKey ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformSetKey (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>Sets the transform's key.</p>
+<div class="REFSECT3">
+<a name="AEN20678"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN20680"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16374"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform.</p></td>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16379"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16384"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to new input buffer or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20695"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMSETKEYREQ"></a><h3>xmlSecTransformSetKeyReq ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformSetKeyReq (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYREQ"><span class="TYPE">xmlSecKeyReqPtr</span></a> keyReq</code>);</pre>
+<p>Sets the key requirements for <code class="PARAMETER">transform</code>
+ in the <code class="PARAMETER">keyReq</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN20714"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20716"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>keyReq</p></td>
+<td><p>the pointer to keys requirements object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20731"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMVERIFY"></a><h3>xmlSecTransformVerify ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformVerify (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Verifies the data with transform's processing results
+(for digest, HMAC and signature transforms). The verification
+result is stored in the <font><span class="TYPE">status</span></font> member of <a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransform</span></a> object.</p>
+<div class="REFSECT3">
+<a name="AEN20758"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20760"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>data</p></td>
+<td><p>the binary data for verification.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataSize</p></td>
+<td><p>the data size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the transform's chaing processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20787"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMVERIFYNODECONTENT"></a><h3>xmlSecTransformVerifyNodeContent ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformVerifyNodeContent (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Gets the <code class="PARAMETER">node</code>
+ content, base64 decodes it and calls <a href="xmlsec-transforms.html#XMLSECTRANSFORMVERIFY"><span class="TYPE">xmlSecTransformVerify</span></a>
+function to verify binary results.</p>
+<div class="REFSECT3">
+<a name="AEN20810"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20812"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the transform's chaing processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20833"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMGETDATATYPE"></a><h3>xmlSecTransformGetDataType ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE"><span class="RETURNVALUE">xmlSecTransformDataType</span></a>
+xmlSecTransformGetDataType (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMMODE"><span class="TYPE">xmlSecTransformMode</span></a> mode</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Gets transform input (<code class="PARAMETER">mode</code>
+ is "push") or output (<code class="PARAMETER">mode</code>
+ is "pop") data
+type (binary or XML).</p>
+<div class="REFSECT3">
+<a name="AEN20855"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20857"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>mode</p></td>
+<td><p>the data mode (push or pop).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the transform's chaing processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20878"></a><h4>Returns</h4>
+<p> the transform's data type for the <code class="PARAMETER">mode</code>
+operation.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMPUSHBIN"></a><h3>xmlSecTransformPushBin ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformPushBin (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> final</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Process binary <code class="PARAMETER">data</code>
+ and pushes results to next transform.</p>
+<div class="REFSECT3">
+<a name="AEN20906"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20908"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>data</p></td>
+<td><p>the input binary data,</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataSize</p></td>
+<td><p>the input data size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>final</p></td>
+<td><p>the flag: if set to 1 then it's the last
+data chunk.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN20941"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMPOPBIN"></a><h3>xmlSecTransformPopBin ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformPopBin (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> maxDataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> *dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Pops data from previous transform in the chain, processes data and
+returns result in the <code class="PARAMETER">data</code>
+ buffer. The size of returned data is
+placed in the <code class="PARAMETER">dataSize</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN20969"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN20971"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>data</p></td>
+<td><p>the buffer to store result data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>maxDataSize</p></td>
+<td><p>the size of the buffer <font><span class="TYPE">data</span></font>.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataSize</p></td>
+<td><p>the pointer to returned data size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21006"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMPUSHXML"></a><h3>xmlSecTransformPushXml ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformPushXml (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> nodes</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Processes <code class="PARAMETER">nodes</code>
+ and pushes result to the next transform in the chain.</p>
+<div class="REFSECT3">
+<a name="AEN21027"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21029"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>nodes</p></td>
+<td><p>the input nodes.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21050"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMPOPXML"></a><h3>xmlSecTransformPopXml ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformPopXml (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> *nodes</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Pops data from previous transform in the chain, processes the data and
+returns result in <code class="PARAMETER">nodes</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN21071"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21073"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>nodes</p></td>
+<td><p>the pointer to store popinter to result nodes.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21094"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMEXECUTE"></a><h3>xmlSecTransformExecute ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformExecute (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> last</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Executes transform (used by default popBin/pushBin/popXml/pushXml methods).</p>
+<div class="REFSECT3">
+<a name="AEN21114"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21116"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>last</p></td>
+<td><p>the flag: if set to 1 then it's the last data chunk.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the transform's chaing processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21137"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMDEBUGDUMP"></a><h3>xmlSecTransformDebugDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecTransformDebugDump (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints transform's debug information to <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN21155"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21157"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMDEBUGXMLDUMP"></a><h3>xmlSecTransformDebugXmlDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecTransformDebugXmlDump (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints transform's debug information to <code class="PARAMETER">output</code>
+ in XML format.</p>
+<div class="REFSECT3">
+<a name="AEN21187"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21189"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMGETNAME"></a><h3>xmlSecTransformGetName()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformGetName(transform)</pre>
+<p>Macro. Returns transform name.</p>
+<div class="REFSECT3">
+<a name="AEN21210"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21212"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMISVALID"></a><h3>xmlSecTransformIsValid()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformIsValid(transform)</pre>
+<p>Macro. Returns 1 if the <code class="PARAMETER">transform</code>
+ is valid or 0 otherwise.</p>
+<div class="REFSECT3">
+<a name="AEN21228"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21230"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCHECKID"></a><h3>xmlSecTransformCheckId()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformCheckId(transform, i)</pre>
+<p>Macro. Returns 1 if the <code class="PARAMETER">transform</code>
+ is valid and has specified id <code class="PARAMETER">i</code>
+
+or 0 otherwise.</p>
+<div class="REFSECT3">
+<a name="AEN21247"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21249"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>i</p></td>
+<td><p>the transform id.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCHECKSIZE"></a><h3>xmlSecTransformCheckSize()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformCheckSize(transform, size)</pre>
+<p>Macro. Returns 1 if the <code class="PARAMETER">transform</code>
+ is valid and has at least <code class="PARAMETER">size</code>
+
+bytes or 0 otherwise.</p>
+<div class="REFSECT3">
+<a name="AEN21272"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21274"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>size</p></td>
+<td><p>the transform object size.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCONNECT"></a><h3>xmlSecTransformConnect ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformConnect (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> left</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> right</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>If the data object is a node-set and the next transform requires octets,
+the signature application MUST attempt to convert the node-set to an octet
+stream using Canonical XML [XML-C14N].</p>
+<p>The story is different if the right transform is base64 decode
+(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-Base-64</span></font>):</p>
+<p>This transform requires an octet stream for input. If an XPath node-set
+(or sufficiently functional alternative) is given as input, then it is
+converted to an octet stream by performing operations logically equivalent
+to 1) applying an XPath transform with expression self::<font><code class="FUNCTION">text()</code></font>, then 2)
+taking the string-value of the node-set. Thus, if an XML element is
+identified by a barename XPointer in the Reference URI, and its content
+consists solely of base64 encoded character data, then this transform
+automatically strips away the start and end tags of the identified element
+and any of its descendant elements as well as any descendant comments and
+processing instructions. The output of this transform is an octet stream.</p>
+<div class="REFSECT3">
+<a name="AEN21312"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21314"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>left</p></td>
+<td><p>the pointer to left (prev) transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>right</p></td>
+<td><p>the pointer to right (next) transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the transform's chaing processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21335"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMREMOVE"></a><h3>xmlSecTransformRemove ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecTransformRemove (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>);</pre>
+<p>Removes <code class="PARAMETER">transform</code>
+ from the chain.</p>
+<div class="REFSECT3">
+<a name="AEN21350"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21352"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>transform</p></td>
+<td><p>the pointer to <a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransform</span></a> structure.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMDEFAULTGETDATATYPE"></a><h3>xmlSecTransformDefaultGetDataType ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE"><span class="RETURNVALUE">xmlSecTransformDataType</span></a>
+xmlSecTransformDefaultGetDataType (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMMODE"><span class="TYPE">xmlSecTransformMode</span></a> mode</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Gets transform input (<code class="PARAMETER">mode</code>
+ is "push") or output (<code class="PARAMETER">mode</code>
+ is "pop") data
+type (binary or XML) by analyzing available pushBin/popBin/pushXml/popXml
+methods.</p>
+<div class="REFSECT3">
+<a name="AEN21382"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21384"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>mode</p></td>
+<td><p>the data mode (push or pop).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the transform's chaing processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21405"></a><h4>Returns</h4>
+<p> the transform's data type for the <code class="PARAMETER">mode</code>
+operation.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMDEFAULTPUSHBIN"></a><h3>xmlSecTransformDefaultPushBin ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformDefaultPushBin (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> final</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Process binary <code class="PARAMETER">data</code>
+ by calling transform's execute method and pushes
+results to next transform.</p>
+<div class="REFSECT3">
+<a name="AEN21433"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21435"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>data</p></td>
+<td><p>the input binary data,</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataSize</p></td>
+<td><p>the input data size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>final</p></td>
+<td><p>the flag: if set to 1 then it's the last
+data chunk.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21468"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMDEFAULTPOPBIN"></a><h3>xmlSecTransformDefaultPopBin ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformDefaultPopBin (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> maxDataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> *dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Pops data from previous transform in the chain, processes data by calling
+transform's execute method and returns result in the <code class="PARAMETER">data</code>
+ buffer. The
+size of returned data is placed in the <code class="PARAMETER">dataSize</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN21496"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21498"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>data</p></td>
+<td><p>the buffer to store result data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>maxDataSize</p></td>
+<td><p>the size of the buffer <font><span class="TYPE">data</span></font>.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataSize</p></td>
+<td><p>the pointer to returned data size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21533"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMDEFAULTPUSHXML"></a><h3>xmlSecTransformDefaultPushXml ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformDefaultPushXml (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> nodes</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Processes <code class="PARAMETER">nodes</code>
+ by calling transform's execute method and pushes
+result to the next transform in the chain.</p>
+<div class="REFSECT3">
+<a name="AEN21554"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21556"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>nodes</p></td>
+<td><p>the input nodes.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21577"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMDEFAULTPOPXML"></a><h3>xmlSecTransformDefaultPopXml ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformDefaultPopXml (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> *nodes</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Pops data from previous transform in the chain, processes the data
+by calling transform's execute method and returns result in <code class="PARAMETER">nodes</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN21598"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21600"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>nodes</p></td>
+<td><p>the pointer to store popinter to result nodes.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21621"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCREATEOUTPUTBUFFER"></a><h3>xmlSecTransformCreateOutputBuffer ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlOutputBufferPtr</span></font>
+xmlSecTransformCreateOutputBuffer (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Creates output buffer to write data to <code class="PARAMETER">transform</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN21639"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21641"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21656"></a><h4>Returns</h4>
+<p> pointer to new output buffer or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCREATEINPUTBUFFER"></a><h3>xmlSecTransformCreateInputBuffer ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlParserInputBufferPtr</span></font>
+xmlSecTransformCreateInputBuffer (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Creates input buffer to read data from <code class="PARAMETER">transform</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN21674"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21676"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21691"></a><h4>Returns</h4>
+<p> pointer to new input buffer or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMINITIALIZEMETHOD"></a><h3>xmlSecTransformInitializeMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecTransformInitializeMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>);</pre>
+<p>The transform specific initialization method.</p>
+<div class="REFSECT3">
+<a name="AEN21707"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21709"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21718"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMFINALIZEMETHOD"></a><h3>xmlSecTransformFinalizeMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecTransformFinalizeMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>);</pre>
+<p>The transform specific destroy method.</p>
+<div class="REFSECT3">
+<a name="AEN21734"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21736"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMGETDATATYPEMETHOD"></a><h3>xmlSecTransformGetDataTypeMethod ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE"><span class="RETURNVALUE">xmlSecTransformDataType</span></a>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecTransformGetDataTypeMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMMODE"><span class="TYPE">xmlSecTransformMode</span></a> mode</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>The transform specific method to query information about transform
+data type in specified mode <code class="PARAMETER">mode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN21765"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21767"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>mode</p></td>
+<td><p>the mode.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21788"></a><h4>Returns</h4>
+<p> transform data type.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMNODEREADMETHOD"></a><h3>xmlSecTransformNodeReadMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecTransformNodeReadMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>The transform specific method to read the transform data from
+the <code class="PARAMETER">node</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN21811"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21813"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to <dsig:Transform/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21834"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMNODEWRITEMETHOD"></a><h3>xmlSecTransformNodeWriteMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecTransformNodeWriteMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>The transform specific method to write transform information to an XML node <code class="PARAMETER">node</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN21857"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21859"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to <dsig:Transform/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21880"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMSETKEYREQUIREMENTSMETHOD"></a><h3>xmlSecTransformSetKeyRequirementsMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecTransformSetKeyRequirementsMethod<span class="c_punctuation"><span class="PHRASE">)</span></span>
+ (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEYREQ"><span class="TYPE">xmlSecKeyReqPtr</span></a> keyReq</code>);</pre>
+<p>Transform specific method to set transform's key requirements.</p>
+<div class="REFSECT3">
+<a name="AEN21899"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21901"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>keyReq</p></td>
+<td><p>the pointer to key requirements structure.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21916"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMSETKEYMETHOD"></a><h3>xmlSecTransformSetKeyMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecTransformSetKeyMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> key</code>);</pre>
+<p>The transform specific method to set the key for use.</p>
+<div class="REFSECT3">
+<a name="AEN21935"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21937"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>key</p></td>
+<td><p>the pointer to key.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN21952"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMVERIFYMETHOD"></a><h3>xmlSecTransformVerifyMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecTransformVerifyMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>The transform specific method to verify transform processing results
+(used by digest and signature transforms). This method sets <code class="PARAMETER">status</code>
+
+member of the <a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransform</span></a> structure to either <a href="xmlsec-transforms.html#XMLSECTRANSFORMSTATUSOK"><span class="TYPE">xmlSecTransformStatusOk</span></a>
+if verification succeeded or <a href="xmlsec-transforms.html#XMLSECTRANSFORMSTATUSFAIL"><span class="TYPE">xmlSecTransformStatusFail</span></a> otherwise.</p>
+<div class="REFSECT3">
+<a name="AEN21984"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN21986"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>data</p></td>
+<td><p>the input buffer.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataSize</p></td>
+<td><p>the size of input buffer <code class="PARAMETER">data</code>
+.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN22014"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMPUSHBINMETHOD"></a><h3>xmlSecTransformPushBinMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecTransformPushBinMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> final</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>The transform specific method to process data from <code class="PARAMETER">data</code>
+ and push
+result to the next transform in the chain.</p>
+<div class="REFSECT3">
+<a name="AEN22043"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22045"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>data</p></td>
+<td><p>the input binary data,</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataSize</p></td>
+<td><p>the input data size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>final</p></td>
+<td><p>the flag: if set to 1 then it's the last
+data chunk.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN22078"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMPOPBINMETHOD"></a><h3>xmlSecTransformPopBinMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecTransformPopBinMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> maxDataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> *dataSize</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>The transform specific method to pop data from previous transform
+in the chain and return result in the <code class="PARAMETER">data</code>
+ buffer. The size of returned
+data is placed in the <code class="PARAMETER">dataSize</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN22108"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22110"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>data</p></td>
+<td><p>the buffer to store result data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>maxDataSize</p></td>
+<td><p>the size of the buffer <code class="PARAMETER">data</code>
+.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>dataSize</p></td>
+<td><p>the pointer to returned data size.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN22144"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMPUSHXMLMETHOD"></a><h3>xmlSecTransformPushXmlMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecTransformPushXmlMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> nodes</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>The transform specific method to process <code class="PARAMETER">nodes</code>
+ and push result to the next
+transform in the chain.</p>
+<div class="REFSECT3">
+<a name="AEN22167"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22169"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>nodes</p></td>
+<td><p>the input nodes.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN22190"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMPOPXMLMETHOD"></a><h3>xmlSecTransformPopXmlMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecTransformPopXmlMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> *nodes</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>The transform specific method to pop data from previous transform in the chain,
+process the data and return result in <code class="PARAMETER">nodes</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN22213"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22215"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>nodes</p></td>
+<td><p>the pointer to store popinter to result nodes.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN22236"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMEXECUTEMETHOD"></a><h3>xmlSecTransformExecuteMethod ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+<span class="c_punctuation"><span class="PHRASE">(</span></span>*xmlSecTransformExecuteMethod<span class="c_punctuation"><span class="PHRASE">)</span></span> (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> last</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtxPtr</span></a> transformCtx</code>);</pre>
+<p>Transform specific method to process a chunk of data.</p>
+<div class="REFSECT3">
+<a name="AEN22258"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22260"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to transform object.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>last</p></td>
+<td><p>the flag: if set to 1 then it's the last data chunk.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformCtx</p></td>
+<td><p>the pointer to transform context object.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN22281"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMKLASSGETNAME"></a><h3>xmlSecTransformKlassGetName()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformKlassGetName(klass)</pre>
+<p>Macro. Returns transform klass name.</p>
+<div class="REFSECT3">
+<a name="AEN22290"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22292"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>klass</p></td>
+<td><p>the transofrm's klass.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMIDLISTGETKLASS"></a><h3>xmlSecTransformIdListGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecPtrListId</span></font>
+xmlSecTransformIdListGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The transform id list klass.</p>
+<div class="REFSECT3">
+<a name="AEN22311"></a><h4>Returns</h4>
+<p> pointer to the transform id list klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMIDLISTFIND"></a><h3>xmlSecTransformIdListFind ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformIdListFind (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> transformId</code>);</pre>
+<p>Lookups <code class="PARAMETER">dataId</code>
+ in <code class="PARAMETER">list</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN22330"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22332"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>list</p></td>
+<td><p>the pointer to transform ids list.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>transformId</p></td>
+<td><p>the transform klass.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN22347"></a><h4>Returns</h4>
+<p> 1 if <code class="PARAMETER">dataId</code>
+is found in the <code class="PARAMETER">list</code>
+, 0 if not and a negative
+value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMIDLISTFINDBYHREF"></a><h3>xmlSecTransformIdListFindByHref ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformIdListFindByHref (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *href</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE"><span class="TYPE">xmlSecTransformUsage</span></a> usage</code>);</pre>
+<p>Lookups data klass in the list with given <code class="PARAMETER">href</code>
+ and <code class="PARAMETER">usage</code>
+ in <code class="PARAMETER">list</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN22372"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22374"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>list</p></td>
+<td><p>the pointer to transform ids list.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>href</p></td>
+<td><p>the desired transform klass href.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>usage</p></td>
+<td><p>the desired transform usage.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN22395"></a><h4>Returns</h4>
+<p> transform klass is found and NULL otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMIDLISTFINDBYNAME"></a><h3>xmlSecTransformIdListFindByName ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformIdListFindByName (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE"><span class="TYPE">xmlSecTransformUsage</span></a> usage</code>);</pre>
+<p>Lookups data klass in the list with given <code class="PARAMETER">name</code>
+ and <code class="PARAMETER">usage</code>
+ in <code class="PARAMETER">list</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN22418"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22420"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>list</p></td>
+<td><p>the pointer to transform ids list.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>name</p></td>
+<td><p>the desired transform klass name.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>usage</p></td>
+<td><p>the desired transform usage.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN22441"></a><h4>Returns</h4>
+<p> transform klass is found and NULL otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMIDLISTDEBUGDUMP"></a><h3>xmlSecTransformIdListDebugDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecTransformIdListDebugDump (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints binary transform debug information to <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN22459"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22461"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>list</p></td>
+<td><p>the pointer to transform ids list.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMIDLISTDEBUGXMLDUMP"></a><h3>xmlSecTransformIdListDebugXmlDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecTransformIdListDebugXmlDump (<code class="PARAMETER"><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> list</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints binary transform debug information to <code class="PARAMETER">output</code>
+ in XML format.</p>
+<div class="REFSECT3">
+<a name="AEN22491"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22493"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>list</p></td>
+<td><p>the pointer to transform ids list.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMIDUNKNOWN"></a><h3>xmlSecTransformIdUnknown</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformIdUnknown ((xmlSecTransformId)NULL)</pre>
+<p>The "unknown" transform id (NULL).</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMBASE64GETKLASS"></a><h3>xmlSecTransformBase64GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformBase64GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The Base64 transform klass (http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-Base-64</span></font>).
+The normative specification for base64 decoding transforms is RFC 2045
+(http://www.ietf.org/rfc/rfc2045.txt). The base64 Transform element has
+no content. The input is decoded by the algorithms. This transform is
+useful if an application needs to sign the raw data associated with
+the encoded content of an element.</p>
+<div class="REFSECT3">
+<a name="AEN22526"></a><h4>Returns</h4>
+<p> base64 transform id.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMBASE64SETLINESIZE"></a><h3>xmlSecTransformBase64SetLineSize ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecTransformBase64SetLineSize (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> lineSize</code>);</pre>
+<p>Sets the max line size to <code class="PARAMETER">lineSize</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN22544"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22546"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to BASE64 encode transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>lineSize</p></td>
+<td><p>the new max line size.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMINCLC14NGETKLASS"></a><h3>xmlSecTransformInclC14NGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformInclC14NGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Inclusive (regular) canonicalization that omits comments transform klass
+(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-c14nAlg</span></font> and
+http://www.w3.org/TR/2001/REC-xml-c14n-20010315).</p>
+<div class="REFSECT3">
+<a name="AEN22573"></a><h4>Returns</h4>
+<p> c14n transform id.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMINCLC14NWITHCOMMENTSGETKLASS"></a><h3>xmlSecTransformInclC14NWithCommentsGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformInclC14NWithCommentsGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Inclusive (regular) canonicalization that includes comments transform klass
+(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-c14nAlg</span></font> and
+http://www.w3.org/TR/2001/REC-xml-c14n-20010315).</p>
+<div class="REFSECT3">
+<a name="AEN22588"></a><h4>Returns</h4>
+<p> c14n with comments transform id.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMINCLC14N11GETKLASS"></a><h3>xmlSecTransformInclC14N11GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformInclC14N11GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>C14N version 1.1 (http://www.w3.org/TR/xml-c14n11)</p>
+<div class="REFSECT3">
+<a name="AEN22601"></a><h4>Returns</h4>
+<p> c14n v1.1 transform id.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMINCLC14N11WITHCOMMENTSGETKLASS"></a><h3>xmlSecTransformInclC14N11WithCommentsGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformInclC14N11WithCommentsGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>C14N version 1.1 (http://www.w3.org/TR/xml-c14n11) with comments</p>
+<div class="REFSECT3">
+<a name="AEN22614"></a><h4>Returns</h4>
+<p> c14n v1.1 with comments transform id.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMEXCLC14NGETKLASS"></a><h3>xmlSecTransformExclC14NGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformExclC14NGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Exclusive canoncicalization that ommits comments transform klass
+(http://www.w3.org/TR/xml-exc-c14n/).</p>
+<div class="REFSECT3">
+<a name="AEN22627"></a><h4>Returns</h4>
+<p> exclusive c14n transform id.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMEXCLC14NWITHCOMMENTSGETKLASS"></a><h3>xmlSecTransformExclC14NWithCommentsGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformExclC14NWithCommentsGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Exclusive canoncicalization that includes comments transform klass
+(http://www.w3.org/TR/xml-exc-c14n/).</p>
+<div class="REFSECT3">
+<a name="AEN22640"></a><h4>Returns</h4>
+<p> exclusive c14n with comments transform id.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMENVELOPEDGETKLASS"></a><h3>xmlSecTransformEnvelopedGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformEnvelopedGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The enveloped transform klass (http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-EnvelopedSignature</span></font>):</p>
+<p>An enveloped signature transform T removes the whole Signature element
+containing T from the digest calculation of the Reference element
+containing T. The entire string of characters used by an XML processor
+to match the Signature with the XML production element is removed.
+The output of the transform is equivalent to the output that would
+result from replacing T with an XPath transform containing the following
+XPath parameter element:</p>
+<p> <XPath xmlns:dsig="...">
+ count(ancestor-or-self::dsig:Signature |
+ <font><code class="FUNCTION">here()</code></font>/ancestor::dsig:Signature[1]) >
+ count(ancestor-or-self::dsig:Signature)
+ </XPath></p>
+<p>The input and output requirements of this transform are identical to
+those of the XPath transform, but may only be applied to a node-set from
+its parent XML document. Note that it is not necessary to use an XPath
+expression evaluator to create this transform. However, this transform
+MUST produce output in exactly the same manner as the XPath transform
+parameterized by the XPath expression above.</p>
+<div class="REFSECT3">
+<a name="AEN22660"></a><h4>Returns</h4>
+<p> enveloped transform id.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMXPATHGETKLASS"></a><h3>xmlSecTransformXPathGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformXPathGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The XPath transform evaluates given XPath expression and
+intersects the result with the previous nodes set. See
+http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-XPath</span></font> for more details.</p>
+<div class="REFSECT3">
+<a name="AEN22675"></a><h4>Returns</h4>
+<p> XPath transform id.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMXPATH2GETKLASS"></a><h3>xmlSecTransformXPath2GetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformXPath2GetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The XPath2 transform (http://www.w3.org/TR/xmldsig-filter2/).</p>
+<div class="REFSECT3">
+<a name="AEN22688"></a><h4>Returns</h4>
+<p> XPath2 transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMXPOINTERGETKLASS"></a><h3>xmlSecTransformXPointerGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformXPointerGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The XPointer transform klass
+(http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt).</p>
+<div class="REFSECT3">
+<a name="AEN22701"></a><h4>Returns</h4>
+<p> XPointer transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMXPOINTERSETEXPR"></a><h3>xmlSecTransformXPointerSetExpr ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformXPointerSetExpr (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *expr</code>,
+ <code class="PARAMETER"><a href="xmlsec-nodeset.html#XMLSECNODESETTYPE"><span class="TYPE">xmlSecNodeSetType</span></a> nodeSetType</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> hereNode</code>);</pre>
+<p>Sets the XPointer expression for an XPointer <code class="PARAMETER">transform</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN22725"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22727"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to XPointer transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>expr</p></td>
+<td><p>the XPointer expression.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>nodeSetType</p></td>
+<td><p>the type of evaluated XPointer expression.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>hereNode</p></td>
+<td><p>the pointer to "here" node.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN22754"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMRELATIONSHIPGETKLASS"></a><h3>xmlSecTransformRelationshipGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformRelationshipGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p></p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMXSLTGETKLASS"></a><h3>xmlSecTransformXsltGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformXsltGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>XSLT transform klass (http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-XSLT</span></font>):</p>
+<p>The normative specification for XSL Transformations is [XSLT].
+Specification of a namespace-qualified stylesheet element, which MUST be
+the sole child of the Transform element, indicates that the specified style
+sheet should be used. Whether this instantiates in-line processing of local
+XSLT declarations within the resource is determined by the XSLT processing
+model; the ordered application of multiple stylesheet may require multiple
+Transforms. No special provision is made for the identification of a remote
+stylesheet at a given URI because it can be communicated via an xsl:include
+or xsl:import within the stylesheet child of the Transform.</p>
+<p>This transform requires an octet stream as input. If the actual input is an
+XPath node-set, then the signature application should attempt to convert it
+to octets (apply Canonical XML]) as described in the Reference Processing
+Model (section 4.3.3.2).]</p>
+<p>The output of this transform is an octet stream. The processing rules for
+the XSL style sheet or transform element are stated in the XSLT specification
+[XSLT]. We RECOMMEND that XSLT transform authors use an output method of xml
+for XML and HTML. As XSLT implementations do not produce consistent
+serializations of their output, we further RECOMMEND inserting a transform
+after the XSLT transform to canonicalize the output. These steps will help
+to ensure interoperability of the resulting signatures among applications
+that support the XSLT transform. Note that if the output is actually HTML,
+then the result of these steps is logically equivalent [XHTML].</p>
+<div class="REFSECT3">
+<a name="AEN22782"></a><h4>Returns</h4>
+<p> pointer to XSLT transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMXSLTSETDEFAULTSECURITYPREFS"></a><h3>xmlSecTransformXsltSetDefaultSecurityPrefs ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecTransformXsltSetDefaultSecurityPrefs
+ (<code class="PARAMETER"><font><span class="TYPE">xsltSecurityPrefsPtr</span></font> sec</code>);</pre>
+<p>Sets the new default security preferences. The xmlsec default security policy is
+to disable everything.</p>
+<div class="REFSECT3">
+<a name="AEN22796"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22798"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>sec</p></td>
+<td><p>the new security preferences</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMREMOVEXMLTAGSC14NGETKLASS"></a><h3>xmlSecTransformRemoveXmlTagsC14NGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformRemoveXmlTagsC14NGetKlass
+ (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The "remove xml tags" transform klass (http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-Base-64</span></font>):
+Base64 transform requires an octet stream for input. If an XPath node-set
+(or sufficiently functional alternative) is given as input, then it is
+converted to an octet stream by performing operations logically equivalent
+to 1) applying an XPath transform with expression self::<font><code class="FUNCTION">text()</code></font>, then 2)
+taking the string-value of the node-set. Thus, if an XML element is
+identified by a barename XPointer in the Reference URI, and its content
+consists solely of base64 encoded character data, then this transform
+automatically strips away the start and end tags of the identified element
+and any of its descendant elements as well as any descendant comments and
+processing instructions. The output of this transform is an octet stream.</p>
+<div class="REFSECT3">
+<a name="AEN22821"></a><h4>Returns</h4>
+<p> "remove xml tags" transform id.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMVISA3DHACKGETKLASS"></a><h3>xmlSecTransformVisa3DHackGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecTransformId</span></font>
+xmlSecTransformVisa3DHackGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The Visa3DHack transform klass. The only reason why we need this
+is Visa3D protocol. It doesn't follow XML/XPointer/XMLDSig specs and allows
+invalid XPointer expressions in the URI attribute. Since we couldn't evaluate
+such expressions thru XPath/XPointer engine, we need to have this hack here.</p>
+<div class="REFSECT3">
+<a name="AEN22834"></a><h4>Returns</h4>
+<p> Visa3DHack transform klass.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMVISA3DHACKSETID"></a><h3>xmlSecTransformVisa3DHackSetID ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecTransformVisa3DHackSetID (<code class="PARAMETER"><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> transform</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *id</code>);</pre>
+<p>Sets the ID value for an Visa3DHack <code class="PARAMETER">transform</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN22852"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22854"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>transform</p></td>
+<td><p>the pointer to Visa3DHack transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>id</p></td>
+<td><p>the ID value.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN22869"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-TRANSFORMS.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSEC-TRANSFORM-BINARY-CHUNK:CAPS"></a><h3>XMLSEC_TRANSFORM_BINARY_CHUNK</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_TRANSFORM_BINARY_CHUNK 1024</pre>
+<p>The binary data chunks size. XMLSec processes binary data one chunk
+at a time. Changing this impacts xmlsec memory usage and performance.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMSTATUS"></a><h3>enum xmlSecTransformStatus</h3>
+<p>The transform execution status.</p>
+<div class="REFSECT3">
+<a name="AEN22885"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22887"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>xmlSecTransformStatusNone</p></td>
+<td><p>the status unknown.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecTransformStatusWorking</p></td>
+<td><p>the transform is executed.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecTransformStatusFinished</p></td>
+<td><p>the transform finished</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecTransformStatusOk</p></td>
+<td><p>the transform succeeded.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecTransformStatusFail</p></td>
+<td><p>the transform failed (an error occur).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMMODE"></a><h3>enum xmlSecTransformMode</h3>
+<p>The transform operation mode</p>
+<div class="REFSECT3">
+<a name="AEN22925"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22927"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>xmlSecTransformModeNone</p></td>
+<td><p>the mode is unknown.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecTransformModePush</p></td>
+<td><p>pushing data thru transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecTransformModePop</p></td>
+<td><p>popping data from transform.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMOPERATION"></a><h3>enum xmlSecTransformOperation</h3>
+<p>The transform operation.</p>
+<div class="REFSECT3">
+<a name="AEN22953"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN22955"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>xmlSecTransformOperationNone</p></td>
+<td><p>the operation is unknown.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecTransformOperationEncode</p></td>
+<td><p>the encode operation (for base64 transform).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecTransformOperationDecode</p></td>
+<td><p>the decode operation (for base64 transform).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecTransformOperationSign</p></td>
+<td><p>the sign or digest operation.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecTransformOperationVerify</p></td>
+<td><p>the verification of signature or digest operation.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecTransformOperationEncrypt</p></td>
+<td><p>the encryption operation.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecTransformOperationDecrypt</p></td>
+<td><p>the decryption operation.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMURITYPE"></a><h3>xmlSecTransformUriType</h3>
+<pre class="PROGRAMLISTING">typedef unsigned int xmlSecTransformUriType;</pre>
+<p>URI transform type bit mask.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMURITYPENONE"></a><h3>xmlSecTransformUriTypeNone</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformUriTypeNone 0x0000</pre>
+<p>The URI type is unknown or not set.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMURITYPEEMPTY"></a><h3>xmlSecTransformUriTypeEmpty</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformUriTypeEmpty 0x0001</pre>
+<p>The empty URI ("") type.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMURITYPESAMEDOCUMENT"></a><h3>xmlSecTransformUriTypeSameDocument</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformUriTypeSameDocument 0x0002</pre>
+<p>The smae document ("#...") but not empty ("") URI type.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMURITYPELOCAL"></a><h3>xmlSecTransformUriTypeLocal</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformUriTypeLocal 0x0004</pre>
+<p>The local URI ("file:///....") type.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMURITYPEREMOTE"></a><h3>xmlSecTransformUriTypeRemote</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformUriTypeRemote 0x0008</pre>
+<p>The remote URI type.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMURITYPEANY"></a><h3>xmlSecTransformUriTypeAny</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformUriTypeAny 0xFFFF</pre>
+<p>Any URI type.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMDATATYPE"></a><h3>xmlSecTransformDataType</h3>
+<pre class="PROGRAMLISTING">typedef xmlSecByte xmlSecTransformDataType;</pre>
+<p>Transform data type bit mask.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMDATATYPEUNKNOWN"></a><h3>xmlSecTransformDataTypeUnknown</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformDataTypeUnknown 0x0000</pre>
+<p>The transform data type is unknown or nor data expected.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMDATATYPEBIN"></a><h3>xmlSecTransformDataTypeBin</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformDataTypeBin 0x0001</pre>
+<p>The binary transform data.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMDATATYPEXML"></a><h3>xmlSecTransformDataTypeXml</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformDataTypeXml 0x0002</pre>
+<p>The xml transform data.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMUSAGE"></a><h3>xmlSecTransformUsage</h3>
+<pre class="PROGRAMLISTING">typedef unsigned int xmlSecTransformUsage;</pre>
+<p>The transform usage bit mask.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMINITIALIZEMETHOD"></a><h3>xmlSecTransformInitializeMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecTransformInitializeMethod) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform);</pre>
-<p>The transform specific initialization method.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16399"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16404"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMUSAGEUNKNOWN"></a><h3>xmlSecTransformUsageUnknown</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformUsageUnknown 0x0000</pre>
+<p>Transforms usage is unknown or undefined.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMFINALIZEMETHOD"></a><h3>xmlSecTransformFinalizeMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> (*xmlSecTransformFinalizeMethod) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform);</pre>
-<p>The transform specific destroy method.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN16419"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
-</tr></tbody></table>
+<a name="XMLSECTRANSFORMUSAGEDSIGTRANSFORM"></a><h3>xmlSecTransformUsageDSigTransform</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformUsageDSigTransform 0x0001</pre>
+<p>Transform could be used in <dsig:Transform>.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMGETDATATYPEMETHOD"></a><h3>xmlSecTransformGetDataTypeMethod ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-transforms.html#XMLSECTRANSFORMDATATYPE">xmlSecTransformDataType</a> (*xmlSecTransformGetDataTypeMethod)
- (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMMODE">xmlSecTransformMode</a> mode,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>The transform specific method to query information about transform
-data type in specified mode <code class="PARAMETER">mode</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16437"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16442"><span style="white-space: nowrap"><code class="PARAMETER">mode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the mode.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16447"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16452"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> transform data type.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMUSAGEC14NMETHOD"></a><h3>xmlSecTransformUsageC14NMethod</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformUsageC14NMethod 0x0002</pre>
+<p>Transform could be used in <dsig:CanonicalizationMethod>.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMNODEREADMETHOD"></a><h3>xmlSecTransformNodeReadMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecTransformNodeReadMethod) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>The transform specific method to read the transform data from
-the <code class="PARAMETER">node</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16470"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16475"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16481"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16486"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMUSAGEDIGESTMETHOD"></a><h3>xmlSecTransformUsageDigestMethod</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformUsageDigestMethod 0x0004</pre>
+<p>Transform could be used in <dsig:DigestMethod>.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMNODEWRITEMETHOD"></a><h3>xmlSecTransformNodeWriteMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecTransformNodeWriteMethod) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>The transform specific method to write transform information to an XML node <code class="PARAMETER">node</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16504"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16509"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Transform" target="_top"><dsig:Transform/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16515"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16520"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMUSAGESIGNATUREMETHOD"></a><h3>xmlSecTransformUsageSignatureMethod</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformUsageSignatureMethod 0x0008</pre>
+<p>Transform could be used in <dsig:SignatureMethod>.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSETKEYREQUIREMENTSMETHOD"></a><h3>xmlSecTransformSetKeyRequirementsMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecTransformSetKeyRequirementsMethod)
- (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-keys.html#XMLSECKEYREQ">xmlSecKeyReqPtr</a> keyReq);</pre>
-<p>Transform specific method to set transform's key requirements.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16536"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16541"><span style="white-space: nowrap"><code class="PARAMETER">keyReq</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key requirements structure.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16546"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMUSAGEENCRYPTIONMETHOD"></a><h3>xmlSecTransformUsageEncryptionMethod</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformUsageEncryptionMethod 0x0010</pre>
+<p>Transform could be used in <enc:EncryptionMethod>.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMSETKEYMETHOD"></a><h3>xmlSecTransformSetKeyMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecTransformSetKeyMethod) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> key);</pre>
-<p>The transform specific method to set the key for use.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16562"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16567"><span style="white-space: nowrap"><code class="PARAMETER">key</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to key.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16572"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMUSAGEANY"></a><h3>xmlSecTransformUsageAny</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformUsageAny 0xFFFF</pre>
+<p>Transform could be used for operation.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMVERIFYMETHOD"></a><h3>xmlSecTransformVerifyMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecTransformVerifyMethod) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>The transform specific method to verify transform processing results
-(used by digest and signature transforms). This method sets <code class="PARAMETER">status</code>
-member of the <a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransform</span></a> structure to either <a href="xmlsec-transforms.html#XMLSECTRANSFORMSTATUSOK"><span class="TYPE">xmlSecTransformStatusOk</span></a>
-if verification succeeded or <a href="xmlsec-transforms.html#XMLSECTRANSFORMSTATUSFAIL"><span class="TYPE">xmlSecTransformStatusFail</span></a> otherwise.</p>
-<p></p>
+<a name="XMLSEC-TRANSFORMCTX-FLAGS-USE-VISA3D-HACK:CAPS"></a><h3>XMLSEC_TRANSFORMCTX_FLAGS_USE_VISA3D_HACK</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_TRANSFORMCTX_FLAGS_USE_VISA3D_HACK 0x00000001</pre>
+<p>If this flag is set then URI ID references are resolved directly
+without using XPointers. This allows one to sign/verify Visa3D
+documents that don't follow XML, XPointer and XML DSig specifications.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECTRANSFORMCTX"></a><h3>struct xmlSecTransformCtx</h3>
+<pre class="PROGRAMLISTING">struct xmlSecTransformCtx {
+ /* user settings */
+ void* userData;
+ unsigned int flags;
+ unsigned int flags2;
+ xmlSecTransformUriType enabledUris;
+ xmlSecPtrList enabledTransforms;
+ xmlSecTransformCtxPreExecuteCallback preExecCallback;
+
+ /* results */
+ xmlSecBufferPtr result;
+ xmlSecTransformStatus status;
+ xmlChar* uri;
+ xmlChar* xptrExpr;
+ xmlSecTransformPtr first;
+ xmlSecTransformPtr last;
+
+ /* for the future */
+ void* reserved0;
+ void* reserved1;
+};</pre>
+<p>The transform execution context.</p>
+<div class="REFSECT3">
+<a name="AEN23126"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16597"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16602"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input buffer.</p></td>
-</tr>
+<a name="AEN23128"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16607"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of input buffer <code class="PARAMETER">data</code>.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">userData</code>;</p></td>
+<td><p>the pointer to user data (xmlsec and xmlsec-crypto never
+touch this).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16613"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td><p>unsigned <font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">flags</code>;</p></td>
+<td><p>the bit mask flags to control transforms execution
+(reserved for the future).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16618"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMPUSHBINMETHOD"></a><h3>xmlSecTransformPushBinMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecTransformPushBinMethod) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize,
- <font>int</font> final,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>The transform specific method to process data from <code class="PARAMETER">data</code> and push
-result to the next transform in the chain.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16638"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
+<td><p>unsigned <font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">flags2</code>;</p></td>
+<td><p>the bit mask flags to control transforms execution
+(reserved for the future).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16643"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input binary data,</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPE"><span class="TYPE">xmlSecTransformUriType</span></a> <code class="STRUCTFIELD">enabledUris</code>;</p></td>
+<td><p>the allowed transform data source uri types.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16648"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input data size.</p></td>
+<td><p><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrList</span></a> <code class="STRUCTFIELD">enabledTransforms</code>;</p></td>
+<td><p>the list of enabled transforms; if list is empty (default)
+then all registered transforms are enabled.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16653"><span style="white-space: nowrap"><code class="PARAMETER">final</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag: if set to 1 then it's the last
- data chunk.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXPREEXECUTECALLBACK"><span class="TYPE">xmlSecTransformCtxPreExecuteCallback</span></a> <code class="STRUCTFIELD">preExecCallback</code>;</p></td>
+<td><p>the callback called after preparing transform chain
+and right before actual data processing; application
+can use this callback to change transforms parameters,
+insert additional transforms in the chain or do
+additional validation (and abort transform execution
+if needed).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16658"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td><p><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> <code class="STRUCTFIELD">result</code>;</p></td>
+<td><p>the pointer to transforms result buffer.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16663"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS"><span class="TYPE">xmlSecTransformStatus</span></a> <code class="STRUCTFIELD">status</code>;</p></td>
+<td><p>the transforms chain processng status.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMPOPBINMETHOD"></a><h3>xmlSecTransformPopBinMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecTransformPopBinMethod) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> maxDataSize,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> *dataSize,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>The transform specific method to pop data from previous transform
-in the chain and return result in the <code class="PARAMETER">data</code> buffer. The size of returned
-data is placed in the <code class="PARAMETER">dataSize</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16684"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">uri</code>;</p></td>
+<td><p>the data source URI without xpointer expression.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16689"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the buffer to store result data.</p></td>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">xptrExpr</code>;</p></td>
+<td><p>the xpointer expression from data source URI (if any).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16694"><span style="white-space: nowrap"><code class="PARAMETER">maxDataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the size of the buffer <code class="PARAMETER">data</code>.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> <code class="STRUCTFIELD">first</code>;</p></td>
+<td><p>the first transform in the chain.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16700"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to returned data size.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> <code class="STRUCTFIELD">last</code>;</p></td>
+<td><p>the last transform in the chain.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16705"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved0</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16710"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMPUSHXMLMETHOD"></a><h3>xmlSecTransformPushXmlMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecTransformPushXmlMethod) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nodes,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>The transform specific method to process <code class="PARAMETER">nodes</code> and push result to the next
-transform in the chain.</p>
-<p></p>
+<a name="XMLSECTRANSFORM"></a><h3>struct xmlSecTransform</h3>
+<pre class="PROGRAMLISTING">struct xmlSecTransform {
+ xmlSecTransformId id;
+ xmlSecTransformOperation operation;
+ xmlSecTransformStatus status;
+ xmlNodePtr hereNode;
+
+ /* transforms chain */
+ xmlSecTransformPtr next;
+ xmlSecTransformPtr prev;
+
+ /* binary data */
+ xmlSecBuffer inBuf;
+ xmlSecBuffer outBuf;
+
+ /* xml data */
+ xmlSecNodeSetPtr inNodes;
+ xmlSecNodeSetPtr outNodes;
+
+ /* reserved for the future */
+ void* reserved0;
+ void* reserved1;
+};</pre>
+<p>The transform structure.</p>
+<div class="REFSECT3">
+<a name="AEN23263"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN23265"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16728"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
+<td><p><font><span class="TYPE">xmlSecTransformId</span></font> <code class="STRUCTFIELD">id</code>;</p></td>
+<td><p>the transform id (pointer to <font><span class="TYPE">xmlSecTransformId</span></font>).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16733"><span style="white-space: nowrap"><code class="PARAMETER">nodes</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input nodes.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMOPERATION"><span class="TYPE">xmlSecTransformOperation</span></a> <code class="STRUCTFIELD">operation</code>;</p></td>
+<td><p>the transform's opertaion.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16738"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS"><span class="TYPE">xmlSecTransformStatus</span></a> <code class="STRUCTFIELD">status</code>;</p></td>
+<td><p>the current status.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16743"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p><font><span class="TYPE">xmlNodePtr</span></font> <code class="STRUCTFIELD">hereNode</code>;</p></td>
+<td><p>the pointer to transform's <dsig:Transform /> node.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMPOPXMLMETHOD"></a><h3>xmlSecTransformPopXmlMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecTransformPopXmlMethod) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> *nodes,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>The transform specific method to pop data from previous transform in the chain,
-process the data and return result in <code class="PARAMETER">nodes</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16761"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> <code class="STRUCTFIELD">next</code>;</p></td>
+<td><p>the pointer to next transform in the chain.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16766"><span style="white-space: nowrap"><code class="PARAMETER">nodes</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to store popinter to result nodes.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> <code class="STRUCTFIELD">prev</code>;</p></td>
+<td><p>the pointer to previous transform in the chain.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16771"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td><p><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBuffer</span></a> <code class="STRUCTFIELD">inBuf</code>;</p></td>
+<td><p>the input binary data buffer.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16776"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBuffer</span></a> <code class="STRUCTFIELD">outBuf</code>;</p></td>
+<td><p>the output binary data buffer.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMEXECUTEMETHOD"></a><h3>xmlSecTransformExecuteMethod ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> (*xmlSecTransformExecuteMethod) (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <font>int</font> last,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtxPtr</a> transformCtx);</pre>
-<p>Transform specific method to process a chunk of data.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16793"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform object.</p></td>
+<td><p><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> <code class="STRUCTFIELD">inNodes</code>;</p></td>
+<td><p>the input XML nodes.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16798"><span style="white-space: nowrap"><code class="PARAMETER">last</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag: if set to 1 then it's the last data chunk.</p></td>
+<td><p><a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSetPtr</span></a> <code class="STRUCTFIELD">outNodes</code>;</p></td>
+<td><p>the output XML nodes.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16803"><span style="white-space: nowrap"><code class="PARAMETER">transformCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform context object.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved0</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16808"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
@@ -2515,627 +4634,215 @@ process the data and return result in <code class="PARAMETER">nodes</code>.</p>
void* reserved1;
};</pre>
<p>The transform klass desccription structure.</p>
+<div class="REFSECT3">
+<a name="AEN23384"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16821"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">klassSize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform klass structure size.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16827"><span style="white-space: nowrap"><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> <code class="STRUCTFIELD">objSize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform object size.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16833"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">name</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's name.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16839"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">href</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform's identification string (href).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16845"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE">xmlSecTransformUsage</a> <code class="STRUCTFIELD">usage</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the allowed transforms usages.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16851"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMINITIALIZEMETHOD">xmlSecTransformInitializeMethod</a> <code class="STRUCTFIELD">initialize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the initialization method.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16857"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMFINALIZEMETHOD">xmlSecTransformFinalizeMethod</a> <code class="STRUCTFIELD">finalize</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the finmalization (destroy) function.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16863"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMNODEREADMETHOD">xmlSecTransformNodeReadMethod</a> <code class="STRUCTFIELD">readNode</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XML node read method.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16869"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMNODEWRITEMETHOD">xmlSecTransformNodeWriteMethod</a> <code class="STRUCTFIELD">writeNode</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XML node write method.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16875"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMSETKEYREQUIREMENTSMETHOD">xmlSecTransformSetKeyRequirementsMethod</a> <code class="STRUCTFIELD">setKeyReq</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the set key requirements method.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16881"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMSETKEYMETHOD">xmlSecTransformSetKeyMethod</a> <code class="STRUCTFIELD">setKey</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the set key method.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16887"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMVERIFYMETHOD">xmlSecTransformVerifyMethod</a> <code class="STRUCTFIELD">verify</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the verify method (for digest and signature transforms).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16893"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMGETDATATYPEMETHOD">xmlSecTransformGetDataTypeMethod</a> <code class="STRUCTFIELD">getDataType</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the input/output data type query method.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16899"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHBINMETHOD">xmlSecTransformPushBinMethod</a> <code class="STRUCTFIELD">pushBin</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the binary data "push thru chain" processing method.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16905"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMPOPBINMETHOD">xmlSecTransformPopBinMethod</a> <code class="STRUCTFIELD">popBin</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the binary data "pop from chain" procesing method.</p></td>
-</tr>
+<a name="AEN23386"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16911"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHXMLMETHOD">xmlSecTransformPushXmlMethod</a> <code class="STRUCTFIELD">pushXml</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XML data "push thru chain" processing method.</p></td>
+<td><p><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> <code class="STRUCTFIELD">klassSize</code>;</p></td>
+<td><p>the transform klass structure size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16917"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMPOPXMLMETHOD">xmlSecTransformPopXmlMethod</a> <code class="STRUCTFIELD">popXml</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XML data "pop from chain" procesing method.</p></td>
+<td><p><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> <code class="STRUCTFIELD">objSize</code>;</p></td>
+<td><p>the transform object size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16923"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMEXECUTEMETHOD">xmlSecTransformExecuteMethod</a> <code class="STRUCTFIELD">execute</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the low level data processing method used by default
- implementations of <code class="PARAMETER">pushBin</code>, <code class="PARAMETER">popBin</code>, <code class="PARAMETER">pushXml</code> and <code class="PARAMETER">popXml</code>.</p></td>
+<td><p>const <font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">name</code>;</p></td>
+<td><p>the transform's name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16933"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16939"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMKLASSGETNAME"></a><h3>xmlSecTransformKlassGetName()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformKlassGetName(klass)</pre>
-<p>Macro. Returns transform klass name.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN16953"><span style="white-space: nowrap"><code class="PARAMETER">klass</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transofrm's klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMIDLISTID"></a><h3>xmlSecTransformIdListId</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformIdListId xmlSecTransformIdListGetKlass()</pre>
-<p>Transform klasses list klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMIDLISTGETKLASS"></a><h3>xmlSecTransformIdListGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecPtrListId</font> xmlSecTransformIdListGetKlass (void);</pre>
-<p>The transform id list klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN16974"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the transform id list klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMIDLISTFIND"></a><h3>xmlSecTransformIdListFind ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformIdListFind (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>xmlSecTransformId</font> transformId);</pre>
-<p>Lookups <code class="PARAMETER">dataId</code> in <code class="PARAMETER">list</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16992"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform ids list.</p></td>
+<td><p>const <font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">href</code>;</p></td>
+<td><p>the transform's identification string (href).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN16997"><span style="white-space: nowrap"><code class="PARAMETER">transformId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform klass.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE"><span class="TYPE">xmlSecTransformUsage</span></a> <code class="STRUCTFIELD">usage</code>;</p></td>
+<td><p>the allowed transforms usages.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17002"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 1 if <code class="PARAMETER">dataId</code> is found in the <code class="PARAMETER">list</code>, 0 if not and a negative
-value if an error occurs.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMINITIALIZEMETHOD"><span class="TYPE">xmlSecTransformInitializeMethod</span></a> <code class="STRUCTFIELD">initialize</code>;</p></td>
+<td><p>the initialization method.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMIDLISTFINDBYHREF"></a><h3>xmlSecTransformIdListFindByHref ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformIdListFindByHref (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- const <font>xmlChar</font> *href,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE">xmlSecTransformUsage</a> usage);</pre>
-<p>Lookups data klass in the list with given <code class="PARAMETER">href</code> and <code class="PARAMETER">usage</code> in <code class="PARAMETER">list</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17024"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform ids list.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMFINALIZEMETHOD"><span class="TYPE">xmlSecTransformFinalizeMethod</span></a> <code class="STRUCTFIELD">finalize</code>;</p></td>
+<td><p>the finmalization (destroy) function.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17029"><span style="white-space: nowrap"><code class="PARAMETER">href</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired transform klass href.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMNODEREADMETHOD"><span class="TYPE">xmlSecTransformNodeReadMethod</span></a> <code class="STRUCTFIELD">readNode</code>;</p></td>
+<td><p>the XML node read method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17034"><span style="white-space: nowrap"><code class="PARAMETER">usage</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired transform usage.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMNODEWRITEMETHOD"><span class="TYPE">xmlSecTransformNodeWriteMethod</span></a> <code class="STRUCTFIELD">writeNode</code>;</p></td>
+<td><p>the XML node write method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17039"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> transform klass is found and NULL otherwise.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMSETKEYREQUIREMENTSMETHOD"><span class="TYPE">xmlSecTransformSetKeyRequirementsMethod</span></a> <code class="STRUCTFIELD">setKeyReq</code>;</p></td>
+<td><p>the set key requirements method.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMIDLISTFINDBYNAME"></a><h3>xmlSecTransformIdListFindByName ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformIdListFindByName (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- const <font>xmlChar</font> *name,
- <a href="xmlsec-transforms.html#XMLSECTRANSFORMUSAGE">xmlSecTransformUsage</a> usage);</pre>
-<p>Lookups data klass in the list with given <code class="PARAMETER">name</code> and <code class="PARAMETER">usage</code> in <code class="PARAMETER">list</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17059"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform ids list.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMSETKEYMETHOD"><span class="TYPE">xmlSecTransformSetKeyMethod</span></a> <code class="STRUCTFIELD">setKey</code>;</p></td>
+<td><p>the set key method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17064"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired transform klass name.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMVERIFYMETHOD"><span class="TYPE">xmlSecTransformVerifyMethod</span></a> <code class="STRUCTFIELD">verify</code>;</p></td>
+<td><p>the verify method (for digest and signature transforms).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17069"><span style="white-space: nowrap"><code class="PARAMETER">usage</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the desired transform usage.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMGETDATATYPEMETHOD"><span class="TYPE">xmlSecTransformGetDataTypeMethod</span></a> <code class="STRUCTFIELD">getDataType</code>;</p></td>
+<td><p>the input/output data type query method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17074"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> transform klass is found and NULL otherwise.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHBINMETHOD"><span class="TYPE">xmlSecTransformPushBinMethod</span></a> <code class="STRUCTFIELD">pushBin</code>;</p></td>
+<td><p>the binary data "push thru chain" processing method.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMIDLISTDEBUGDUMP"></a><h3>xmlSecTransformIdListDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecTransformIdListDebugDump (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>FILE</font> *output);</pre>
-<p>Prints binary transform debug information to <code class="PARAMETER">output</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17091"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform ids list.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMPOPBINMETHOD"><span class="TYPE">xmlSecTransformPopBinMethod</span></a> <code class="STRUCTFIELD">popBin</code>;</p></td>
+<td><p>the binary data "pop from chain" procesing method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17096"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMPUSHXMLMETHOD"><span class="TYPE">xmlSecTransformPushXmlMethod</span></a> <code class="STRUCTFIELD">pushXml</code>;</p></td>
+<td><p>the XML data "push thru chain" processing method.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMIDLISTDEBUGXMLDUMP"></a><h3>xmlSecTransformIdListDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecTransformIdListDebugXmlDump (<a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> list,
- <font>FILE</font> *output);</pre>
-<p>Prints binary transform debug information to <code class="PARAMETER">output</code> in XML format.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17113"><span style="white-space: nowrap"><code class="PARAMETER">list</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to transform ids list.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMPOPXMLMETHOD"><span class="TYPE">xmlSecTransformPopXmlMethod</span></a> <code class="STRUCTFIELD">popXml</code>;</p></td>
+<td><p>the XML data "pop from chain" procesing method.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17118"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMEXECUTEMETHOD"><span class="TYPE">xmlSecTransformExecuteMethod</span></a> <code class="STRUCTFIELD">execute</code>;</p></td>
+<td><p>the low level data processing method used by default
+implementations of <code class="PARAMETER">pushBin</code>
+, <code class="PARAMETER">popBin</code>
+, <code class="PARAMETER">pushXml</code>
+and <code class="PARAMETER">popXml</code>
+.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+<tr>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved0</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMIDUNKNOWN"></a><h3>xmlSecTransformIdUnknown</h3>
-<pre class="PROGRAMLISTING">#define xmlSecTransformIdUnknown ((xmlSecTransformId)NULL)</pre>
-<p>The "unknown" transform id (NULL).</p>
-<p></p>
+<a name="XMLSECTRANSFORMIDLISTID"></a><h3>xmlSecTransformIdListId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformIdListId xmlSecTransformIdListGetKlass()</pre>
+<p>Transform klasses list klass.</p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMBASE64ID"></a><h3>xmlSecTransformBase64Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecTransformBase64Id</pre>
<p>The base64 encode transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMBASE64GETKLASS"></a><h3>xmlSecTransformBase64GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformBase64GetKlass (void);</pre>
-<p>The Base64 transform klass (http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-Base-64</span></font>).
-The normative specification for base64 decoding transforms is RFC 2045
-(http://www.ietf.org/rfc/rfc2045.txt). The base64 Transform element has
-no content. The input is decoded by the algorithms. This transform is
-useful if an application needs to sign the raw data associated with
-the encoded content of an element.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17148"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> base64 transform id.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMBASE64SETLINESIZE"></a><h3>xmlSecTransformBase64SetLineSize ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecTransformBase64SetLineSize (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> lineSize);</pre>
-<p>Sets the max line size to <code class="PARAMETER">lineSize</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17165"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to BASE64 encode transform.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17170"><span style="white-space: nowrap"><code class="PARAMETER">lineSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new max line size.</p></td>
-</tr>
-</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMINCLC14NID"></a><h3>xmlSecTransformInclC14NId</h3>
<pre class="PROGRAMLISTING">#define xmlSecTransformInclC14NId</pre>
<p>The regular (inclusive) C14N without comments transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMINCLC14NGETKLASS"></a><h3>xmlSecTransformInclC14NGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformInclC14NGetKlass (void);</pre>
-<p>Inclusive (regular) canonicalization that omits comments transform klass
-(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-c14nAlg</span></font> and
-http://www.w3.org/TR/2001/REC-xml-c14n-20010315).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17193"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> c14n transform id.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMINCLC14NWITHCOMMENTSID"></a><h3>xmlSecTransformInclC14NWithCommentsId</h3>
<pre class="PROGRAMLISTING">#define xmlSecTransformInclC14NWithCommentsId</pre>
<p>The regular (inclusive) C14N with comments transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMINCLC14NWITHCOMMENTSGETKLASS"></a><h3>xmlSecTransformInclC14NWithCommentsGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformInclC14NWithCommentsGetKlass
- (void);</pre>
-<p>Inclusive (regular) canonicalization that includes comments transform klass
-(http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-c14nAlg</span></font> and
-http://www.w3.org/TR/2001/REC-xml-c14n-20010315).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17216"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> c14n with comments transform id.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMINCLC14N11ID"></a><h3>xmlSecTransformInclC14N11Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecTransformInclC14N11Id</pre>
<p>The regular (inclusive) C14N 1.1 without comments transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMINCLC14N11GETKLASS"></a><h3>xmlSecTransformInclC14N11GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformInclC14N11GetKlass (void);</pre>
-<p>C14N version 1.1 (http://www.w3.org/TR/xml-c14n11)</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17237"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> c14n v1.1 transform id.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMINCLC14N11WITHCOMMENTSID"></a><h3>xmlSecTransformInclC14N11WithCommentsId</h3>
<pre class="PROGRAMLISTING">#define xmlSecTransformInclC14N11WithCommentsId</pre>
<p>The regular (inclusive) C14N 1.1 with comments transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMINCLC14N11WITHCOMMENTSGETKLASS"></a><h3>xmlSecTransformInclC14N11WithCommentsGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformInclC14N11WithCommentsGetKlass
- (void);</pre>
-<p>C14N version 1.1 (http://www.w3.org/TR/xml-c14n11) with comments</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17258"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> c14n v1.1 with comments transform id.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMEXCLC14NID"></a><h3>xmlSecTransformExclC14NId</h3>
<pre class="PROGRAMLISTING">#define xmlSecTransformExclC14NId</pre>
<p>The exclusive C14N without comments transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMEXCLC14NGETKLASS"></a><h3>xmlSecTransformExclC14NGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformExclC14NGetKlass (void);</pre>
-<p>Exclusive canoncicalization that ommits comments transform klass
-(http://www.w3.org/TR/xml-exc-c14n/).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17279"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> exclusive c14n transform id.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMEXCLC14NWITHCOMMENTSID"></a><h3>xmlSecTransformExclC14NWithCommentsId</h3>
<pre class="PROGRAMLISTING">#define xmlSecTransformExclC14NWithCommentsId</pre>
<p>The exclusive C14N with comments transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMEXCLC14NWITHCOMMENTSGETKLASS"></a><h3>xmlSecTransformExclC14NWithCommentsGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformExclC14NWithCommentsGetKlass
- (void);</pre>
-<p>Exclusive canoncicalization that includes comments transform klass
-(http://www.w3.org/TR/xml-exc-c14n/).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17300"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> exclusive c14n with comments transform id.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMENVELOPEDID"></a><h3>xmlSecTransformEnvelopedId</h3>
<pre class="PROGRAMLISTING">#define xmlSecTransformEnvelopedId</pre>
<p>The "enveloped" transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMENVELOPEDGETKLASS"></a><h3>xmlSecTransformEnvelopedGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformEnvelopedGetKlass (void);</pre>
-<p>The enveloped transform klass (http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-EnvelopedSignature</span></font>):</p>
-<p>An enveloped signature transform T removes the whole Signature element
-containing T from the digest calculation of the Reference element
-containing T. The entire string of characters used by an XML processor
-to match the Signature with the XML production element is removed.
-The output of the transform is equivalent to the output that would
-result from replacing T with an XPath transform containing the following
-XPath parameter element:</p>
-<p><XPath xmlns:dsig="&dsig;">
- count(ancestor-or-self::dsig:Signature |
- <font><code class="FUNCTION">here()</code></font>/ancestor::dsig:Signature[1]) >
- count(ancestor-or-self::dsig:Signature)</XPath></p>
-<p>The input and output requirements of this transform are identical to
-those of the XPath transform, but may only be applied to a node-set from
-its parent XML document. Note that it is not necessary to use an XPath
-expression evaluator to create this transform. However, this transform
-MUST produce output in exactly the same manner as the XPath transform
-parameterized by the XPath expression above.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17328"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> enveloped transform id.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMXPATHID"></a><h3>xmlSecTransformXPathId</h3>
<pre class="PROGRAMLISTING">#define xmlSecTransformXPathId</pre>
<p>The XPath transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMXPATHGETKLASS"></a><h3>xmlSecTransformXPathGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformXPathGetKlass (void);</pre>
-<p>The XPath transform evaluates given XPath expression and
-intersects the result with the previous nodes set. See
-http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-XPath</span></font> for more details.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17351"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> XPath transform id.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMXPATH2ID"></a><h3>xmlSecTransformXPath2Id</h3>
<pre class="PROGRAMLISTING">#define xmlSecTransformXPath2Id</pre>
<p>The XPath2 transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMXPATH2GETKLASS"></a><h3>xmlSecTransformXPath2GetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformXPath2GetKlass (void);</pre>
-<p>The XPath2 transform (http://www.w3.org/TR/xmldsig-filter2/).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17372"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> XPath2 transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMXPOINTERID"></a><h3>xmlSecTransformXPointerId</h3>
<pre class="PROGRAMLISTING">#define xmlSecTransformXPointerId</pre>
<p>The XPointer transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMXPOINTERGETKLASS"></a><h3>xmlSecTransformXPointerGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformXPointerGetKlass (void);</pre>
-<p>The XPointer transform klass
-(http://www.ietf.org/internet-drafts/draft-eastlake-xmldsig-uri-02.txt).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17393"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> XPointer transform klass.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECTRANSFORMXPOINTERSETEXPR"></a><h3>xmlSecTransformXPointerSetExpr ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformXPointerSetExpr (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <font>xmlChar</font> *expr,
- <a href="xmlsec-nodeset.html#XMLSECNODESETTYPE">xmlSecNodeSetType</a> nodeSetType,
- <font>xmlNodePtr</font> hereNode);</pre>
-<p>Sets the XPointer expression for an XPointer <code class="PARAMETER">transform</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17412"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to XPointer transform.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17417"><span style="white-space: nowrap"><code class="PARAMETER">expr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XPointer expression.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17422"><span style="white-space: nowrap"><code class="PARAMETER">nodeSetType</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the type of evaluated XPointer expression.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17427"><span style="white-space: nowrap"><code class="PARAMETER">hereNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to "here" node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17432"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<a name="XMLSECTRANSFORMRELATIONSHIPID"></a><h3>xmlSecTransformRelationshipId</h3>
+<pre class="PROGRAMLISTING">#define xmlSecTransformRelationshipId</pre>
+<p>The Relationship transform klass.</p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMXSLTID"></a><h3>xmlSecTransformXsltId</h3>
<pre class="PROGRAMLISTING">#define xmlSecTransformXsltId</pre>
<p>The XSLT transform klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMXSLTGETKLASS"></a><h3>xmlSecTransformXsltGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformXsltGetKlass (void);</pre>
-<p>XSLT transform klass (http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-XSLT</span></font>):</p>
-<p>The normative specification for XSL Transformations is [XSLT].
-Specification of a namespace-qualified stylesheet element, which MUST be
-the sole child of the Transform element, indicates that the specified style
-sheet should be used. Whether this instantiates in-line processing of local
-XSLT declarations within the resource is determined by the XSLT processing
-model; the ordered application of multiple stylesheet may require multiple
-Transforms. No special provision is made for the identification of a remote
-stylesheet at a given URI because it can be communicated via an xsl:include
-or xsl:import within the stylesheet child of the Transform.</p>
-<p>This transform requires an octet stream as input. If the actual input is an
-XPath node-set, then the signature application should attempt to convert it
-to octets (apply Canonical XML]) as described in the Reference Processing
-Model (section 4.3.3.2).]</p>
-<p>The output of this transform is an octet stream. The processing rules for
-the XSL style sheet or transform element are stated in the XSLT specification
-[XSLT]. We RECOMMEND that XSLT transform authors use an output method of xml
-for XML and HTML. As XSLT implementations do not produce consistent
-serializations of their output, we further RECOMMEND inserting a transform
-after the XSLT transform to canonicalize the output. These steps will help
-to ensure interoperability of the resulting signatures among applications
-that support the XSLT transform. Note that if the output is actually HTML,
-then the result of these steps is logically equivalent [XHTML].</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17458"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to XSLT transform klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMXSLTSETDEFAULTSECURITYPREFS"></a><h3>xmlSecTransformXsltSetDefaultSecurityPrefs ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecTransformXsltSetDefaultSecurityPrefs
- (<font>xsltSecurityPrefsPtr</font> sec);</pre>
-<p>Sets the new default security preferences. The xmlsec default security policy is
-to disable everything.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17473"><span style="white-space: nowrap"><code class="PARAMETER">sec</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new security preferences</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECTRANSFORMREMOVEXMLTAGSC14NID"></a><h3>xmlSecTransformRemoveXmlTagsC14NId</h3>
<pre class="PROGRAMLISTING">#define xmlSecTransformRemoveXmlTagsC14NId</pre>
<p>The "remove all xml tags" transform klass (used before base64 transforms).</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMREMOVEXMLTAGSC14NGETKLASS"></a><h3>xmlSecTransformRemoveXmlTagsC14NGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformRemoveXmlTagsC14NGetKlass
- (void);</pre>
-<p>The "remove xml tags" transform klass (http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-Base-64</span></font>):
-Base64 transform requires an octet stream for input. If an XPath node-set
-(or sufficiently functional alternative) is given as input, then it is
-converted to an octet stream by performing operations logically equivalent
-to 1) applying an XPath transform with expression self::<font><code class="FUNCTION">text()</code></font>, then 2)
-taking the string-value of the node-set. Thus, if an XML element is
-identified by a barename XPointer in the Reference URI, and its content
-consists solely of base64 encoded character data, then this transform
-automatically strips away the start and end tags of the identified element
-and any of its descendant elements as well as any descendant comments and
-processing instructions. The output of this transform is an octet stream.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17498"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> "remove xml tags" transform id.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
@@ -3145,45 +4852,6 @@ processing instructions. The output of this transform is an octet stream.</p>
is Visa3D protocol. It doesn't follow XML/XPointer/XMLDSig specs and allows
invalid XPointer expressions in the URI attribute. Since we couldn't evaluate
such expressions thru XPath/XPointer engine, we need to have this hack here.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMVISA3DHACKGETKLASS"></a><h3>xmlSecTransformVisa3DHackGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecTransformId</font> xmlSecTransformVisa3DHackGetKlass (void);</pre>
-<p>The Visa3DHack transform klass. The only reason why we need this
-is Visa3D protocol. It doesn't follow XML/XPointer/XMLDSig specs and allows
-invalid XPointer expressions in the URI attribute. Since we couldn't evaluate
-such expressions thru XPath/XPointer engine, we need to have this hack here.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17519"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> Visa3DHack transform klass.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECTRANSFORMVISA3DHACKSETID"></a><h3>xmlSecTransformVisa3DHackSetID ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecTransformVisa3DHackSetID (<a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> transform,
- const <font>xmlChar</font> *id);</pre>
-<p>Sets the ID value for an Visa3DHack <code class="PARAMETER">transform</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17536"><span style="white-space: nowrap"><code class="PARAMETER">transform</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to Visa3DHack transform.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17541"><span style="white-space: nowrap"><code class="PARAMETER">id</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the ID value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17546"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-verify-with-key.html b/docs/api/xmlsec-verify-with-key.html
index 3b1625a..7bd6957 100644
--- a/docs/api/xmlsec-verify-with-key.html
+++ b/docs/api/xmlsec-verify-with-key.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Examples." href="xmlsec-examples.html">
<link rel="PREVIOUS" title="Signing with X509 certificate." href="xmlsec-examples-sign-x509.html">
<link rel="NEXT" title="Verifying a signature with keys manager." href="xmlsec-verify-with-keys-mngr.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-examples-sign-x509.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-examples-sign-x509.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-verify-with-keys-mngr.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-verify-with-keys-mngr.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-VERIFY-WITH-KEY">Verifying a signature with a single key.</a></h1>
@@ -92,7 +114,7 @@
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN701"></a><pre class="PROGRAMLISTING">/**
+<a name="AEN702"></a><pre class="PROGRAMLISTING">/**
* XML Security Library example: Verifying a file using a single key.
*
* Verifies a file using a key from PEM file.
@@ -107,7 +129,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -182,7 +204,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/docs/api/xmlsec-verify-with-keys-mngr.html b/docs/api/xmlsec-verify-with-keys-mngr.html
index c395551..1105476 100644
--- a/docs/api/xmlsec-verify-with-keys-mngr.html
+++ b/docs/api/xmlsec-verify-with-keys-mngr.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Examples." href="xmlsec-examples.html">
<link rel="PREVIOUS" title="Verifying a signature with a single key." href="xmlsec-verify-with-key.html">
<link rel="NEXT" title="Verifying a signature with X509 certificates." href="xmlsec-verify-with-x509.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-verify-with-key.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-verify-with-key.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-verify-with-x509.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-verify-with-x509.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-VERIFY-WITH-KEYS-MNGR">Verifying a signature with keys manager.</a></h1>
@@ -92,7 +114,7 @@
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN708"></a><pre class="PROGRAMLISTING">/**
+<a name="AEN709"></a><pre class="PROGRAMLISTING">/**
* XML Security Library example: Verifying a file using keys manager.
*
* Verifies a file using keys manager
@@ -107,7 +129,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -185,7 +207,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/docs/api/xmlsec-verify-with-restrictions.html b/docs/api/xmlsec-verify-with-restrictions.html
index 86116c8..94a6a8d 100644
--- a/docs/api/xmlsec-verify-with-restrictions.html
+++ b/docs/api/xmlsec-verify-with-restrictions.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Examples." href="xmlsec-examples.html">
<link rel="PREVIOUS" title="Verifying a signature with X509 certificates." href="xmlsec-verify-with-x509.html">
<link rel="NEXT" title="Encrypting data with a template file." href="xmlsec-encrypt-template-file.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-verify-with-x509.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-verify-with-x509.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-encrypt-template-file.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-encrypt-template-file.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-VERIFY-WITH-RESTRICTIONS">Verifying a signature with additional restrictions.</a></h1>
@@ -92,11 +114,11 @@
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN722"></a><pre class="PROGRAMLISTING">/**
+<a name="AEN723"></a><pre class="PROGRAMLISTING">/**
* XML Security Library example: Verifying a simple SAML response with X509 certificate
*
* Verifies a simple SAML response. In addition to refular verification
- * we ensure that the signature has only one <dsig:Reference/> element
+ * we ensure that the signature has only one <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> element
* with an empty or NULL URI attribute and one enveloped signature transform
* as it is required by SAML specification.
*
@@ -107,17 +129,17 @@
* verify4 <signed-file> <trusted-cert-pem-file1> [<trusted-cert-pem-file2> [...]]
*
* Example (sucecess):
- * ./verify4 verify4-res.xml rootcert.pem
+ * ./verify4 verify4-res.xml ca2cert.pem cacert.pem
*
* Example (failure):
- * ./verify4 verify4-bad-res.xml rootcert.pem
+ * ./verify4 verify4-bad-res.xml ca2cert.pem cacert.pem
* In the same time, verify3 example successfuly verifies this signature:
- * ./verify3 verify4-bad-res.xml rootcert.pem
+ * ./verify3 verify4-bad-res.xml ca2cert.pem cacert.pem
*
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -194,7 +216,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
@@ -408,7 +430,7 @@ done:
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN727"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
+<a name="AEN729"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
<!--
XML Security Library example: A simple SAML response template (verify4 example).
@@ -426,12 +448,12 @@ Sign it using the following command (replace __ with double dashes):
<dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
- <dsig:DigestValue/>
+ <a href="http://www.w3.org/TR/xmldsig-core/#sec-DigestValue" target="_top"><dsig:DigestValue/></a>
</dsig:Reference>
</dsig:SignedInfo>
- <dsig:SignatureValue/>
+ <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignatureValue" target="_top"><dsig:SignatureValue/></a>
<dsig:KeyInfo>
- <dsig:X509Data/>
+ <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a>
</dsig:KeyInfo>
</dsig:Signature>
<Status>
@@ -463,7 +485,7 @@ Sign it using the following command (replace __ with double dashes):
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN732"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
+<a name="AEN737"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
<!--
XML Security Library example: A simple SAML response template (verify4 example).
@@ -540,7 +562,7 @@ fBjXssrERn05kpBcrRfzou4r3DCgQFPhjxga</dsig:X509Certificate>
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN737"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
+<a name="AEN742"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
<!--
XML Security Library example: A simple bad SAML response template (verify4 example).
@@ -565,12 +587,12 @@ Sign it using the following command (replace __ with double dashes):
</dsig:Transform>
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
- <dsig:DigestValue/>
+ <a href="http://www.w3.org/TR/xmldsig-core/#sec-DigestValue" target="_top"><dsig:DigestValue/></a>
</dsig:Reference>
</dsig:SignedInfo>
- <dsig:SignatureValue/>
+ <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignatureValue" target="_top"><dsig:SignatureValue/></a>
<dsig:KeyInfo>
- <dsig:X509Data/>
+ <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a>
</dsig:KeyInfo>
</dsig:Signature>
<Status>
@@ -602,7 +624,7 @@ Sign it using the following command (replace __ with double dashes):
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN742"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
+<a name="AEN750"></a><pre class="PROGRAMLISTING"><?xml version="1.0" encoding="UTF-8"?>
<!--
XML Security Library example: A simple bad SAML response (verify4 example).
diff --git a/docs/api/xmlsec-verify-with-x509.html b/docs/api/xmlsec-verify-with-x509.html
index c5feacf..8b571b6 100644
--- a/docs/api/xmlsec-verify-with-x509.html
+++ b/docs/api/xmlsec-verify-with-x509.html
@@ -7,7 +7,6 @@
<link rel="UP" title="Examples." href="xmlsec-examples.html">
<link rel="PREVIOUS" title="Verifying a signature with keys manager." href="xmlsec-verify-with-keys-mngr.html">
<link rel="NEXT" title="Verifying a signature with additional restrictions." href="xmlsec-verify-with-restrictions.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,11 +101,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-verify-with-keys-mngr.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-verify-with-keys-mngr.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-examples.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-verify-with-restrictions.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-verify-with-restrictions.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<br clear="all"><div class="SECT1">
<h1 class="SECT1"><a name="XMLSEC-VERIFY-WITH-X509">Verifying a signature with X509 certificates.</a></h1>
@@ -92,7 +114,7 @@
<p></p>
<div class="INFORMALEXAMPLE">
<p></p>
-<a name="AEN715"></a><pre class="PROGRAMLISTING">/**
+<a name="AEN716"></a><pre class="PROGRAMLISTING">/**
* XML Security Library example: Verifying a file signed with X509 certificate
*
* Verifies a file signed with X509 certificate.
@@ -104,12 +126,12 @@
* verify3 <signed-file> <trusted-cert-pem-file1> [<trusted-cert-pem-file2> [...]]
*
* Example:
- * ./verify3 sign3-res.xml rootcert.pem
+ * ./verify3 sign3-res.xml ca2cert.pem cacert.pem
*
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -186,7 +208,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/docs/api/xmlsec-version.html b/docs/api/xmlsec-version.html
index 96d47d9..476bef0 100644
--- a/docs/api/xmlsec-version.html
+++ b/docs/api/xmlsec-version.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="transforms" href="xmlsec-transforms.html">
<link rel="NEXT" title="xmldsig" href="xmlsec-xmldsig.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,65 +101,89 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-transforms.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-transforms.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-xmldsig.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-xmldsig.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-VERSION"></a>version</h1>
<div class="REFNAMEDIV">
-<a name="AEN17556"></a><h2>Name</h2>version -- Version macros.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-VERSION.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">#define <a href="xmlsec-version.html#XMLSEC-VERSION--CAPS">XMLSEC_VERSION</a>
-#define <a href="xmlsec-version.html#XMLSEC-VERSION-MAJOR--CAPS">XMLSEC_VERSION_MAJOR</a>
-#define <a href="xmlsec-version.html#XMLSEC-VERSION-MINOR--CAPS">XMLSEC_VERSION_MINOR</a>
-#define <a href="xmlsec-version.html#XMLSEC-VERSION-SUBMINOR--CAPS">XMLSEC_VERSION_SUBMINOR</a>
-#define <a href="xmlsec-version.html#XMLSEC-VERSION-INFO--CAPS">XMLSEC_VERSION_INFO</a></pre>
+<a name="AEN23674"></a><h2>Name</h2>version -- Version macros.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-VERSION.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN23679"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-version.html#XMLSEC-VERSION:CAPS">XMLSEC_VERSION</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-version.html#XMLSEC-VERSION-MAJOR:CAPS">XMLSEC_VERSION_MAJOR</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-version.html#XMLSEC-VERSION-MINOR:CAPS">XMLSEC_VERSION_MINOR</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-version.html#XMLSEC-VERSION-SUBMINOR:CAPS">XMLSEC_VERSION_SUBMINOR</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-version.html#XMLSEC-VERSION-INFO:CAPS">XMLSEC_VERSION_INFO</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-VERSION.DESCRIPTION"></a><h2>Description</h2>
<p>Version macros.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-VERSION.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-VERSION.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-VERSION.OTHER_DETAILS"></a><h2>Types and Values</h2>
<div class="REFSECT2">
-<a name="XMLSEC-VERSION--CAPS"></a><h3>XMLSEC_VERSION</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_VERSION "1.2.20"</pre>
+<a name="XMLSEC-VERSION:CAPS"></a><h3>XMLSEC_VERSION</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_VERSION "1.2.23"</pre>
<p>The library version string in the format
"<major-number>.<minor-number>.<sub-minor-number>".</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-VERSION-MAJOR--CAPS"></a><h3>XMLSEC_VERSION_MAJOR</h3>
+<a name="XMLSEC-VERSION-MAJOR:CAPS"></a><h3>XMLSEC_VERSION_MAJOR</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_VERSION_MAJOR 1</pre>
<p>The library major version number.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-VERSION-MINOR--CAPS"></a><h3>XMLSEC_VERSION_MINOR</h3>
+<a name="XMLSEC-VERSION-MINOR:CAPS"></a><h3>XMLSEC_VERSION_MINOR</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_VERSION_MINOR 2</pre>
<p>The library minor version number.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-VERSION-SUBMINOR--CAPS"></a><h3>XMLSEC_VERSION_SUBMINOR</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_VERSION_SUBMINOR 20</pre>
+<a name="XMLSEC-VERSION-SUBMINOR:CAPS"></a><h3>XMLSEC_VERSION_SUBMINOR</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_VERSION_SUBMINOR 23</pre>
<p>The library sub-minor version number.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-VERSION-INFO--CAPS"></a><h3>XMLSEC_VERSION_INFO</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_VERSION_INFO "3:20:2"</pre>
+<a name="XMLSEC-VERSION-INFO:CAPS"></a><h3>XMLSEC_VERSION_INFO</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_VERSION_INFO "3:23:2"</pre>
<p>The library version info string in the format
"<major-number>+<minor-number>:<sub-minor-number>:<minor-number>".</p>
-<p></p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-x509.html b/docs/api/xmlsec-x509.html
index 3e4f235..312aec4 100644
--- a/docs/api/xmlsec-x509.html
+++ b/docs/api/xmlsec-x509.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="xmltree" href="xmlsec-xmltree.html">
<link rel="NEXT" title="XML Security Library for OpenSLL API Reference." href="xmlsec-openssl-ref.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,105 +101,151 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-xmltree.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-xmltree.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-openssl-ref.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-openssl-ref.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-X509"></a>x509</h1>
<div class="REFNAMEDIV">
-<a name="AEN21270"></a><h2>Name</h2>x509 -- <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Certificate" target="_top"><dsig:X509Certificate/></a> node parser.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-X509.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">#define <a href="xmlsec-x509.html#XMLSEC-X509DATA-CERTIFICATE-NODE--CAPS">XMLSEC_X509DATA_CERTIFICATE_NODE</a>
-#define <a href="xmlsec-x509.html#XMLSEC-X509DATA-SUBJECTNAME-NODE--CAPS">XMLSEC_X509DATA_SUBJECTNAME_NODE</a>
-#define <a href="xmlsec-x509.html#XMLSEC-X509DATA-ISSUERSERIAL-NODE--CAPS">XMLSEC_X509DATA_ISSUERSERIAL_NODE</a>
-#define <a href="xmlsec-x509.html#XMLSEC-X509DATA-SKI-NODE--CAPS">XMLSEC_X509DATA_SKI_NODE</a>
-#define <a href="xmlsec-x509.html#XMLSEC-X509DATA-CRL-NODE--CAPS">XMLSEC_X509DATA_CRL_NODE</a>
-#define <a href="xmlsec-x509.html#XMLSEC-X509DATA-DEFAULT--CAPS">XMLSEC_X509DATA_DEFAULT</a>
-<font>int</font> <a href="xmlsec-x509.html#XMLSECX509DATAGETNODECONTENT">xmlSecX509DataGetNodeContent</a> (<font>xmlNodePtr</font> node,
- <font>int</font> deleteChildren,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
+<a name="AEN28797"></a><h2>Name</h2>x509 -- <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Certificate" target="_top"><dsig:X509Certificate/></a> node parser.</div>
+<div class="REFSECT1">
+<a name="XMLSEC-X509.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN28803"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody><tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-x509.html#XMLSECX509DATAGETNODECONTENT">xmlSecX509DataGetNodeContent</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-X509.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN28815"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-x509.html#XMLSEC-X509DATA-CERTIFICATE-NODE:CAPS">XMLSEC_X509DATA_CERTIFICATE_NODE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-x509.html#XMLSEC-X509DATA-SUBJECTNAME-NODE:CAPS">XMLSEC_X509DATA_SUBJECTNAME_NODE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-x509.html#XMLSEC-X509DATA-ISSUERSERIAL-NODE:CAPS">XMLSEC_X509DATA_ISSUERSERIAL_NODE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-x509.html#XMLSEC-X509DATA-SKI-NODE:CAPS">XMLSEC_X509DATA_SKI_NODE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-x509.html#XMLSEC-X509DATA-CRL-NODE:CAPS">XMLSEC_X509DATA_CRL_NODE</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-x509.html#XMLSEC-X509DATA-DEFAULT:CAPS">XMLSEC_X509DATA_DEFAULT</a></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
<a name="XMLSEC-X509.DESCRIPTION"></a><h2>Description</h2>
<p><a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Certificate" target="_top"><dsig:X509Certificate/></a> node parser.</p>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-X509.DETAILS"></a><h2>Details</h2>
+<a name="XMLSEC-X509.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
-<a name="XMLSEC-X509DATA-CERTIFICATE-NODE--CAPS"></a><h3>XMLSEC_X509DATA_CERTIFICATE_NODE</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_X509DATA_CERTIFICATE_NODE 0x00000001</pre>
-<p><a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Certificate" target="_top"><dsig:X509Certificate/></a> node found or would be written back.</p>
+<a name="XMLSECX509DATAGETNODECONTENT"></a><h3>xmlSecX509DataGetNodeContent ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecX509DataGetNodeContent (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtxPtr</span></a> keyInfoCtx</code>);</pre>
+<p>Reads the contents of <dsig:X509Data/> node and returns it as
+a bits mask.</p>
+<div class="REFSECT3">
+<a name="AEN28862"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN28864"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to <dsig:X509Data/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>keyInfoCtx</p></td>
+<td><p>the pointer to <dsig:KeyInfo/> node processing context.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN28879"></a><h4>Returns</h4>
+<p> the bit mask representing the <dsig:X509Data/> node content
+or a negative value if an error occurs.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-X509.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSEC-X509DATA-CERTIFICATE-NODE:CAPS"></a><h3>XMLSEC_X509DATA_CERTIFICATE_NODE</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_X509DATA_CERTIFICATE_NODE 0x00000001</pre>
+<p><dsig:X509Certificate/> node found or would be written back.</p>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-X509DATA-SUBJECTNAME-NODE--CAPS"></a><h3>XMLSEC_X509DATA_SUBJECTNAME_NODE</h3>
+<a name="XMLSEC-X509DATA-SUBJECTNAME-NODE:CAPS"></a><h3>XMLSEC_X509DATA_SUBJECTNAME_NODE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_X509DATA_SUBJECTNAME_NODE 0x00000002</pre>
-<p><a href="http://www.w3.org/TR/xmldsig-core/#sec-X509SubjectName" target="_top"><dsig:X509SubjectName/></a> node found or would be written back.</p>
-<p></p>
+<p><dsig:X509SubjectName/> node found or would be written back.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-X509DATA-ISSUERSERIAL-NODE--CAPS"></a><h3>XMLSEC_X509DATA_ISSUERSERIAL_NODE</h3>
+<a name="XMLSEC-X509DATA-ISSUERSERIAL-NODE:CAPS"></a><h3>XMLSEC_X509DATA_ISSUERSERIAL_NODE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_X509DATA_ISSUERSERIAL_NODE 0x00000004</pre>
-<p><a href="http://www.w3.org/TR/xmldsig-core/#sec-X509IssuerSerial" target="_top"><dsig:X509IssuerSerial/></a> node found or would be written back.</p>
-<p></p>
+<p><dsig:X509IssuerSerial/> node found or would be written back.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-X509DATA-SKI-NODE--CAPS"></a><h3>XMLSEC_X509DATA_SKI_NODE</h3>
+<a name="XMLSEC-X509DATA-SKI-NODE:CAPS"></a><h3>XMLSEC_X509DATA_SKI_NODE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_X509DATA_SKI_NODE 0x00000008</pre>
-<p><dsig:/X509SKI> node found or would be written back.</p>
-<p></p>
+<p><dsig:X509SKI/> node found or would be written back.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-X509DATA-CRL-NODE--CAPS"></a><h3>XMLSEC_X509DATA_CRL_NODE</h3>
+<a name="XMLSEC-X509DATA-CRL-NODE:CAPS"></a><h3>XMLSEC_X509DATA_CRL_NODE</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_X509DATA_CRL_NODE 0x00000010</pre>
-<p><a href="http://www.w3.org/TR/xmldsig-core/#sec-X509CRL" target="_top"><dsig:X509CRL/></a> node found or would be written back.</p>
-<p></p>
+<p><dsig:X509CRL/> node found or would be written back.</p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-X509DATA-DEFAULT--CAPS"></a><h3>XMLSEC_X509DATA_DEFAULT</h3>
+<a name="XMLSEC-X509DATA-DEFAULT:CAPS"></a><h3>XMLSEC_X509DATA_DEFAULT</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_X509DATA_DEFAULT</pre>
<p>Default set of nodes to write in case of empty
-<a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node template.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECX509DATAGETNODECONTENT"></a><h3>xmlSecX509DataGetNodeContent ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecX509DataGetNodeContent (<font>xmlNodePtr</font> node,
- <font>int</font> deleteChildren,
- <a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtxPtr</a> keyInfoCtx);</pre>
-<p>Reads the contents of <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node and returns it as
-a bits mask.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21354"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21360"><span style="white-space: nowrap"><code class="PARAMETER">deleteChildren</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag that indicates whether to remove node children after reading.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21365"><span style="white-space: nowrap"><code class="PARAMETER">keyInfoCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> node processing context.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21371"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the bit mask representing the <a href="http://www.w3.org/TR/xmldsig-core/#sec-X509Data" target="_top"><dsig:X509Data/></a> node content
-or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+<dsig:X509Data/> node template.</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-xmldsig.html b/docs/api/xmlsec-xmldsig.html
index 31d069e..14b176e 100644
--- a/docs/api/xmlsec-xmldsig.html
+++ b/docs/api/xmlsec-xmldsig.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="version" href="xmlsec-version.html">
<link rel="NEXT" title="xmlenc" href="xmlsec-xmlenc.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,800 +101,1254 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-version.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-version.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-xmlenc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-xmlenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-XMLDSIG"></a>xmldsig</h1>
<div class="REFNAMEDIV">
-<a name="AEN17612"></a><h2>Name</h2>xmldsig -- XML Digital Signature support.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-XMLDSIG.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">enum <a href="xmlsec-xmldsig.html#XMLSECDSIGSTATUS">xmlSecDSigStatus</a>;
-#define <a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-IGNORE-MANIFESTS--CAPS">XMLSEC_DSIG_FLAGS_IGNORE_MANIFESTS</a>
-#define <a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-SIGNEDINFO-REFERENCES--CAPS">XMLSEC_DSIG_FLAGS_STORE_SIGNEDINFO_REFERENCES</a>
-#define <a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-MANIFEST-REFERENCES--CAPS">XMLSEC_DSIG_FLAGS_STORE_MANIFEST_REFERENCES</a>
-#define <a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-SIGNATURE--CAPS">XMLSEC_DSIG_FLAGS_STORE_SIGNATURE</a>
-#define <a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-USE-VISA3D-HACK--CAPS">XMLSEC_DSIG_FLAGS_USE_VISA3D_HACK</a>
-struct <a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtx</a>;
-<font>xmlSecDSigCtxPtr</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXCREATE">xmlSecDSigCtxCreate</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);
-<font>void</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXDESTROY">xmlSecDSigCtxDestroy</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx);
-<font>int</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXINITIALIZE">xmlSecDSigCtxInitialize</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);
-<font>void</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXFINALIZE">xmlSecDSigCtxFinalize</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx);
-<font>int</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXSIGN">xmlSecDSigCtxSign</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <font>xmlNodePtr</font> tmpl);
-<font>int</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXVERIFY">xmlSecDSigCtxVerify</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <font>xmlNodePtr</font> node);
-<font>int</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXENABLEREFERENCETRANSFORM">xmlSecDSigCtxEnableReferenceTransform</a>
- (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <font>xmlSecTransformId</font> transformId);
-<font>int</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXENABLESIGNATURETRANSFORM">xmlSecDSigCtxEnableSignatureTransform</a>
- (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <font>xmlSecTransformId</font> transformId);
-<font>xmlSecBufferPtr</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXGETPRESIGNBUFFER">xmlSecDSigCtxGetPreSignBuffer</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx);
-<font>void</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXDEBUGDUMP">xmlSecDSigCtxDebugDump</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXDEBUGXMLDUMP">xmlSecDSigCtxDebugXmlDump</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <font>FILE</font> *output);
-enum <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCEORIGIN">xmlSecDSigReferenceOrigin</a>;
-struct <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtx</a>;
-<font>xmlSecDSigReferenceCtxPtr</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXCREATE">xmlSecDSigReferenceCtxCreate</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCEORIGIN">xmlSecDSigReferenceOrigin</a> origin);
-<font>void</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXDESTROY">xmlSecDSigReferenceCtxDestroy</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtxPtr</a> dsigRefCtx);
-<font>int</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXINITIALIZE">xmlSecDSigReferenceCtxInitialize</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtxPtr</a> dsigRefCtx,
- <a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCEORIGIN">xmlSecDSigReferenceOrigin</a> origin);
-<font>void</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXFINALIZE">xmlSecDSigReferenceCtxFinalize</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtxPtr</a> dsigRefCtx);
-<font>int</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXPROCESSNODE">xmlSecDSigReferenceCtxProcessNode</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtxPtr</a> dsigRefCtx,
- <font>xmlNodePtr</font> node);
-<a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXGETPREDIGESTBUFFER">xmlSecDSigReferenceCtxGetPreDigestBuffer</a>
- (<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtxPtr</a> dsigRefCtx);
-<font>void</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXDEBUGDUMP">xmlSecDSigReferenceCtxDebugDump</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtxPtr</a> dsigRefCtx,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXDEBUGXMLDUMP">xmlSecDSigReferenceCtxDebugXmlDump</a> (<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtxPtr</a> dsigRefCtx,
- <font>FILE</font> *output);
-#define <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXLISTID">xmlSecDSigReferenceCtxListId</a>
-<font>xmlSecPtrListId</font> <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXLISTGETKLASS">xmlSecDSigReferenceCtxListGetKlass</a> (void);</pre>
-</div>
+<a name="AEN23745"></a><h2>Name</h2>xmldsig -- XML Digital Signature support.</div>
<div class="REFSECT1">
-<a name="XMLSEC-XMLDSIG.DESCRIPTION"></a><h2>Description</h2>
-<p>XML Digital Signature support.</p>
-</div>
-<div class="REFSECT1">
-<a name="XMLSEC-XMLDSIG.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECDSIGSTATUS"></a><h3>enum xmlSecDSigStatus</h3>
-<pre class="PROGRAMLISTING">typedef enum {
- xmlSecDSigStatusUnknown = 0,
- xmlSecDSigStatusSucceeded,
- xmlSecDSigStatusInvalid
-} xmlSecDSigStatus;</pre>
-<p>XML Digital signature processing status.</p>
+<a name="XMLSEC-XMLDSIG.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN23750"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="RETURNVALUE">xmlSecDSigCtxPtr</span></a></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGCTXCREATE">xmlSecDSigCtxCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECDSIGSTATUSUNKNOWN"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecDSigStatusUnknown</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the status is unknown.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGCTXDESTROY">xmlSecDSigCtxDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECDSIGSTATUSSUCCEEDED"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecDSigStatusSucceeded</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the processing succeeded.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGCTXINITIALIZE">xmlSecDSigCtxInitialize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECDSIGSTATUSINVALID"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecDSigStatusInvalid</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the processing failed.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGCTXFINALIZE">xmlSecDSigCtxFinalize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSEC-DSIG-FLAGS-IGNORE-MANIFESTS--CAPS"></a><h3>XMLSEC_DSIG_FLAGS_IGNORE_MANIFESTS</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_DSIG_FLAGS_IGNORE_MANIFESTS 0x00000001</pre>
-<p>If this flag is set then <a href="http://www.w3.org/TR/xmldsig-core/#sec-Manifests" target="_top"><dsig:Manifests/></a> nodes will not be processed.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSEC-DSIG-FLAGS-STORE-SIGNEDINFO-REFERENCES--CAPS"></a><h3>XMLSEC_DSIG_FLAGS_STORE_SIGNEDINFO_REFERENCES</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_DSIG_FLAGS_STORE_SIGNEDINFO_REFERENCES 0x00000002</pre>
-<p>If this flag is set then pre-digest buffer for <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> child
-of <a href="http://www.w3.org/TR/xmldsig-core/#sec-KeyInfo" target="_top"><dsig:KeyInfo/></a> element will be stored in <a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtx</span></a>.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSEC-DSIG-FLAGS-STORE-MANIFEST-REFERENCES--CAPS"></a><h3>XMLSEC_DSIG_FLAGS_STORE_MANIFEST_REFERENCES</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_DSIG_FLAGS_STORE_MANIFEST_REFERENCES 0x00000004</pre>
-<p>If this flag is set then pre-digest buffer for <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> child
-of <a href="http://www.w3.org/TR/xmldsig-core/#sec-Manifest" target="_top"><dsig:Manifest/></a> element will be stored in <a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtx</span></a>.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSEC-DSIG-FLAGS-STORE-SIGNATURE--CAPS"></a><h3>XMLSEC_DSIG_FLAGS_STORE_SIGNATURE</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_DSIG_FLAGS_STORE_SIGNATURE 0x00000008</pre>
-<p>If this flag is set then pre-signature buffer for <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignedInfo" target="_top"><dsig:SignedInfo/></a>
-element processing will be stored in <a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtx</span></a>.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSEC-DSIG-FLAGS-USE-VISA3D-HACK--CAPS"></a><h3>XMLSEC_DSIG_FLAGS_USE_VISA3D_HACK</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_DSIG_FLAGS_USE_VISA3D_HACK 0x00000010</pre>
-<p>If this flag is set then URI ID references are resolved directly
-without using XPointers. This allows one to sign/verify Visa3D
-documents that don't follow XML, XPointer and XML DSig specifications.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECDSIGCTX"></a><h3>struct xmlSecDSigCtx</h3>
-<pre class="PROGRAMLISTING">struct xmlSecDSigCtx {
- /* these data user can set before performing the operation */
- void* userData;
- unsigned int flags;
- unsigned int flags2;
- xmlSecKeyInfoCtx keyInfoReadCtx;
- xmlSecKeyInfoCtx keyInfoWriteCtx;
- xmlSecTransformCtx transformCtx;
- xmlSecTransformUriType enabledReferenceUris;
- xmlSecPtrListPtr enabledReferenceTransforms;
- xmlSecTransformCtxPreExecuteCallback referencePreExecuteCallback;
- xmlSecTransformId defSignMethodId;
- xmlSecTransformId defC14NMethodId;
- xmlSecTransformId defDigestMethodId;
-
- /* these data are returned */
- xmlSecKeyPtr signKey;
- xmlSecTransformOperation operation;
- xmlSecBufferPtr result;
- xmlSecDSigStatus status;
- xmlSecTransformPtr signMethod;
- xmlSecTransformPtr c14nMethod;
- xmlSecTransformPtr preSignMemBufMethod;
- xmlNodePtr signValueNode;
- xmlChar* id;
- xmlSecPtrList signedInfoReferences;
- xmlSecPtrList manifestReferences;
-
- /* reserved for future */
- void* reserved0;
- void* reserved1;
-};</pre>
-<p>XML DSig processing context.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17783"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">userData</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to user data (xmlsec and xmlsec-crypto libraries
- never touches this).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGCTXSIGN">xmlSecDSigCtxSign</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17789"><span style="white-space: nowrap">unsigned <font>int</font> <code class="STRUCTFIELD">flags</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XML Digital Signature processing flags.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGCTXVERIFY">xmlSecDSigCtxVerify</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17795"><span style="white-space: nowrap">unsigned <font>int</font> <code class="STRUCTFIELD">flags2</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XML Digital Signature processing flags.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGCTXENABLEREFERENCETRANSFORM">xmlSecDSigCtxEnableReferenceTransform</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17801"><span style="white-space: nowrap"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a> <code class="STRUCTFIELD">keyInfoReadCtx</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the reading key context.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGCTXENABLESIGNATURETRANSFORM">xmlSecDSigCtxEnableSignatureTransform</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17807"><span style="white-space: nowrap"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a> <code class="STRUCTFIELD">keyInfoWriteCtx</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the writing key context (not used for signature verification).</p></td>
+<td><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="RETURNVALUE">xmlSecBufferPtr</span></a></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGCTXGETPRESIGNBUFFER">xmlSecDSigCtxGetPreSignBuffer</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17813"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtx</a> <code class="STRUCTFIELD">transformCtx</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignedInfo" target="_top"><dsig:SignedInfo/></a> node processing context.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGCTXDEBUGDUMP">xmlSecDSigCtxDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17820"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPE">xmlSecTransformUriType</a> <code class="STRUCTFIELD">enabledReferenceUris</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the URI types allowed for <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGCTXDEBUGXMLDUMP">xmlSecDSigCtxDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17827"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrListPtr</a> <code class="STRUCTFIELD">enabledReferenceTransforms</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list of transforms allowed in <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node.</p></td>
+<td><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX"><span class="RETURNVALUE">xmlSecDSigReferenceCtxPtr</span></a></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXCREATE">xmlSecDSigReferenceCtxCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17834"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXPREEXECUTECALLBACK">xmlSecTransformCtxPreExecuteCallback</a> <code class="STRUCTFIELD">referencePreExecuteCallback</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p>the callback for <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node processing.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXDESTROY">xmlSecDSigReferenceCtxDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXINITIALIZE">xmlSecDSigReferenceCtxInitialize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17841"><span style="white-space: nowrap"><font>xmlSecTransformId</font> <code class="STRUCTFIELD">defSignMethodId</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the default signing method klass.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXFINALIZE">xmlSecDSigReferenceCtxFinalize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17847"><span style="white-space: nowrap"><font>xmlSecTransformId</font> <code class="STRUCTFIELD">defC14NMethodId</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the default c14n method klass.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXPROCESSNODE">xmlSecDSigReferenceCtxProcessNode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17853"><span style="white-space: nowrap"><font>xmlSecTransformId</font> <code class="STRUCTFIELD">defDigestMethodId</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the default digest method klass.</p></td>
+<td><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="RETURNVALUE">xmlSecBufferPtr</span></a></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXGETPREDIGESTBUFFER">xmlSecDSigReferenceCtxGetPreDigestBuffer</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17859"><span style="white-space: nowrap"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <code class="STRUCTFIELD">signKey</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the signature key; application may set <font><span class="TYPE">signKey</span></font>
- before calling <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXSIGN"><span class="TYPE">xmlSecDSigCtxSign</span></a> or <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXVERIFY"><span class="TYPE">xmlSecDSigCtxVerify</span></a>
- functions.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXDEBUGDUMP">xmlSecDSigReferenceCtxDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17871"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMOPERATION">xmlSecTransformOperation</a> <code class="STRUCTFIELD">operation</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the operation: sign or verify.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXDEBUGXMLDUMP">xmlSecDSigReferenceCtxDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17877"><span style="white-space: nowrap"><a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> <code class="STRUCTFIELD">result</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to signature (not valid for signature verification).</p></td>
+<td><font><span class="RETURNVALUE">xmlSecPtrListId</span></font></td>
+<td>
+<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXLISTGETKLASS">xmlSecDSigReferenceCtxListGetKlass</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLDSIG.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN23895"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17883"><span style="white-space: nowrap"><a href="xmlsec-xmldsig.html#XMLSECDSIGSTATUS">xmlSecDSigStatus</a> <code class="STRUCTFIELD">status</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signatuire" target="_top"><dsig:Signatuire/></a> processing status.</p></td>
+<td>enum</td>
+<td><a href="xmlsec-xmldsig.html#XMLSECDSIGSTATUS">xmlSecDSigStatus</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17890"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> <code class="STRUCTFIELD">signMethod</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to signature transform.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-IGNORE-MANIFESTS:CAPS">XMLSEC_DSIG_FLAGS_IGNORE_MANIFESTS</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17896"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> <code class="STRUCTFIELD">c14nMethod</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to c14n transform.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-SIGNEDINFO-REFERENCES:CAPS">XMLSEC_DSIG_FLAGS_STORE_SIGNEDINFO_REFERENCES</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17902"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> <code class="STRUCTFIELD">preSignMemBufMethod</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to binary buffer right before signature
- (valid only if <a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-SIGNATURE--CAPS"><span class="TYPE">XMLSEC_DSIG_FLAGS_STORE_SIGNATURE</span></a> flag is set).</p></td>
+<td>#define</td>
+<td><a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-MANIFEST-REFERENCES:CAPS">XMLSEC_DSIG_FLAGS_STORE_MANIFEST_REFERENCES</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17910"><span style="white-space: nowrap"><font>xmlNodePtr</font> <code class="STRUCTFIELD">signValueNode</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignatureValue" target="_top"><dsig:SignatureValue/></a> node.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-SIGNATURE:CAPS">XMLSEC_DSIG_FLAGS_STORE_SIGNATURE</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17917"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">id</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to Id attribute of <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-USE-VISA3D-HACK:CAPS">XMLSEC_DSIG_FLAGS_USE_VISA3D_HACK</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17924"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrList</a> <code class="STRUCTFIELD">signedInfoReferences</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list of references in <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignedInfo" target="_top"><dsig:SignedInfo/></a> node.</p></td>
+<td>struct</td>
+<td><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtx</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17931"><span style="white-space: nowrap"><a href="xmlsec-list.html#XMLSECPTRLIST">xmlSecPtrList</a> <code class="STRUCTFIELD">manifestReferences</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the list of references in <a href="http://www.w3.org/TR/xmldsig-core/#sec-Manifest" target="_top"><dsig:Manifest/></a> nodes.</p></td>
+<td>enum</td>
+<td><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCEORIGIN">xmlSecDSigReferenceOrigin</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17938"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td>struct</td>
+<td><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtx</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17944"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td>#define</td>
+<td><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXLISTID">xmlSecDSigReferenceCtxListId</a></td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
</div>
-<hr>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLDSIG.DESCRIPTION"></a><h2>Description</h2>
+<p>XML Digital Signature support.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLDSIG.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECDSIGCTXCREATE"></a><h3>xmlSecDSigCtxCreate ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecDSigCtxPtr</font> xmlSecDSigCtxCreate (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);</pre>
-<p>Creates <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> element processing context.
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="RETURNVALUE">xmlSecDSigCtxPtr</span></a>
+xmlSecDSigCtxCreate (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> keysMngr</code>);</pre>
+<p>Creates <dsig:Signature/> element processing context.
The caller is responsible for destroying returned object by calling
<a href="xmlsec-xmldsig.html#XMLSECDSIGCTXDESTROY"><span class="TYPE">xmlSecDSigCtxDestroy</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN23956"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN23958"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keysMngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17963"><span style="white-space: nowrap"><code class="PARAMETER">keysMngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN17968"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly allocated context object or NULL if an error
-occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN23967"></a><h4>Returns</h4>
+<p> pointer to newly allocated context object or NULL if an error
+occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECDSIGCTXDESTROY"></a><h3>xmlSecDSigCtxDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecDSigCtxDestroy (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecDSigCtxDestroy (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtxPtr</span></a> dsigCtx</code>);</pre>
<p>Destroy context object created with <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXCREATE"><span class="TYPE">xmlSecDSigCtxCreate</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN23983"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN23985"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>dsigCtx</p></td>
+<td><p>the pointer to <dsig:Signature/> processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN17985"><span style="white-space: nowrap"><code class="PARAMETER">dsigCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> processing context.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECDSIGCTXINITIALIZE"></a><h3>xmlSecDSigCtxInitialize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecDSigCtxInitialize (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);</pre>
-<p>Initializes <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> element processing context.
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecDSigCtxInitialize (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtxPtr</span></a> dsigCtx</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> keysMngr</code>);</pre>
+<p>Initializes <dsig:Signature/> element processing context.
The caller is responsible for cleaning up returned object by calling
<a href="xmlsec-xmldsig.html#XMLSECDSIGCTXFINALIZE"><span class="TYPE">xmlSecDSigCtxFinalize</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN24010"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18005"><span style="white-space: nowrap"><code class="PARAMETER">dsigCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> processing context.</p></td>
-</tr>
+<a name="AEN24012"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18011"><span style="white-space: nowrap"><code class="PARAMETER">keysMngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>dsigCtx</p></td>
+<td><p>the pointer to <dsig:Signature/> processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18016"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>keysMngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN24027"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECDSIGCTXFINALIZE"></a><h3>xmlSecDSigCtxFinalize ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecDSigCtxFinalize (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx);</pre>
-<p>Cleans up <code class="PARAMETER">dsigCtx</code> object initialized with <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXINITIALIZE"><span class="TYPE">xmlSecDSigCtxInitialize</span></a> function.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecDSigCtxFinalize (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtxPtr</span></a> dsigCtx</code>);</pre>
+<p>Cleans up <code class="PARAMETER">dsigCtx</code>
+ object initialized with <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXINITIALIZE"><span class="TYPE">xmlSecDSigCtxInitialize</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN24044"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN24046"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>dsigCtx</p></td>
+<td><p>the pointer to <dsig:Signature/> processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN18034"><span style="white-space: nowrap"><code class="PARAMETER">dsigCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> processing context.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECDSIGCTXSIGN"></a><h3>xmlSecDSigCtxSign ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecDSigCtxSign (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <font>xmlNodePtr</font> tmpl);</pre>
-<p>Signs the data as described in <code class="PARAMETER">tmpl</code> node.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecDSigCtxSign (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtxPtr</span></a> dsigCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> tmpl</code>);</pre>
+<p>Signs the data as described in <code class="PARAMETER">tmpl</code>
+ node.</p>
+<div class="REFSECT3">
+<a name="AEN24070"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18052"><span style="white-space: nowrap"><code class="PARAMETER">dsigCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> processing context.</p></td>
-</tr>
+<a name="AEN24072"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18058"><span style="white-space: nowrap"><code class="PARAMETER">tmpl</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node with signature template.</p></td>
+<td><p>dsigCtx</p></td>
+<td><p>the pointer to <dsig:Signature/> processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18064"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>tmpl</p></td>
+<td><p>the pointer to <dsig:Signature/> node with signature template.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN24087"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECDSIGCTXVERIFY"></a><h3>xmlSecDSigCtxVerify ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecDSigCtxVerify (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <font>xmlNodePtr</font> node);</pre>
-<p>Vaidates signature in the <code class="PARAMETER">node</code>. The verification result is returned
-in <font><span class="TYPE">status</span></font> member of the <code class="PARAMETER">dsigCtx</code> object.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecDSigCtxVerify (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtxPtr</span></a> dsigCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>);</pre>
+<p>Vaidates signature in the <code class="PARAMETER">node</code>
+. The verification result is returned
+in <font><span class="TYPE">status</span></font> member of the <code class="PARAMETER">dsigCtx</code>
+ object.</p>
+<div class="REFSECT3">
+<a name="AEN24108"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN24110"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>dsigCtx</p></td>
+<td><p>the pointer to <dsig:Signature/> processing context.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer with <dsig:Signature/> node.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN24125"></a><h4>Returns</h4>
+<p> 0 on success (check <font><span class="TYPE">status</span></font> member of <code class="PARAMETER">dsigCtx</code>
+to get
+signature verification result) or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECDSIGCTXENABLEREFERENCETRANSFORM"></a><h3>xmlSecDSigCtxEnableReferenceTransform ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecDSigCtxEnableReferenceTransform (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtxPtr</span></a> dsigCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> transformId</code>);</pre>
+<p>Enables <code class="PARAMETER">transformId</code>
+ for <dsig:Reference/> elements processing.</p>
+<div class="REFSECT3">
+<a name="AEN24146"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN24148"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18084"><span style="white-space: nowrap"><code class="PARAMETER">dsigCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> processing context.</p></td>
+<td><p>dsigCtx</p></td>
+<td><p>the pointer to <dsig:Signature/> processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18090"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer with <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node.</p></td>
+<td><p>transformId</p></td>
+<td><p>the transform klass.</p></td>
+<td> </td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN24163"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECDSIGCTXENABLESIGNATURETRANSFORM"></a><h3>xmlSecDSigCtxEnableSignatureTransform ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecDSigCtxEnableSignatureTransform (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtxPtr</span></a> dsigCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlSecTransformId</span></font> transformId</code>);</pre>
+<p>Enables <code class="PARAMETER">transformId</code>
+ for <dsig:SignedInfo/> element processing.</p>
+<div class="REFSECT3">
+<a name="AEN24181"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN24183"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18096"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success (check <font><span class="TYPE">status</span></font> member of <code class="PARAMETER">dsigCtx</code> to get
-signature verification result) or a negative value if an error occurs.</p></td>
+<td><p>dsigCtx</p></td>
+<td><p>the pointer to <dsig:Signature/> processing context.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+<tr>
+<td><p>transformId</p></td>
+<td><p>the transform klass.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN24198"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECDSIGCTXENABLEREFERENCETRANSFORM"></a><h3>xmlSecDSigCtxEnableReferenceTransform ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecDSigCtxEnableReferenceTransform
- (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <font>xmlSecTransformId</font> transformId);</pre>
-<p>Enables <code class="PARAMETER">transformId</code> for <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> elements processing.</p>
+<a name="XMLSECDSIGCTXGETPRESIGNBUFFER"></a><h3>xmlSecDSigCtxGetPreSignBuffer ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="RETURNVALUE">xmlSecBufferPtr</span></a>
+xmlSecDSigCtxGetPreSignBuffer (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtxPtr</span></a> dsigCtx</code>);</pre>
+<p>Gets pointer to the buffer with serialized <dsig:SignedInfo/> element
+just before signature claculation (valid if and only if
+<a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-SIGNATURE:CAPS"><span class="TYPE">XMLSEC_DSIG_FLAGS_STORE_SIGNATURE</span></a> context flag is set.</p>
+<div class="REFSECT3">
+<a name="AEN24214"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN24216"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>dsigCtx</p></td>
+<td><p>the pointer to <dsig:Signature/> processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN24225"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECDSIGCTXDEBUGDUMP"></a><h3>xmlSecDSigCtxDebugDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecDSigCtxDebugDump (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtxPtr</span></a> dsigCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints the debug information about <code class="PARAMETER">dsigCtx</code>
+ to <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN24244"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN24246"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18117"><span style="white-space: nowrap"><code class="PARAMETER">dsigCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> processing context.</p></td>
+<td><p>dsigCtx</p></td>
+<td><p>the pointer to <dsig:Signature/> processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18123"><span style="white-space: nowrap"><code class="PARAMETER">transformId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform klass.</p></td>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECDSIGCTXDEBUGXMLDUMP"></a><h3>xmlSecDSigCtxDebugXmlDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecDSigCtxDebugXmlDump (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtxPtr</span></a> dsigCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints the debug information about <code class="PARAMETER">dsigCtx</code>
+ to <code class="PARAMETER">output</code>
+ in XML format.</p>
+<div class="REFSECT3">
+<a name="AEN24277"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN24279"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>dsigCtx</p></td>
+<td><p>the pointer to <dsig:Signature/> processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18128"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECDSIGCTXENABLESIGNATURETRANSFORM"></a><h3>xmlSecDSigCtxEnableSignatureTransform ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecDSigCtxEnableSignatureTransform
- (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <font>xmlSecTransformId</font> transformId);</pre>
-<p>Enables <code class="PARAMETER">transformId</code> for <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignedInfo" target="_top"><dsig:SignedInfo/></a> element processing.</p>
+<a name="XMLSECDSIGREFERENCECTXCREATE"></a><h3>xmlSecDSigReferenceCtxCreate ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX"><span class="RETURNVALUE">xmlSecDSigReferenceCtxPtr</span></a>
+xmlSecDSigReferenceCtxCreate (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtxPtr</span></a> dsigCtx</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCEORIGIN"><span class="TYPE">xmlSecDSigReferenceOrigin</span></a> origin</code>);</pre>
+<p>Creates new <dsig:Reference/> element processing context. Caller is responsible
+for destroying the returned context by calling <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXDESTROY"><span class="TYPE">xmlSecDSigReferenceCtxDestroy</span></a>
+function.</p>
+<div class="REFSECT3">
+<a name="AEN24310"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN24312"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>dsigCtx</p></td>
+<td><p>the pointer to parent <dsig:Signature/> node processing context.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>origin</p></td>
+<td><p>the reference origin (<dsig:SignedInfo/> or <dsig:Manifest/> node).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN24327"></a><h4>Returns</h4>
+<p> pointer to newly created context or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECDSIGREFERENCECTXDESTROY"></a><h3>xmlSecDSigReferenceCtxDestroy ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecDSigReferenceCtxDestroy (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX"><span class="TYPE">xmlSecDSigReferenceCtxPtr</span></a> dsigRefCtx</code>);</pre>
+<p>Destroy context object created with <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXCREATE"><span class="TYPE">xmlSecDSigReferenceCtxCreate</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN24343"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN24345"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>dsigRefCtx</p></td>
+<td><p>the pointer to <dsig:Reference/> element processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECDSIGREFERENCECTXINITIALIZE"></a><h3>xmlSecDSigReferenceCtxInitialize ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecDSigReferenceCtxInitialize (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX"><span class="TYPE">xmlSecDSigReferenceCtxPtr</span></a> dsigRefCtx</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtxPtr</span></a> dsigCtx</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCEORIGIN"><span class="TYPE">xmlSecDSigReferenceOrigin</span></a> origin</code>);</pre>
+<p>Initializes new <dsig:Reference/> element processing context. Caller is responsible
+for cleaning up the returned context by calling <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXFINALIZE"><span class="TYPE">xmlSecDSigReferenceCtxFinalize</span></a>
+function.</p>
+<div class="REFSECT3">
+<a name="AEN24373"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN24375"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18146"><span style="white-space: nowrap"><code class="PARAMETER">dsigCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> processing context.</p></td>
+<td><p>dsigRefCtx</p></td>
+<td><p>the pointer to <dsig:Reference/> element processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18152"><span style="white-space: nowrap"><code class="PARAMETER">transformId</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transform klass.</p></td>
+<td><p>dsigCtx</p></td>
+<td><p>the pointer to parent <dsig:Signature/> node processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18157"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>origin</p></td>
+<td><p>the reference origin (<dsig:SignedInfo/> or <dsig:Manifest/> node).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN24396"></a><h4>Returns</h4>
+<p> 0 on succes or aa negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECDSIGCTXGETPRESIGNBUFFER"></a><h3>xmlSecDSigCtxGetPreSignBuffer ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecBufferPtr</font> xmlSecDSigCtxGetPreSignBuffer (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx);</pre>
-<p>Gets pointer to the buffer with serialized <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignedInfo" target="_top"><dsig:SignedInfo/></a> element
-just before signature claculation (valid if and only if
-<a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-SIGNATURE--CAPS"><span class="TYPE">XMLSEC_DSIG_FLAGS_STORE_SIGNATURE</span></a> context flag is set.</p>
+<a name="XMLSECDSIGREFERENCECTXFINALIZE"></a><h3>xmlSecDSigReferenceCtxFinalize ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecDSigReferenceCtxFinalize (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX"><span class="TYPE">xmlSecDSigReferenceCtxPtr</span></a> dsigRefCtx</code>);</pre>
+<p>Cleans up context object created with <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXINITIALIZE"><span class="TYPE">xmlSecDSigReferenceCtxInitialize</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN24412"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN24414"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>dsigRefCtx</p></td>
+<td><p>the pointer to <dsig:Reference/> element processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECDSIGREFERENCECTXPROCESSNODE"></a><h3>xmlSecDSigReferenceCtxProcessNode ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecDSigReferenceCtxProcessNode (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX"><span class="TYPE">xmlSecDSigReferenceCtxPtr</span></a> dsigRefCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>);</pre>
+<p>The Reference Element (http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-Reference</span></font>)</p>
+<p>Reference is an element that may occur one or more times. It specifies
+a digest algorithm and digest value, and optionally an identifier of the
+object being signed, the type of the object, and/or a list of transforms
+to be applied prior to digesting. The identification (URI) and transforms
+describe how the digested content (i.e., the input to the digest method)
+was created. The Type attribute facilitates the processing of referenced
+data. For example, while this specification makes no requirements over
+external data, an application may wish to signal that the referent is a
+Manifest. An optional ID attribute permits a Reference to be referenced
+from elsewhere.</p>
+<div class="REFSECT3">
+<a name="AEN24440"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN24442"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18175"><span style="white-space: nowrap"><code class="PARAMETER">dsigCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> processing context.</p></td>
+<td><p>dsigRefCtx</p></td>
+<td><p>the pointer to <dsig:Reference/> element processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18181"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>node</p></td>
+<td><p>the pointer to <dsig:Reference/> node.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN24457"></a><h4>Returns</h4>
+<p> 0 on succes or aa negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECDSIGCTXDEBUGDUMP"></a><h3>xmlSecDSigCtxDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecDSigCtxDebugDump (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <font>FILE</font> *output);</pre>
-<p>Prints the debug information about <code class="PARAMETER">dsigCtx</code> to <code class="PARAMETER">output</code>.</p>
+<a name="XMLSECDSIGREFERENCECTXGETPREDIGESTBUFFER"></a><h3>xmlSecDSigReferenceCtxGetPreDigestBuffer ()</h3>
+<pre class="PROGRAMLISTING"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="RETURNVALUE">xmlSecBufferPtr</span></a>
+xmlSecDSigReferenceCtxGetPreDigestBuffer
+ (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX"><span class="TYPE">xmlSecDSigReferenceCtxPtr</span></a> dsigRefCtx</code>);</pre>
+<p>Gets the results of <dsig:Reference/> node processing just before digesting
+(valid only if <a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-SIGNEDINFO-REFERENCES:CAPS"><span class="TYPE">XMLSEC_DSIG_FLAGS_STORE_SIGNEDINFO_REFERENCES</span></a> or
+<a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-MANIFEST-REFERENCES:CAPS"><span class="TYPE">XMLSEC_DSIG_FLAGS_STORE_MANIFEST_REFERENCES</span></a> flas of signature context
+is set).</p>
+<div class="REFSECT3">
+<a name="AEN24475"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN24477"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>dsigRefCtx</p></td>
+<td><p>the pointer to <dsig:Reference/> element processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN24486"></a><h4>Returns</h4>
+<p> pointer to the buffer or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECDSIGREFERENCECTXDEBUGDUMP"></a><h3>xmlSecDSigReferenceCtxDebugDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecDSigReferenceCtxDebugDump (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX"><span class="TYPE">xmlSecDSigReferenceCtxPtr</span></a> dsigRefCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints debug information about <code class="PARAMETER">dsigRefCtx</code>
+ to <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN24505"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN24507"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18199"><span style="white-space: nowrap"><code class="PARAMETER">dsigCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> processing context.</p></td>
+<td><p>dsigRefCtx</p></td>
+<td><p>the pointer to <dsig:Reference/> element processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18205"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECDSIGCTXDEBUGXMLDUMP"></a><h3>xmlSecDSigCtxDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecDSigCtxDebugXmlDump (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <font>FILE</font> *output);</pre>
-<p>Prints the debug information about <code class="PARAMETER">dsigCtx</code> to <code class="PARAMETER">output</code> in XML format.</p>
-<p></p>
+<a name="XMLSECDSIGREFERENCECTXDEBUGXMLDUMP"></a><h3>xmlSecDSigReferenceCtxDebugXmlDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecDSigReferenceCtxDebugXmlDump (<code class="PARAMETER"><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX"><span class="TYPE">xmlSecDSigReferenceCtxPtr</span></a> dsigRefCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints debug information about <code class="PARAMETER">dsigRefCtx</code>
+ to <code class="PARAMETER">output</code>
+ in output format.</p>
+<div class="REFSECT3">
+<a name="AEN24538"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN24540"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18223"><span style="white-space: nowrap"><code class="PARAMETER">dsigCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> processing context.</p></td>
+<td><p>dsigRefCtx</p></td>
+<td><p>the pointer to <dsig:Reference/> element processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18229"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECDSIGREFERENCEORIGIN"></a><h3>enum xmlSecDSigReferenceOrigin</h3>
-<pre class="PROGRAMLISTING">typedef enum {
- xmlSecDSigReferenceOriginSignedInfo,
- xmlSecDSigReferenceOriginManifest
-} xmlSecDSigReferenceOrigin;</pre>
-<p>The possible <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node locations: in the <a href="http://www.w3.org/TR/xmldsig-core/#sec-SignedInfo" target="_top"><dsig:SignedInfo/></a>
-node or in the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Manifest" target="_top"><dsig:Manifest/></a> node.</p>
-<p></p>
+<a name="XMLSECDSIGREFERENCECTXLISTGETKLASS"></a><h3>xmlSecDSigReferenceCtxListGetKlass ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecPtrListId</span></font>
+xmlSecDSigReferenceCtxListGetKlass (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>The <dsig:Reference/> element processing contexts list klass.</p>
+<div class="REFSECT3">
+<a name="AEN24565"></a><h4>Returns</h4>
+<p> <dsig:Reference/> element processing context list klass.</p>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLDSIG.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECDSIGSTATUS"></a><h3>enum xmlSecDSigStatus</h3>
+<p>XML Digital signature processing status.</p>
+<div class="REFSECT3">
+<a name="AEN24575"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN24577"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>xmlSecDSigStatusUnknown</p></td>
+<td><p>the status is unknown.</p></td>
+<td> </td>
+</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECDSIGREFERENCEORIGINSIGNEDINFO"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecDSigReferenceOriginSignedInfo</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p>reference in <dsig:SignedInfo> node.</p></td>
+<td><p>xmlSecDSigStatusSucceeded</p></td>
+<td><p>the processing succeeded.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECDSIGREFERENCEORIGINMANIFEST"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecDSigReferenceOriginManifest</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> reference <dsig:Manifest> node.</p></td>
+<td><p>xmlSecDSigStatusInvalid</p></td>
+<td><p>the processing failed.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECDSIGREFERENCECTX"></a><h3>struct xmlSecDSigReferenceCtx</h3>
-<pre class="PROGRAMLISTING">struct xmlSecDSigReferenceCtx {
+<a name="XMLSEC-DSIG-FLAGS-IGNORE-MANIFESTS:CAPS"></a><h3>XMLSEC_DSIG_FLAGS_IGNORE_MANIFESTS</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_DSIG_FLAGS_IGNORE_MANIFESTS 0x00000001</pre>
+<p>If this flag is set then <dsig:Manifests/> nodes will not be processed.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSEC-DSIG-FLAGS-STORE-SIGNEDINFO-REFERENCES:CAPS"></a><h3>XMLSEC_DSIG_FLAGS_STORE_SIGNEDINFO_REFERENCES</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_DSIG_FLAGS_STORE_SIGNEDINFO_REFERENCES 0x00000002</pre>
+<p>If this flag is set then pre-digest buffer for <dsig:Reference/> child
+of <dsig:KeyInfo/> element will be stored in <a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtx</span></a>.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSEC-DSIG-FLAGS-STORE-MANIFEST-REFERENCES:CAPS"></a><h3>XMLSEC_DSIG_FLAGS_STORE_MANIFEST_REFERENCES</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_DSIG_FLAGS_STORE_MANIFEST_REFERENCES 0x00000004</pre>
+<p>If this flag is set then pre-digest buffer for <dsig:Reference/> child
+of <dsig:Manifest/> element will be stored in <a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtx</span></a>.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSEC-DSIG-FLAGS-STORE-SIGNATURE:CAPS"></a><h3>XMLSEC_DSIG_FLAGS_STORE_SIGNATURE</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_DSIG_FLAGS_STORE_SIGNATURE 0x00000008</pre>
+<p>If this flag is set then pre-signature buffer for <dsig:SignedInfo/>
+element processing will be stored in <a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtx</span></a>.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSEC-DSIG-FLAGS-USE-VISA3D-HACK:CAPS"></a><h3>XMLSEC_DSIG_FLAGS_USE_VISA3D_HACK</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_DSIG_FLAGS_USE_VISA3D_HACK 0x00000010</pre>
+<p>If this flag is set then URI ID references are resolved directly
+without using XPointers. This allows one to sign/verify Visa3D
+documents that don't follow XML, XPointer and XML DSig specifications.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECDSIGCTX"></a><h3>struct xmlSecDSigCtx</h3>
+<pre class="PROGRAMLISTING">struct xmlSecDSigCtx {
+ /* these data user can set before performing the operation */
void* userData;
- xmlSecDSigCtxPtr dsigCtx;
- xmlSecDSigReferenceOrigin origin;
+ unsigned int flags;
+ unsigned int flags2;
+ xmlSecKeyInfoCtx keyInfoReadCtx;
+ xmlSecKeyInfoCtx keyInfoWriteCtx;
xmlSecTransformCtx transformCtx;
- xmlSecTransformPtr digestMethod;
+ xmlSecTransformUriType enabledReferenceUris;
+ xmlSecPtrListPtr enabledReferenceTransforms;
+ xmlSecTransformCtxPreExecuteCallback referencePreExecuteCallback;
+ xmlSecTransformId defSignMethodId;
+ xmlSecTransformId defC14NMethodId;
+ xmlSecTransformId defDigestMethodId;
+ /* these data are returned */
+ xmlSecKeyPtr signKey;
+ xmlSecTransformOperation operation;
xmlSecBufferPtr result;
xmlSecDSigStatus status;
- xmlSecTransformPtr preDigestMemBufMethod;
+ xmlSecTransformPtr signMethod;
+ xmlSecTransformPtr c14nMethod;
+ xmlSecTransformPtr preSignMemBufMethod;
+ xmlNodePtr signValueNode;
xmlChar* id;
- xmlChar* uri;
- xmlChar* type;
+ xmlSecPtrList signedInfoReferences;
+ xmlSecPtrList manifestReferences;
- /* reserved for future */
+ /* reserved for future */
void* reserved0;
void* reserved1;
};</pre>
-<p>The <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> processing context.</p>
-<p></p>
+<p>XML DSig processing context.</p>
+<div class="REFSECT3">
+<a name="AEN24640"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN24642"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18264"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">userData</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to user data (xmlsec and xmlsec-crypto libraries
- never touches this).</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">userData</code>;</p></td>
+<td><p>the pointer to user data (xmlsec and xmlsec-crypto libraries
+never touches this).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18270"><span style="white-space: nowrap"><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> <code class="STRUCTFIELD">dsigCtx</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to "parent" <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> processing context.</p></td>
+<td><p>unsigned <font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">flags</code>;</p></td>
+<td><p>the XML Digital Signature processing flags.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18277"><span style="white-space: nowrap"><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCEORIGIN">xmlSecDSigReferenceOrigin</a> <code class="STRUCTFIELD">origin</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the signature origin (<a href="http://www.w3.org/TR/xmldsig-core/#sec-SignedInfo" target="_top"><dsig:SignedInfo/></a> or <a href="http://www.w3.org/TR/xmldsig-core/#sec-Manifest" target="_top"><dsig:Manifest/></a>).</p></td>
+<td><p>unsigned <font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">flags2</code>;</p></td>
+<td><p>the XML Digital Signature processing flags.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18285"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtx</a> <code class="STRUCTFIELD">transformCtx</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the reference processing transforms context.</p></td>
+<td><p><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtx</span></a> <code class="STRUCTFIELD">keyInfoReadCtx</code>;</p></td>
+<td><p>the reading key context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18291"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> <code class="STRUCTFIELD">digestMethod</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to digest transform.</p></td>
+<td><p><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtx</span></a> <code class="STRUCTFIELD">keyInfoWriteCtx</code>;</p></td>
+<td><p>the writing key context (not used for signature verification).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18297"><span style="white-space: nowrap"><a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> <code class="STRUCTFIELD">result</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to digest result.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtx</span></a> <code class="STRUCTFIELD">transformCtx</code>;</p></td>
+<td><p>the <dsig:SignedInfo/> node processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18303"><span style="white-space: nowrap"><a href="xmlsec-xmldsig.html#XMLSECDSIGSTATUS">xmlSecDSigStatus</a> <code class="STRUCTFIELD">status</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the reference processing status.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMURITYPE"><span class="TYPE">xmlSecTransformUriType</span></a> <code class="STRUCTFIELD">enabledReferenceUris</code>;</p></td>
+<td><p>the URI types allowed for <dsig:Reference/> node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18309"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> <code class="STRUCTFIELD">preDigestMemBufMethod</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to binary buffer right before digest
- (valid only if either
- <a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-SIGNEDINFO-REFERENCES--CAPS"><span class="TYPE">XMLSEC_DSIG_FLAGS_STORE_SIGNEDINFO_REFERENCES</span></a> or
- <a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-MANIFEST-REFERENCES--CAPS"><span class="TYPE">XMLSEC_DSIG_FLAGS_STORE_MANIFEST_REFERENCES</span></a> flags are set).</p></td>
+<td><p><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrListPtr</span></a> <code class="STRUCTFIELD">enabledReferenceTransforms</code>;</p></td>
+<td><p>the list of transforms allowed in <dsig:Reference/> node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18319"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">id</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node ID attribute.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTXPREEXECUTECALLBACK"><span class="TYPE">xmlSecTransformCtxPreExecuteCallback</span></a> <code class="STRUCTFIELD">referencePreExecuteCallback</code>;</p></td>
+<td><p>the callback for <dsig:Reference/> node processing.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18326"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">uri</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node URI attribute.</p></td>
+<td><p><font><span class="TYPE">xmlSecTransformId</span></font> <code class="STRUCTFIELD">defSignMethodId</code>;</p></td>
+<td><p>the default signing method klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18333"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">type</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node Type attribute.</p></td>
+<td><p><font><span class="TYPE">xmlSecTransformId</span></font> <code class="STRUCTFIELD">defC14NMethodId</code>;</p></td>
+<td><p>the default c14n method klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18340"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved0</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><p><font><span class="TYPE">xmlSecTransformId</span></font> <code class="STRUCTFIELD">defDigestMethodId</code>;</p></td>
+<td><p>the default digest method klass.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18346"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td><p><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> <code class="STRUCTFIELD">signKey</code>;</p></td>
+<td><p>the signature key; application may set <font><span class="TYPE">signKey</span></font>
+before calling <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXSIGN"><span class="TYPE">xmlSecDSigCtxSign</span></a> or <a href="xmlsec-xmldsig.html#XMLSECDSIGCTXVERIFY"><span class="TYPE">xmlSecDSigCtxVerify</span></a>
+functions.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECDSIGREFERENCECTXCREATE"></a><h3>xmlSecDSigReferenceCtxCreate ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecDSigReferenceCtxPtr</font> xmlSecDSigReferenceCtxCreate (<a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCEORIGIN">xmlSecDSigReferenceOrigin</a> origin);</pre>
-<p>Creates new <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> element processing context. Caller is responsible
-for destroying the returned context by calling <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXDESTROY"><span class="TYPE">xmlSecDSigReferenceCtxDestroy</span></a>
-function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18366"><span style="white-space: nowrap"><code class="PARAMETER">dsigCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to parent <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node processing context.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMOPERATION"><span class="TYPE">xmlSecTransformOperation</span></a> <code class="STRUCTFIELD">operation</code>;</p></td>
+<td><p>the operation: sign or verify.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18372"><span style="white-space: nowrap"><code class="PARAMETER">origin</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the reference origin (<a href="http://www.w3.org/TR/xmldsig-core/#sec-SignedInfo" target="_top"><dsig:SignedInfo/></a> or <a href="http://www.w3.org/TR/xmldsig-core/#sec-Manifest" target="_top"><dsig:Manifest/></a> node).</p></td>
+<td><p><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> <code class="STRUCTFIELD">result</code>;</p></td>
+<td><p>the pointer to signature (not valid for signature verification).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18379"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly created context or NULL if an error occurs.</p></td>
+<td><p><a href="xmlsec-xmldsig.html#XMLSECDSIGSTATUS"><span class="TYPE">xmlSecDSigStatus</span></a> <code class="STRUCTFIELD">status</code>;</p></td>
+<td><p>the <dsig:Signatuire/> processing status.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> <code class="STRUCTFIELD">signMethod</code>;</p></td>
+<td><p>the pointer to signature transform.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECDSIGREFERENCECTXDESTROY"></a><h3>xmlSecDSigReferenceCtxDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecDSigReferenceCtxDestroy (<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtxPtr</a> dsigRefCtx);</pre>
-<p>Destroy context object created with <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXCREATE"><span class="TYPE">xmlSecDSigReferenceCtxCreate</span></a> function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN18396"><span style="white-space: nowrap"><code class="PARAMETER">dsigRefCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> element processing context.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECDSIGREFERENCECTXINITIALIZE"></a><h3>xmlSecDSigReferenceCtxInitialize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecDSigReferenceCtxInitialize (<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtxPtr</a> dsigRefCtx,
- <a href="xmlsec-xmldsig.html#XMLSECDSIGCTX">xmlSecDSigCtxPtr</a> dsigCtx,
- <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCEORIGIN">xmlSecDSigReferenceOrigin</a> origin);</pre>
-<p>Initializes new <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> element processing context. Caller is responsible
-for cleaning up the returned context by calling <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXFINALIZE"><span class="TYPE">xmlSecDSigReferenceCtxFinalize</span></a>
-function.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18417"><span style="white-space: nowrap"><code class="PARAMETER">dsigRefCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> element processing context.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> <code class="STRUCTFIELD">c14nMethod</code>;</p></td>
+<td><p>the pointer to c14n transform.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18423"><span style="white-space: nowrap"><code class="PARAMETER">dsigCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to parent <a href="http://www.w3.org/TR/xmldsig-core/#sec-Signature" target="_top"><dsig:Signature/></a> node processing context.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> <code class="STRUCTFIELD">preSignMemBufMethod</code>;</p></td>
+<td><p>the pointer to binary buffer right before signature
+(valid only if <a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-SIGNATURE:CAPS"><span class="TYPE">XMLSEC_DSIG_FLAGS_STORE_SIGNATURE</span></a> flag is set).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18429"><span style="white-space: nowrap"><code class="PARAMETER">origin</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the reference origin (<a href="http://www.w3.org/TR/xmldsig-core/#sec-SignedInfo" target="_top"><dsig:SignedInfo/></a> or <a href="http://www.w3.org/TR/xmldsig-core/#sec-Manifest" target="_top"><dsig:Manifest/></a> node).</p></td>
+<td><p><font><span class="TYPE">xmlNodePtr</span></font> <code class="STRUCTFIELD">signValueNode</code>;</p></td>
+<td><p>the pointer to <dsig:SignatureValue/> node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18436"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on succes or aa negative value otherwise.</p></td>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">id</code>;</p></td>
+<td><p>the pointer to Id attribute of <dsig:Signature/> node.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+<tr>
+<td><p><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrList</span></a> <code class="STRUCTFIELD">signedInfoReferences</code>;</p></td>
+<td><p>the list of references in <dsig:SignedInfo/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-list.html#XMLSECPTRLIST"><span class="TYPE">xmlSecPtrList</span></a> <code class="STRUCTFIELD">manifestReferences</code>;</p></td>
+<td><p>the list of references in <dsig:Manifest/> nodes.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved0</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECDSIGREFERENCECTXFINALIZE"></a><h3>xmlSecDSigReferenceCtxFinalize ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecDSigReferenceCtxFinalize (<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtxPtr</a> dsigRefCtx);</pre>
-<p>Cleans up context object created with <a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTXINITIALIZE"><span class="TYPE">xmlSecDSigReferenceCtxInitialize</span></a> function.</p>
+<a name="XMLSECDSIGREFERENCEORIGIN"></a><h3>enum xmlSecDSigReferenceOrigin</h3>
+<p>The possible <dsig:Reference/> node locations: in the <dsig:SignedInfo/>
+node or in the <dsig:Manifest/> node.</p>
+<div class="REFSECT3">
+<a name="AEN24883"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN24885"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>xmlSecDSigReferenceOriginSignedInfo</p></td>
+<td><p>reference in <dsig:SignedInfo> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlSecDSigReferenceOriginManifest</p></td>
+<td><p>reference <dsig:Manifest> node.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN18453"><span style="white-space: nowrap"><code class="PARAMETER">dsigRefCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> element processing context.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECDSIGREFERENCECTXPROCESSNODE"></a><h3>xmlSecDSigReferenceCtxProcessNode ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecDSigReferenceCtxProcessNode (<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtxPtr</a> dsigRefCtx,
- <font>xmlNodePtr</font> node);</pre>
-<p>The Reference Element (http://www.w3.org/TR/xmldsig-core/<font><span class="TYPE">sec-Reference</span></font>)</p>
-<p>Reference is an element that may occur one or more times. It specifies
-a digest algorithm and digest value, and optionally an identifier of the
-object being signed, the type of the object, and/or a list of transforms
-to be applied prior to digesting. The identification (URI) and transforms
-describe how the digested content (i.e., the input to the digest method)
-was created. The Type attribute facilitates the processing of referenced
-data. For example, while this specification makes no requirements over
-external data, an application may wish to signal that the referent is a
-Manifest. An optional ID attribute permits a Reference to be referenced
-from elsewhere.</p>
-<p></p>
+<a name="XMLSECDSIGREFERENCECTX"></a><h3>struct xmlSecDSigReferenceCtx</h3>
+<pre class="PROGRAMLISTING">struct xmlSecDSigReferenceCtx {
+ void* userData;
+ xmlSecDSigCtxPtr dsigCtx;
+ xmlSecDSigReferenceOrigin origin;
+ xmlSecTransformCtx transformCtx;
+ xmlSecTransformPtr digestMethod;
+
+ xmlSecBufferPtr result;
+ xmlSecDSigStatus status;
+ xmlSecTransformPtr preDigestMemBufMethod;
+ xmlChar* id;
+ xmlChar* uri;
+ xmlChar* type;
+
+ /* reserved for future */
+ void* reserved0;
+ void* reserved1;
+};</pre>
+<p>The <dsig:Reference/> processing context.</p>
+<div class="REFSECT3">
+<a name="AEN24906"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN24908"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18473"><span style="white-space: nowrap"><code class="PARAMETER">dsigRefCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> element processing context.</p></td>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">userData</code>;</p></td>
+<td><p>the pointer to user data (xmlsec and xmlsec-crypto libraries
+never touches this).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18479"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node.</p></td>
+<td><p><a href="xmlsec-xmldsig.html#XMLSECDSIGCTX"><span class="TYPE">xmlSecDSigCtxPtr</span></a> <code class="STRUCTFIELD">dsigCtx</code>;</p></td>
+<td><p>the pointer to "parent" <dsig:Signature/> processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18485"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on succes or aa negative value otherwise.</p></td>
+<td><p><a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCEORIGIN"><span class="TYPE">xmlSecDSigReferenceOrigin</span></a> <code class="STRUCTFIELD">origin</code>;</p></td>
+<td><p>the signature origin (<dsig:SignedInfo/> or <dsig:Manifest/>).</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECDSIGREFERENCECTXGETPREDIGESTBUFFER"></a><h3>xmlSecDSigReferenceCtxGetPreDigestBuffer ()</h3>
-<pre class="PROGRAMLISTING"><a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> xmlSecDSigReferenceCtxGetPreDigestBuffer
- (<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtxPtr</a> dsigRefCtx);</pre>
-<p>Gets the results of <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> node processing just before digesting
-(valid only if <a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-SIGNEDINFO-REFERENCES--CAPS"><span class="TYPE">XMLSEC_DSIG_FLAGS_STORE_SIGNEDINFO_REFERENCES</span></a> or
-<a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-MANIFEST-REFERENCES--CAPS"><span class="TYPE">XMLSEC_DSIG_FLAGS_STORE_MANIFEST_REFERENCES</span></a> flas of signature context
-is set).</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18505"><span style="white-space: nowrap"><code class="PARAMETER">dsigRefCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> element processing context.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtx</span></a> <code class="STRUCTFIELD">transformCtx</code>;</p></td>
+<td><p>the reference processing transforms context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18511"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the buffer or NULL if an error occurs.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> <code class="STRUCTFIELD">digestMethod</code>;</p></td>
+<td><p>the pointer to digest transform.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECDSIGREFERENCECTXDEBUGDUMP"></a><h3>xmlSecDSigReferenceCtxDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecDSigReferenceCtxDebugDump (<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtxPtr</a> dsigRefCtx,
- <font>FILE</font> *output);</pre>
-<p>Prints debug information about <code class="PARAMETER">dsigRefCtx</code> to <code class="PARAMETER">output</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18529"><span style="white-space: nowrap"><code class="PARAMETER">dsigRefCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> element processing context.</p></td>
+<td><p><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> <code class="STRUCTFIELD">result</code>;</p></td>
+<td><p>the pointer to digest result.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18535"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p><a href="xmlsec-xmldsig.html#XMLSECDSIGSTATUS"><span class="TYPE">xmlSecDSigStatus</span></a> <code class="STRUCTFIELD">status</code>;</p></td>
+<td><p>the reference processing status.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> <code class="STRUCTFIELD">preDigestMemBufMethod</code>;</p></td>
+<td><p>the pointer to binary buffer right before digest
+(valid only if either
+<a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-SIGNEDINFO-REFERENCES:CAPS"><span class="TYPE">XMLSEC_DSIG_FLAGS_STORE_SIGNEDINFO_REFERENCES</span></a> or
+<a href="xmlsec-xmldsig.html#XMLSEC-DSIG-FLAGS-STORE-MANIFEST-REFERENCES:CAPS"><span class="TYPE">XMLSEC_DSIG_FLAGS_STORE_MANIFEST_REFERENCES</span></a> flags are set).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">id</code>;</p></td>
+<td><p>the <dsig:Reference/> node ID attribute.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECDSIGREFERENCECTXDEBUGXMLDUMP"></a><h3>xmlSecDSigReferenceCtxDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecDSigReferenceCtxDebugXmlDump (<a href="xmlsec-xmldsig.html#XMLSECDSIGREFERENCECTX">xmlSecDSigReferenceCtxPtr</a> dsigRefCtx,
- <font>FILE</font> *output);</pre>
-<p>Prints debug information about <code class="PARAMETER">dsigRefCtx</code> to <code class="PARAMETER">output</code> in output format.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18553"><span style="white-space: nowrap"><code class="PARAMETER">dsigRefCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> element processing context.</p></td>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">uri</code>;</p></td>
+<td><p>the <dsig:Reference/> node URI attribute.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18559"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">type</code>;</p></td>
+<td><p>the <dsig:Reference/> node Type attribute.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+<tr>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved0</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECDSIGREFERENCECTXLISTID"></a><h3>xmlSecDSigReferenceCtxListId</h3>
<pre class="PROGRAMLISTING">#define xmlSecDSigReferenceCtxListId</pre>
<p>The references list klass.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECDSIGREFERENCECTXLISTGETKLASS"></a><h3>xmlSecDSigReferenceCtxListGetKlass ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecPtrListId</font> xmlSecDSigReferenceCtxListGetKlass (void);</pre>
-<p>The <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> element processing contexts list klass.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN18581"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> <a href="http://www.w3.org/TR/xmldsig-core/#sec-Reference" target="_top"><dsig:Reference/></a> element processing context list klass.</p></td>
-</tr></tbody></table>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-xmlenc.html b/docs/api/xmlsec-xmlenc.html
index d954bfc..e447556 100644
--- a/docs/api/xmlsec-xmlenc.html
+++ b/docs/api/xmlsec-xmlenc.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="xmldsig" href="xmlsec-xmldsig.html">
<link rel="NEXT" title="xmlsec" href="xmlsec-xmlsec.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,517 +101,833 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-xmldsig.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-xmldsig.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-xmlsec.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-xmlsec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-XMLENC"></a>xmlenc</h1>
<div class="REFNAMEDIV">
-<a name="AEN18592"></a><h2>Name</h2>xmlenc -- XML Encryption support.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-XMLENC.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">enum <a href="xmlsec-xmlenc.html#XMLENCCTXMODE">xmlEncCtxMode</a>;
-#define <a href="xmlsec-xmlenc.html#XMLSEC-ENC-RETURN-REPLACED-NODE--CAPS">XMLSEC_ENC_RETURN_REPLACED_NODE</a>
-struct <a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtx</a>;
-<font>xmlSecEncCtxPtr</font> <a href="xmlsec-xmlenc.html#XMLSECENCCTXCREATE">xmlSecEncCtxCreate</a> (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);
-<font>void</font> <a href="xmlsec-xmlenc.html#XMLSECENCCTXDESTROY">xmlSecEncCtxDestroy</a> (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx);
-<font>int</font> <a href="xmlsec-xmlenc.html#XMLSECENCCTXINITIALIZE">xmlSecEncCtxInitialize</a> (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);
-<font>void</font> <a href="xmlsec-xmlenc.html#XMLSECENCCTXFINALIZE">xmlSecEncCtxFinalize</a> (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx);
-<font>int</font> <a href="xmlsec-xmlenc.html#XMLSECENCCTXCOPYUSERPREF">xmlSecEncCtxCopyUserPref</a> (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> dst,
- <a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> src);
-<font>void</font> <a href="xmlsec-xmlenc.html#XMLSECENCCTXRESET">xmlSecEncCtxReset</a> (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx);
-<font>int</font> <a href="xmlsec-xmlenc.html#XMLSECENCCTXBINARYENCRYPT">xmlSecEncCtxBinaryEncrypt</a> (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <font>xmlNodePtr</font> tmpl,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize);
-<font>int</font> <a href="xmlsec-xmlenc.html#XMLSECENCCTXXMLENCRYPT">xmlSecEncCtxXmlEncrypt</a> (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <font>xmlNodePtr</font> tmpl,
- <font>xmlNodePtr</font> node);
-<font>int</font> <a href="xmlsec-xmlenc.html#XMLSECENCCTXURIENCRYPT">xmlSecEncCtxUriEncrypt</a> (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <font>xmlNodePtr</font> tmpl,
- const <font>xmlChar</font> *uri);
-<font>int</font> <a href="xmlsec-xmlenc.html#XMLSECENCCTXDECRYPT">xmlSecEncCtxDecrypt</a> (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <font>xmlNodePtr</font> node);
-<font>xmlSecBufferPtr</font> <a href="xmlsec-xmlenc.html#XMLSECENCCTXDECRYPTTOBUFFER">xmlSecEncCtxDecryptToBuffer</a> (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <font>xmlNodePtr</font> node);
-<font>void</font> <a href="xmlsec-xmlenc.html#XMLSECENCCTXDEBUGDUMP">xmlSecEncCtxDebugDump</a> (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-xmlenc.html#XMLSECENCCTXDEBUGXMLDUMP">xmlSecEncCtxDebugXmlDump</a> (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <font>FILE</font> *output);</pre>
-</div>
-<div class="REFSECT1">
-<a name="XMLSEC-XMLENC.DESCRIPTION"></a><h2>Description</h2>
-<p>XML Encryption support.</p>
-</div>
+<a name="AEN25043"></a><h2>Name</h2>xmlenc -- XML Encryption support.</div>
<div class="REFSECT1">
-<a name="XMLSEC-XMLENC.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLENCCTXMODE"></a><h3>enum xmlEncCtxMode</h3>
-<pre class="PROGRAMLISTING">typedef enum {
- xmlEncCtxModeEncryptedData = 0,
- xmlEncCtxModeEncryptedKey
-} xmlEncCtxMode;</pre>
-<p>The <a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtx</span></a> mode.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="XMLENCCTXMODEENCRYPTEDDATA"><span style="white-space: nowrap"><tt class="LITERAL">xmlEncCtxModeEncryptedData</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> element procesing.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="XMLENCCTXMODEENCRYPTEDKEY"><span style="white-space: nowrap"><tt class="LITERAL">xmlEncCtxModeEncryptedKey</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> element processing.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSEC-ENC-RETURN-REPLACED-NODE--CAPS"></a><h3>XMLSEC_ENC_RETURN_REPLACED_NODE</h3>
-<pre class="PROGRAMLISTING">#define XMLSEC_ENC_RETURN_REPLACED_NODE 0x00000001</pre>
-<p>If this flag is set, then the replaced node will be returned in the replacedNodeList</p>
+<a name="XMLSEC-XMLENC.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECENCCTX"></a><h3>struct xmlSecEncCtx</h3>
-<pre class="PROGRAMLISTING">struct xmlSecEncCtx {
- /* these data user can set before performing the operation */
- void* userData;
- unsigned int flags;
- unsigned int flags2;
- xmlEncCtxMode mode;
- xmlSecKeyInfoCtx keyInfoReadCtx;
- xmlSecKeyInfoCtx keyInfoWriteCtx;
- xmlSecTransformCtx transformCtx;
- xmlSecTransformId defEncMethodId;
-
- /* these data are returned */
- xmlSecKeyPtr encKey;
- xmlSecTransformOperation operation;
- xmlSecBufferPtr result;
- int resultBase64Encoded;
- int resultReplaced;
- xmlSecTransformPtr encMethod;
-
- /* attributes from EncryptedData or EncryptedKey */
- xmlChar* id;
- xmlChar* type;
- xmlChar* mimeType;
- xmlChar* encoding;
- xmlChar* recipient;
- xmlChar* carriedKeyName;
-
- /* these are internal data, nobody should change that except us */
- xmlNodePtr encDataNode;
- xmlNodePtr encMethodNode;
- xmlNodePtr keyInfoNode;
- xmlNodePtr cipherValueNode;
-
- xmlNodePtr replacedNodeList; /* the pointer to the replaced node */
- void* reserved1; /* reserved for future */
-};</pre>
-<p>XML Encrypiton context.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18695"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">userData</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to user data (xmlsec and xmlsec-crypto libraries
- never touches this).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18701"><span style="white-space: nowrap">unsigned <font>int</font> <code class="STRUCTFIELD">flags</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XML Encryption processing flags.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18707"><span style="white-space: nowrap">unsigned <font>int</font> <code class="STRUCTFIELD">flags2</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XML Encryption processing flags.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18713"><span style="white-space: nowrap"><a href="xmlsec-xmlenc.html#XMLENCCTXMODE">xmlEncCtxMode</a> <code class="STRUCTFIELD">mode</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the mode.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18719"><span style="white-space: nowrap"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a> <code class="STRUCTFIELD">keyInfoReadCtx</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the reading key context.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18725"><span style="white-space: nowrap"><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX">xmlSecKeyInfoCtx</a> <code class="STRUCTFIELD">keyInfoWriteCtx</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the writing key context (not used for signature verification).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18731"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX">xmlSecTransformCtx</a> <code class="STRUCTFIELD">transformCtx</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the transforms processing context.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18737"><span style="white-space: nowrap"><font>xmlSecTransformId</font> <code class="STRUCTFIELD">defEncMethodId</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the default encryption method (used if
- <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptionMethod" target="_top"><enc:EncryptionMethod/></a> node is not present).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18744"><span style="white-space: nowrap"><a href="xmlsec-keys.html#XMLSECKEY">xmlSecKeyPtr</a> <code class="STRUCTFIELD">encKey</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the signature key; application may set <font><span class="TYPE">encKey</span></font>
- before calling encryption/decryption functions.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18752"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORMOPERATION">xmlSecTransformOperation</a> <code class="STRUCTFIELD">operation</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the operation: encrypt or decrypt.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18758"><span style="white-space: nowrap"><a href="xmlsec-buffer.html#XMLSECBUFFER">xmlSecBufferPtr</a> <code class="STRUCTFIELD">result</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to signature (not valid for signature verification).</p></td>
+<a name="AEN25048"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="RETURNVALUE">xmlSecEncCtxPtr</span></a></td>
+<td>
+<a href="xmlsec-xmlenc.html#XMLSECENCCTXCREATE">xmlSecEncCtxCreate</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18764"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">resultBase64Encoded</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag: if set then result in <font><span class="TYPE">result</span></font> is base64 encoded.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmlenc.html#XMLSECENCCTXDESTROY">xmlSecEncCtxDestroy</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18772"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">resultReplaced</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the flag: if set then resulted <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a>
- or <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> node is added to the document.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmlenc.html#XMLSECENCCTXINITIALIZE">xmlSecEncCtxInitialize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18780"><span style="white-space: nowrap"><a href="xmlsec-transforms.html#XMLSECTRANSFORM">xmlSecTransformPtr</a> <code class="STRUCTFIELD">encMethod</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to encryption transform.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmlenc.html#XMLSECENCCTXFINALIZE">xmlSecEncCtxFinalize</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18786"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">id</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the ID attribute of <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a>
- or <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmlenc.html#XMLSECENCCTXCOPYUSERPREF">xmlSecEncCtxCopyUserPref</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18794"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">type</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Type attribute of <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a>
- or <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmlenc.html#XMLSECENCCTXRESET">xmlSecEncCtxReset</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18802"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">mimeType</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the MimeType attribute of <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a>
- or <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmlenc.html#XMLSECENCCTXBINARYENCRYPT">xmlSecEncCtxBinaryEncrypt</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18810"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">encoding</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Encoding attributeof <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a>
- or <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmlenc.html#XMLSECENCCTXXMLENCRYPT">xmlSecEncCtxXmlEncrypt</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18818"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">recipient</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the Recipient attribute of <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> node..</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmlenc.html#XMLSECENCCTXURIENCRYPT">xmlSecEncCtxUriEncrypt</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18825"><span style="white-space: nowrap"><font>xmlChar</font> *<code class="STRUCTFIELD">carriedKeyName</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the CarriedKeyName attribute of <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmlenc.html#XMLSECENCCTXDECRYPT">xmlSecEncCtxDecrypt</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18832"><span style="white-space: nowrap"><font>xmlNodePtr</font> <code class="STRUCTFIELD">encDataNode</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a>
- or <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedKey" target="_top"><enc:EncryptedKey/></a> node.</p></td>
+<td><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="RETURNVALUE">xmlSecBufferPtr</span></a></td>
+<td>
+<a href="xmlsec-xmlenc.html#XMLSECENCCTXDECRYPTTOBUFFER">xmlSecEncCtxDecryptToBuffer</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18840"><span style="white-space: nowrap"><font>xmlNodePtr</font> <code class="STRUCTFIELD">encMethodNode</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptionMethod" target="_top"><enc:EncryptionMethod/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmlenc.html#XMLSECENCCTXDEBUGDUMP">xmlSecEncCtxDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18847"><span style="white-space: nowrap"><font>xmlNodePtr</font> <code class="STRUCTFIELD">keyInfoNode</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-KeyInfo" target="_top"><enc:KeyInfo/></a> node.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmlenc.html#XMLSECENCCTXDEBUGXMLDUMP">xmlSecEncCtxDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLENC.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN25144"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18854"><span style="white-space: nowrap"><font>xmlNodePtr</font> <code class="STRUCTFIELD">cipherValueNode</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-CipherValue" target="_top"><enc:CipherValue/></a> node.</p></td>
+<td>enum</td>
+<td><a href="xmlsec-xmlenc.html#XMLENCCTXMODE">xmlEncCtxMode</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18861"><span style="white-space: nowrap"><font>xmlNodePtr</font> <code class="STRUCTFIELD">replacedNodeList</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the first node of the list of replaced nodes depending on the nodeReplacementMode</p></td>
+<td>#define</td>
+<td><a href="xmlsec-xmlenc.html#XMLSEC-ENC-RETURN-REPLACED-NODE:CAPS">XMLSEC_ENC_RETURN_REPLACED_NODE</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18867"><span style="white-space: nowrap"><font>void</font> *<code class="STRUCTFIELD">reserved1</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> reserved for the future.</p></td>
+<td>struct</td>
+<td><a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtx</a></td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
</div>
-<hr>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLENC.DESCRIPTION"></a><h2>Description</h2>
+<p>XML Encryption support.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLENC.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
<a name="XMLSECENCCTXCREATE"></a><h3>xmlSecEncCtxCreate ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecEncCtxPtr</font> xmlSecEncCtxCreate (<a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);</pre>
-<p>Creates <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> element processing context.
+<pre class="PROGRAMLISTING"><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="RETURNVALUE">xmlSecEncCtxPtr</span></a>
+xmlSecEncCtxCreate (<code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> keysMngr</code>);</pre>
+<p>Creates <enc:EncryptedData/> element processing context.
The caller is responsible for destroying returned object by calling
<a href="xmlsec-xmlenc.html#XMLSECENCCTXDESTROY"><span class="TYPE">xmlSecEncCtxDestroy</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN25177"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN25179"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>keysMngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18886"><span style="white-space: nowrap"><code class="PARAMETER">keysMngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18891"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly allocated context object or NULL if an error
-occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN25188"></a><h4>Returns</h4>
+<p> pointer to newly allocated context object or NULL if an error
+occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECENCCTXDESTROY"></a><h3>xmlSecEncCtxDestroy ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecEncCtxDestroy (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecEncCtxDestroy (<code class="PARAMETER"><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtxPtr</span></a> encCtx</code>);</pre>
<p>Destroy context object created with <a href="xmlsec-xmlenc.html#XMLSECENCCTXCREATE"><span class="TYPE">xmlSecEncCtxCreate</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN25204"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN25206"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>encCtx</p></td>
+<td><p>the pointer to <enc:EncryptedData/> processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN18908"><span style="white-space: nowrap"><code class="PARAMETER">encCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> processing context.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECENCCTXINITIALIZE"></a><h3>xmlSecEncCtxInitialize ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecEncCtxInitialize (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR">xmlSecKeysMngrPtr</a> keysMngr);</pre>
-<p>Initializes <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> element processing context.
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecEncCtxInitialize (<code class="PARAMETER"><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtxPtr</span></a> encCtx</code>,
+ <code class="PARAMETER"><a href="xmlsec-keysmngr.html#XMLSECKEYSMNGR"><span class="TYPE">xmlSecKeysMngrPtr</span></a> keysMngr</code>);</pre>
+<p>Initializes <enc:EncryptedData/> element processing context.
The caller is responsible for cleaning up returned object by calling
<a href="xmlsec-xmlenc.html#XMLSECENCCTXFINALIZE"><span class="TYPE">xmlSecEncCtxFinalize</span></a> function.</p>
+<div class="REFSECT3">
+<a name="AEN25231"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN25233"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18928"><span style="white-space: nowrap"><code class="PARAMETER">encCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> processing context.</p></td>
+<td><p>encCtx</p></td>
+<td><p>the pointer to <enc:EncryptedData/> processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18934"><span style="white-space: nowrap"><code class="PARAMETER">keysMngr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to keys manager.</p></td>
+<td><p>keysMngr</p></td>
+<td><p>the pointer to keys manager.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18939"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN25248"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECENCCTXFINALIZE"></a><h3>xmlSecEncCtxFinalize ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecEncCtxFinalize (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx);</pre>
-<p>Cleans up <code class="PARAMETER">encCtx</code> object.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecEncCtxFinalize (<code class="PARAMETER"><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtxPtr</span></a> encCtx</code>);</pre>
+<p>Cleans up <code class="PARAMETER">encCtx</code>
+ object.</p>
+<div class="REFSECT3">
+<a name="AEN25263"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN25265"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>encCtx</p></td>
+<td><p>the pointer to <enc:EncryptedData/> processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN18955"><span style="white-space: nowrap"><code class="PARAMETER">encCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> processing context.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECENCCTXCOPYUSERPREF"></a><h3>xmlSecEncCtxCopyUserPref ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecEncCtxCopyUserPref (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> dst,
- <a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> src);</pre>
-<p>Copies user preference from <code class="PARAMETER">src</code> context to <code class="PARAMETER">dst</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecEncCtxCopyUserPref (<code class="PARAMETER"><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtxPtr</span></a> dst</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtxPtr</span></a> src</code>);</pre>
+<p>Copies user preference from <code class="PARAMETER">src</code>
+ context to <code class="PARAMETER">dst</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN25290"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18974"><span style="white-space: nowrap"><code class="PARAMETER">dst</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to destination context.</p></td>
-</tr>
+<a name="AEN25292"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18979"><span style="white-space: nowrap"><code class="PARAMETER">src</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to source context.</p></td>
+<td><p>dst</p></td>
+<td><p>the pointer to destination context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN18984"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>src</p></td>
+<td><p>the pointer to source context.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN25307"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECENCCTXRESET"></a><h3>xmlSecEncCtxReset ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecEncCtxReset (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx);</pre>
-<p>Resets <code class="PARAMETER">encCtx</code> object, user settings are not touched.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecEncCtxReset (<code class="PARAMETER"><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtxPtr</span></a> encCtx</code>);</pre>
+<p>Resets <code class="PARAMETER">encCtx</code>
+ object, user settings are not touched.</p>
+<div class="REFSECT3">
+<a name="AEN25322"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN25324"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>encCtx</p></td>
+<td><p>the pointer to <enc:EncryptedData/> processing context.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN19000"><span style="white-space: nowrap"><code class="PARAMETER">encCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> processing context.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECENCCTXBINARYENCRYPT"></a><h3>xmlSecEncCtxBinaryEncrypt ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecEncCtxBinaryEncrypt (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <font>xmlNodePtr</font> tmpl,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *data,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> dataSize);</pre>
-<p>Encrypts <code class="PARAMETER">data</code> according to template <code class="PARAMETER">tmpl</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecEncCtxBinaryEncrypt (<code class="PARAMETER"><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtxPtr</span></a> encCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> tmpl</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *data</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> dataSize</code>);</pre>
+<p>Encrypts <code class="PARAMETER">data</code>
+ according to template <code class="PARAMETER">tmpl</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN25355"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN25357"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19021"><span style="white-space: nowrap"><code class="PARAMETER">encCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> processing context.</p></td>
+<td><p>encCtx</p></td>
+<td><p>the pointer to <enc:EncryptedData/> processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19027"><span style="white-space: nowrap"><code class="PARAMETER">tmpl</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> template node.</p></td>
+<td><p>tmpl</p></td>
+<td><p>the pointer to <enc:EncryptedData/> template node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19033"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer for binary buffer.</p></td>
+<td><p>data</p></td>
+<td><p>the pointer for binary buffer.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19038"><span style="white-space: nowrap"><code class="PARAMETER">dataSize</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the <code class="PARAMETER">data</code> buffer size.</p></td>
+<td><p>dataSize</p></td>
+<td><p>the <code class="PARAMETER">data</code>
+buffer size.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19044"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN25385"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECENCCTXXMLENCRYPT"></a><h3>xmlSecEncCtxXmlEncrypt ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecEncCtxXmlEncrypt (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <font>xmlNodePtr</font> tmpl,
- <font>xmlNodePtr</font> node);</pre>
-<p>Encrypts <code class="PARAMETER">node</code> according to template <code class="PARAMETER">tmpl</code>. If requested, <code class="PARAMETER">node</code> is replaced
-with result <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> node.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecEncCtxXmlEncrypt (<code class="PARAMETER"><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtxPtr</span></a> encCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> tmpl</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>);</pre>
+<p>Encrypts <code class="PARAMETER">node</code>
+ according to template <code class="PARAMETER">tmpl</code>
+. If requested, <code class="PARAMETER">node</code>
+ is replaced
+with result <enc:EncryptedData/> node.</p>
+<div class="REFSECT3">
+<a name="AEN25408"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN25410"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19065"><span style="white-space: nowrap"><code class="PARAMETER">encCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> processing context.</p></td>
+<td><p>encCtx</p></td>
+<td><p>the pointer to <enc:EncryptedData/> processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19071"><span style="white-space: nowrap"><code class="PARAMETER">tmpl</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> template node.</p></td>
+<td><p>tmpl</p></td>
+<td><p>the pointer to <enc:EncryptedData/> template node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19077"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node for encryption.</p></td>
+<td><p>node</p></td>
+<td><p>the pointer to node for encryption.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19082"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN25431"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECENCCTXURIENCRYPT"></a><h3>xmlSecEncCtxUriEncrypt ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecEncCtxUriEncrypt (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <font>xmlNodePtr</font> tmpl,
- const <font>xmlChar</font> *uri);</pre>
-<p>Encrypts data from <code class="PARAMETER">uri</code> according to template <code class="PARAMETER">tmpl</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecEncCtxUriEncrypt (<code class="PARAMETER"><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtxPtr</span></a> encCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> tmpl</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *uri</code>);</pre>
+<p>Encrypts data from <code class="PARAMETER">uri</code>
+ according to template <code class="PARAMETER">tmpl</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN25453"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN25455"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19101"><span style="white-space: nowrap"><code class="PARAMETER">encCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> processing context.</p></td>
+<td><p>encCtx</p></td>
+<td><p>the pointer to <enc:EncryptedData/> processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19107"><span style="white-space: nowrap"><code class="PARAMETER">tmpl</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> template node.</p></td>
+<td><p>tmpl</p></td>
+<td><p>the pointer to <enc:EncryptedData/> template node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19113"><span style="white-space: nowrap"><code class="PARAMETER">uri</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the URI.</p></td>
+<td><p>uri</p></td>
+<td><p>the URI.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19118"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN25476"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECENCCTXDECRYPT"></a><h3>xmlSecEncCtxDecrypt ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecEncCtxDecrypt (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <font>xmlNodePtr</font> node);</pre>
-<p>Decrypts <code class="PARAMETER">node</code> and if necessary replaces <code class="PARAMETER">node</code> with decrypted data.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecEncCtxDecrypt (<code class="PARAMETER"><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtxPtr</span></a> encCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>);</pre>
+<p>Decrypts <code class="PARAMETER">node</code>
+ and if necessary replaces <code class="PARAMETER">node</code>
+ with decrypted data.</p>
+<div class="REFSECT3">
+<a name="AEN25495"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN25497"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19136"><span style="white-space: nowrap"><code class="PARAMETER">encCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> processing context.</p></td>
+<td><p>encCtx</p></td>
+<td><p>the pointer to <enc:EncryptedData/> processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19142"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> node.</p></td>
+<td><p>node</p></td>
+<td><p>the pointer to <enc:EncryptedData/> node.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19148"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN25512"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECENCCTXDECRYPTTOBUFFER"></a><h3>xmlSecEncCtxDecryptToBuffer ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecBufferPtr</font> xmlSecEncCtxDecryptToBuffer (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <font>xmlNodePtr</font> node);</pre>
-<p>Decrypts <code class="PARAMETER">node</code> data to the <code class="PARAMETER">encCtx</code> buffer.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="RETURNVALUE">xmlSecBufferPtr</span></a>
+xmlSecEncCtxDecryptToBuffer (<code class="PARAMETER"><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtxPtr</span></a> encCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>);</pre>
+<p>Decrypts <code class="PARAMETER">node</code>
+ data to the <code class="PARAMETER">encCtx</code>
+ buffer.</p>
+<div class="REFSECT3">
+<a name="AEN25531"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19166"><span style="white-space: nowrap"><code class="PARAMETER">encCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> processing context.</p></td>
-</tr>
+<a name="AEN25533"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19172"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> node.</p></td>
+<td><p>encCtx</p></td>
+<td><p>the pointer to <enc:EncryptedData/> processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19178"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>node</p></td>
+<td><p>the pointer to <enc:EncryptedData/> node.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN25548"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECENCCTXDEBUGDUMP"></a><h3>xmlSecEncCtxDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecEncCtxDebugDump (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <font>FILE</font> *output);</pre>
-<p>Prints the debug information about <code class="PARAMETER">encCtx</code> to <code class="PARAMETER">output</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecEncCtxDebugDump (<code class="PARAMETER"><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtxPtr</span></a> encCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints the debug information about <code class="PARAMETER">encCtx</code>
+ to <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN25567"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN25569"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19196"><span style="white-space: nowrap"><code class="PARAMETER">encCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> processing context.</p></td>
+<td><p>encCtx</p></td>
+<td><p>the pointer to <enc:EncryptedData/> processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19202"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECENCCTXDEBUGXMLDUMP"></a><h3>xmlSecEncCtxDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecEncCtxDebugXmlDump (<a href="xmlsec-xmlenc.html#XMLSECENCCTX">xmlSecEncCtxPtr</a> encCtx,
- <font>FILE</font> *output);</pre>
-<p>Prints the debug information about <code class="PARAMETER">encCtx</code> to <code class="PARAMETER">output</code> in XML format.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecEncCtxDebugXmlDump (<code class="PARAMETER"><a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtxPtr</span></a> encCtx</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints the debug information about <code class="PARAMETER">encCtx</code>
+ to <code class="PARAMETER">output</code>
+ in XML format.</p>
+<div class="REFSECT3">
+<a name="AEN25600"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN25602"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>encCtx</p></td>
+<td><p>the pointer to <enc:EncryptedData/> processing context.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLENC.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLENCCTXMODE"></a><h3>enum xmlEncCtxMode</h3>
+<p>The <a href="xmlsec-xmlenc.html#XMLSECENCCTX"><span class="TYPE">xmlSecEncCtx</span></a> mode.</p>
+<div class="REFSECT3">
+<a name="AEN25626"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN25628"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>xmlEncCtxModeEncryptedData</p></td>
+<td><p>the <enc:EncryptedData/> element procesing.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>xmlEncCtxModeEncryptedKey</p></td>
+<td><p>the <enc:EncryptedKey/> element processing.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSEC-ENC-RETURN-REPLACED-NODE:CAPS"></a><h3>XMLSEC_ENC_RETURN_REPLACED_NODE</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_ENC_RETURN_REPLACED_NODE 0x00000001</pre>
+<p>If this flag is set, then the replaced node will be returned in the replacedNodeList</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECENCCTX"></a><h3>struct xmlSecEncCtx</h3>
+<pre class="PROGRAMLISTING">struct xmlSecEncCtx {
+ /* these data user can set before performing the operation */
+ void* userData;
+ unsigned int flags;
+ unsigned int flags2;
+ xmlEncCtxMode mode;
+ xmlSecKeyInfoCtx keyInfoReadCtx;
+ xmlSecKeyInfoCtx keyInfoWriteCtx;
+ xmlSecTransformCtx transformCtx;
+ xmlSecTransformId defEncMethodId;
+
+ /* these data are returned */
+ xmlSecKeyPtr encKey;
+ xmlSecTransformOperation operation;
+ xmlSecBufferPtr result;
+ int resultBase64Encoded;
+ int resultReplaced;
+ xmlSecTransformPtr encMethod;
+
+ /* attributes from EncryptedData or EncryptedKey */
+ xmlChar* id;
+ xmlChar* type;
+ xmlChar* mimeType;
+ xmlChar* encoding;
+ xmlChar* recipient;
+ xmlChar* carriedKeyName;
+
+ /* these are internal data, nobody should change that except us */
+ xmlNodePtr encDataNode;
+ xmlNodePtr encMethodNode;
+ xmlNodePtr keyInfoNode;
+ xmlNodePtr cipherValueNode;
+
+ xmlNodePtr replacedNodeList; /* the pointer to the replaced node */
+ void* reserved1; /* reserved for future */
+};</pre>
+<p>XML Encrypiton context.</p>
+<div class="REFSECT3">
+<a name="AEN25655"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN25657"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">userData</code>;</p></td>
+<td><p>the pointer to user data (xmlsec and xmlsec-crypto libraries
+never touches this).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>unsigned <font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">flags</code>;</p></td>
+<td><p>the XML Encryption processing flags.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>unsigned <font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">flags2</code>;</p></td>
+<td><p>the XML Encryption processing flags.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-xmlenc.html#XMLENCCTXMODE"><span class="TYPE">xmlEncCtxMode</span></a> <code class="STRUCTFIELD">mode</code>;</p></td>
+<td><p>the mode.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtx</span></a> <code class="STRUCTFIELD">keyInfoReadCtx</code>;</p></td>
+<td><p>the reading key context.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-keyinfo.html#XMLSECKEYINFOCTX"><span class="TYPE">xmlSecKeyInfoCtx</span></a> <code class="STRUCTFIELD">keyInfoWriteCtx</code>;</p></td>
+<td><p>the writing key context (not used for signature verification).</p></td>
+<td> </td>
+</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19220"><span style="white-space: nowrap"><code class="PARAMETER">encCtx</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to <a href="http://www.w3.org/TR/xmlenc-core/#sec-EncryptedData" target="_top"><enc:EncryptedData/></a> processing context.</p></td>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMCTX"><span class="TYPE">xmlSecTransformCtx</span></a> <code class="STRUCTFIELD">transformCtx</code>;</p></td>
+<td><p>the transforms processing context.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19226"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p><font><span class="TYPE">xmlSecTransformId</span></font> <code class="STRUCTFIELD">defEncMethodId</code>;</p></td>
+<td><p>the default encryption method (used if
+<enc:EncryptionMethod/> node is not present).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+<tr>
+<td><p><a href="xmlsec-keys.html#XMLSECKEY"><span class="TYPE">xmlSecKeyPtr</span></a> <code class="STRUCTFIELD">encKey</code>;</p></td>
+<td><p>the signature key; application may set <font><span class="TYPE">encKey</span></font>
+before calling encryption/decryption functions.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORMOPERATION"><span class="TYPE">xmlSecTransformOperation</span></a> <code class="STRUCTFIELD">operation</code>;</p></td>
+<td><p>the operation: encrypt or decrypt.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-buffer.html#XMLSECBUFFER"><span class="TYPE">xmlSecBufferPtr</span></a> <code class="STRUCTFIELD">result</code>;</p></td>
+<td><p>the pointer to signature (not valid for signature verification).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">resultBase64Encoded</code>;</p></td>
+<td><p>the flag: if set then result in <font><span class="TYPE">result</span></font> is base64 encoded.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">resultReplaced</code>;</p></td>
+<td><p>the flag: if set then resulted <enc:EncryptedData/>
+or <enc:EncryptedKey/> node is added to the document.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><a href="xmlsec-transforms.html#XMLSECTRANSFORM"><span class="TYPE">xmlSecTransformPtr</span></a> <code class="STRUCTFIELD">encMethod</code>;</p></td>
+<td><p>the pointer to encryption transform.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">id</code>;</p></td>
+<td><p>the ID attribute of <enc:EncryptedData/>
+or <enc:EncryptedKey/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">type</code>;</p></td>
+<td><p>the Type attribute of <enc:EncryptedData/>
+or <enc:EncryptedKey/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">mimeType</code>;</p></td>
+<td><p>the MimeType attribute of <enc:EncryptedData/>
+or <enc:EncryptedKey/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">encoding</code>;</p></td>
+<td><p>the Encoding attributeof <enc:EncryptedData/>
+or <enc:EncryptedKey/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">recipient</code>;</p></td>
+<td><p>the Recipient attribute of <enc:EncryptedKey/> node..</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">carriedKeyName</code>;</p></td>
+<td><p>the CarriedKeyName attribute of <enc:EncryptedKey/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">xmlNodePtr</span></font> <code class="STRUCTFIELD">encDataNode</code>;</p></td>
+<td><p>the pointer to <enc:EncryptedData/>
+or <enc:EncryptedKey/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">xmlNodePtr</span></font> <code class="STRUCTFIELD">encMethodNode</code>;</p></td>
+<td><p>the pointer to <enc:EncryptionMethod/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">xmlNodePtr</span></font> <code class="STRUCTFIELD">keyInfoNode</code>;</p></td>
+<td><p>the pointer to <enc:KeyInfo/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">xmlNodePtr</span></font> <code class="STRUCTFIELD">cipherValueNode</code>;</p></td>
+<td><p>the pointer to <enc:CipherValue/> node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">xmlNodePtr</span></font> <code class="STRUCTFIELD">replacedNodeList</code>;</p></td>
+<td><p>the first node of the list of replaced nodes depending on the nodeReplacementMode</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p><font><span class="TYPE">void</span></font> *<code class="STRUCTFIELD">reserved1</code>;</p></td>
+<td><p>reserved for the future.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-xmlsec.html b/docs/api/xmlsec-xmlsec.html
index 83693c6..692e69f 100644
--- a/docs/api/xmlsec-xmlsec.html
+++ b/docs/api/xmlsec-xmlsec.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="xmlenc" href="xmlsec-xmlenc.html">
<link rel="NEXT" title="xmltree" href="xmlsec-xmltree.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,229 +101,393 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-xmlenc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-xmlenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-xmltree.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-xmltree.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-XMLSEC"></a>xmlsec</h1>
<div class="REFNAMEDIV">
-<a name="AEN19236"></a><h2>Name</h2>xmlsec -- Utility functions.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-XMLSEC.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">typedef <font>xmlSecPtr</font>;
-#define <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a>
-#define <a href="xmlsec-xmlsec.html#XMLSEC-SIZE-BAD-CAST--CAPS">XMLSEC_SIZE_BAD_CAST</a> (val)
-#define <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a>
-<font>int</font> <a href="xmlsec-xmlsec.html#XMLSECINIT">xmlSecInit</a> (void);
-<font>int</font> <a href="xmlsec-xmlsec.html#XMLSECSHUTDOWN">xmlSecShutdown</a> (void);
-#define <a href="xmlsec-xmlsec.html#XMLSECCHECKVERSIONEXACT">xmlSecCheckVersionExact</a> ()
-#define <a href="xmlsec-xmlsec.html#XMLSECCHECKVERSION">xmlSecCheckVersion</a> ()
-enum <a href="xmlsec-xmlsec.html#XMLSECCHECKVERSIONMODE">xmlSecCheckVersionMode</a>;
-<font>int</font> <a href="xmlsec-xmlsec.html#XMLSECCHECKVERSIONEXT">xmlSecCheckVersionExt</a> (<font>int</font> major,
- <font>int</font> minor,
- <font>int</font> subminor,
- <a href="xmlsec-xmlsec.html#XMLSECCHECKVERSIONMODE">xmlSecCheckVersionMode</a> mode);
-#define <a href="xmlsec-xmlsec.html#ATTRIBUTE-UNUSED--CAPS">ATTRIBUTE_UNUSED</a>
-#define <a href="xmlsec-xmlsec.html#XMLSEC-PTR-TO-FUNC-IMPL--CAPS">XMLSEC_PTR_TO_FUNC_IMPL</a> (func_type)
-#define <a href="xmlsec-xmlsec.html#XMLSEC-PTR-TO-FUNC--CAPS">XMLSEC_PTR_TO_FUNC</a> (func_type, ptr)
-#define <a href="xmlsec-xmlsec.html#XMLSEC-FUNC-TO-PTR--CAPS">XMLSEC_FUNC_TO_PTR</a> (func_type, func)</pre>
-</div>
+<a name="AEN25903"></a><h2>Name</h2>xmlsec -- Utility functions.</div>
<div class="REFSECT1">
-<a name="XMLSEC-XMLSEC.DESCRIPTION"></a><h2>Description</h2>
-<p>Utility functions.</p>
+<a name="XMLSEC-XMLSEC.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN25908"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>#define</td>
+<td>
+<a href="xmlsec-xmlsec.html#XMLSEC-SIZE-BAD-CAST:CAPS">XMLSEC_SIZE_BAD_CAST</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmlsec.html#XMLSECINIT">xmlSecInit</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmlsec.html#XMLSECSHUTDOWN">xmlSecShutdown</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>const <font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-xmlsec.html#XMLSECGETDEFAULTCRYPTO">xmlSecGetDefaultCrypto</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-xmlsec.html#XMLSEC-CRYPTO:CAPS">XMLSEC_CRYPTO</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-xmlsec.html#XMLSECCHECKVERSIONEXACT">xmlSecCheckVersionExact</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-xmlsec.html#XMLSECCHECKVERSION">xmlSecCheckVersion</a></td>
+</tr>
+<tr>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmlsec.html#XMLSECCHECKVERSIONEXT">xmlSecCheckVersionExt</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td>
+<a href="xmlsec-xmlsec.html#XMLSEC-PTR-TO-FUNC-IMPL:CAPS">XMLSEC_PTR_TO_FUNC_IMPL</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td>
+<a href="xmlsec-xmlsec.html#XMLSEC-PTR-TO-FUNC:CAPS">XMLSEC_PTR_TO_FUNC</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+<tr>
+<td>#define</td>
+<td>
+<a href="xmlsec-xmlsec.html#XMLSEC-FUNC-TO-PTR:CAPS">XMLSEC_FUNC_TO_PTR</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
</div>
<div class="REFSECT1">
-<a name="XMLSEC-XMLSEC.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECPTR"></a><h3>xmlSecPtr</h3>
-<pre class="PROGRAMLISTING">typedef void* xmlSecPtr;</pre>
-<p>Void pointer.</p>
+<a name="XMLSEC-XMLSEC.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECSIZE"></a><h3>xmlSecSize</h3>
-<pre class="PROGRAMLISTING">#define xmlSecSize</pre>
-<p>Size of something. Should be typedef instead of define
-but it will break ABI (todo).</p>
+<a name="AEN25973"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
+<tr>
+<td>typedef</td>
+<td><font>xmlSecPtr</font></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a></td>
+</tr>
+<tr>
+<td>enum</td>
+<td><a href="xmlsec-xmlsec.html#XMLSECCHECKVERSIONMODE">xmlSecCheckVersionMode</a></td>
+</tr>
+<tr>
+<td>#define</td>
+<td><a href="xmlsec-xmlsec.html#ATTRIBUTE-UNUSED:CAPS">ATTRIBUTE_UNUSED</a></td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
-<hr>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLSEC.DESCRIPTION"></a><h2>Description</h2>
+<p>Utility functions.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLSEC.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
<div class="REFSECT2">
-<a name="XMLSEC-SIZE-BAD-CAST--CAPS"></a><h3>XMLSEC_SIZE_BAD_CAST()</h3>
+<a name="XMLSEC-SIZE-BAD-CAST:CAPS"></a><h3>XMLSEC_SIZE_BAD_CAST()</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_SIZE_BAD_CAST(val) ((xmlSecSize)(val))</pre>
<p>Bad cast to xmlSecSize</p>
+<div class="REFSECT3">
+<a name="AEN26007"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN26009"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>val</p></td>
+<td><p>the value to cast</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN19290"><span style="white-space: nowrap"><code class="PARAMETER">val</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the value to cast</p></td>
-</tr></tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECBYTE"></a><h3>xmlSecByte</h3>
-<pre class="PROGRAMLISTING">#define xmlSecByte unsigned char</pre>
-<p>One byte. Should be typedef instead of define
-but it will break ABI (todo).</p>
-<p></p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECINIT"></a><h3>xmlSecInit ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecInit (void);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecInit (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p>Initializes XML Security Library. The depended libraries
(LibXML and LibXSLT) must be initialized before.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN19311"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
+<div class="REFSECT3">
+<a name="AEN26028"></a><h4>Returns</h4>
+<p> 0 on success or a negative value otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECSHUTDOWN"></a><h3>xmlSecShutdown ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecShutdown (void);</pre>
-<p>Clean ups the XML Security Library.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecShutdown (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
+<p>Gets the default crypto engine ("openssl", "nss", etc.) for the XML Security Library.</p>
+<div class="REFSECT3">
+<a name="AEN26041"></a><h4>Returns</h4>
+<p> the default crypto engine ("openssl", "nss", etc.).</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGETDEFAULTCRYPTO"></a><h3>xmlSecGetDefaultCrypto ()</h3>
+<pre class="PROGRAMLISTING">const <font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecGetDefaultCrypto (<code class="PARAMETER"><span class="TYPE">void</span></code>);</pre>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN19325"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
-</tr></tbody></table>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCHECKVERSIONEXACT"></a><h3>xmlSecCheckVersionExact()</h3>
+<a name="XMLSEC-CRYPTO:CAPS"></a><h3>XMLSEC_CRYPTO</h3>
+<pre class="PROGRAMLISTING">#define XMLSEC_CRYPTO (xmlSecGetDefaultCrypto())</pre>
+<p>Macro. Deprecated. Defined for backward compatibility only. Do not use
+in your code and use <a href="xmlsec-xmlsec.html#XMLSECGETDEFAULTCRYPTO"><code class="FUNCTION">xmlSecGetDefaultCrypto()</code></a> function instead.</p>
+<p>Returns the default crypto engine.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECCHECKVERSIONEXACT"></a><h3>xmlSecCheckVersionExact</h3>
<pre class="PROGRAMLISTING">#define xmlSecCheckVersionExact()</pre>
<p>Macro. Returns 1 if the loaded xmlsec library version exactly matches
the one used to compile the caller, 0 if it does not or a negative
value if an error occurs.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCHECKVERSION"></a><h3>xmlSecCheckVersion()</h3>
+<a name="XMLSECCHECKVERSION"></a><h3>xmlSecCheckVersion</h3>
<pre class="PROGRAMLISTING">#define xmlSecCheckVersion()</pre>
<p>Macro. Returns 1 if the loaded xmlsec library version ABI compatible with
the one used to compile the caller, 0 if it does not or a negative
value if an error occurs.</p>
-<p></p>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECCHECKVERSIONMODE"></a><h3>enum xmlSecCheckVersionMode</h3>
-<pre class="PROGRAMLISTING">typedef enum {
- xmlSecCheckVersionExactMatch = 0,
- xmlSecCheckVersionABICompatible
-} xmlSecCheckVersionMode;</pre>
-<p>The xmlsec library version mode.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECCHECKVERSIONEXACTMATCH"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecCheckVersionExactMatch</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the version should match exactly.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="XMLSECCHECKVERSIONABICOMPATIBLE"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecCheckVersionABICompatible</tt></span></a></td>
-<td align="LEFT" valign="TOP"><p> the version should be ABI compatible.</p></td>
-</tr>
-</tbody></table>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECCHECKVERSIONEXT"></a><h3>xmlSecCheckVersionExt ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCheckVersionExt (<font>int</font> major,
- <font>int</font> minor,
- <font>int</font> subminor,
- <a href="xmlsec-xmlsec.html#XMLSECCHECKVERSIONMODE">xmlSecCheckVersionMode</a> mode);</pre>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCheckVersionExt (<code class="PARAMETER"><font><span class="TYPE">int</span></font> major</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> minor</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> subminor</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECCHECKVERSIONMODE"><span class="TYPE">xmlSecCheckVersionMode</span></a> mode</code>);</pre>
<p>Checks if the loaded version of xmlsec library could be used.</p>
+<div class="REFSECT3">
+<a name="AEN26095"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN26097"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19375"><span style="white-space: nowrap"><code class="PARAMETER">major</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the major version number.</p></td>
+<td><p>major</p></td>
+<td><p>the major version number.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19380"><span style="white-space: nowrap"><code class="PARAMETER">minor</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the minor version number.</p></td>
+<td><p>minor</p></td>
+<td><p>the minor version number.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19385"><span style="white-space: nowrap"><code class="PARAMETER">subminor</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the subminor version number.</p></td>
+<td><p>subminor</p></td>
+<td><p>the subminor version number.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19390"><span style="white-space: nowrap"><code class="PARAMETER">mode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the version check mode.</p></td>
+<td><p>mode</p></td>
+<td><p>the version check mode.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19395"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 1 if the loaded xmlsec library version is OK to use
-0 if it is not or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="ATTRIBUTE-UNUSED--CAPS"></a><h3>ATTRIBUTE_UNUSED</h3>
-<pre class="PROGRAMLISTING">#define ATTRIBUTE_UNUSED</pre>
-<p>Macro used to signal to GCC unused function parameters</p>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN26124"></a><h4>Returns</h4>
+<p> 1 if the loaded xmlsec library version is OK to use
+0 if it is not or a negative value if an error occurs.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-PTR-TO-FUNC-IMPL--CAPS"></a><h3>XMLSEC_PTR_TO_FUNC_IMPL()</h3>
+<a name="XMLSEC-PTR-TO-FUNC-IMPL:CAPS"></a><h3>XMLSEC_PTR_TO_FUNC_IMPL()</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_PTR_TO_FUNC_IMPL(func_type)</pre>
<p>Macro declares helper functions to convert between "void *" pointer and
function pointer.</p>
+<div class="REFSECT3">
+<a name="AEN26133"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN26135"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>func_type</p></td>
+<td><p>the function type.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN19415"><span style="white-space: nowrap"><code class="PARAMETER">func_type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the function type.</p></td>
-</tr></tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-PTR-TO-FUNC--CAPS"></a><h3>XMLSEC_PTR_TO_FUNC()</h3>
+<a name="XMLSEC-PTR-TO-FUNC:CAPS"></a><h3>XMLSEC_PTR_TO_FUNC()</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_PTR_TO_FUNC(func_type, ptr)</pre>
<p>Macro converts from "void*" pointer to "func_type" function pointer.</p>
+<div class="REFSECT3">
+<a name="AEN26150"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN26152"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19428"><span style="white-space: nowrap"><code class="PARAMETER">func_type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the function type.</p></td>
+<td><p>func_type</p></td>
+<td><p>the function type.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19433"><span style="white-space: nowrap"><code class="PARAMETER">ptr</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the "void*" pointer to be converted.</p></td>
+<td><p>ptr</p></td>
+<td><p>the "void*" pointer to be converted.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSEC-FUNC-TO-PTR--CAPS"></a><h3>XMLSEC_FUNC_TO_PTR()</h3>
+<a name="XMLSEC-FUNC-TO-PTR:CAPS"></a><h3>XMLSEC_FUNC_TO_PTR()</h3>
<pre class="PROGRAMLISTING">#define XMLSEC_FUNC_TO_PTR(func_type, func)</pre>
<p>Macro converts from "func_type" function pointer to "void*" pointer.</p>
+<div class="REFSECT3">
+<a name="AEN26173"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
+<a name="AEN26175"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>func_type</p></td>
+<td><p>the function type.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>func</p></td>
+<td><p>the "func_type" function pointer to be converted.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+</div>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLSEC.OTHER_DETAILS"></a><h2>Types and Values</h2>
+<div class="REFSECT2">
+<a name="XMLSECPTR"></a><h3>xmlSecPtr</h3>
+<pre class="PROGRAMLISTING">typedef void* xmlSecPtr;</pre>
+<p>Void pointer.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECSIZE"></a><h3>xmlSecSize</h3>
+<pre class="PROGRAMLISTING">#define xmlSecSize unsigned int</pre>
+<p>Size of something. Should be typedef instead of define
+but it will break ABI (todo).</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECBYTE"></a><h3>xmlSecByte</h3>
+<pre class="PROGRAMLISTING">#define xmlSecByte unsigned char</pre>
+<p>One byte. Should be typedef instead of define
+but it will break ABI (todo).</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECCHECKVERSIONMODE"></a><h3>enum xmlSecCheckVersionMode</h3>
+<p>The xmlsec library version mode.</p>
+<div class="REFSECT3">
+<a name="AEN26215"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN26217"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19446"><span style="white-space: nowrap"><code class="PARAMETER">func_type</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the function type.</p></td>
+<td><p>xmlSecCheckVersionExactMatch</p></td>
+<td><p>the version should match exactly.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19451"><span style="white-space: nowrap"><code class="PARAMETER">func</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the "func_type" function pointer to be converted.</p></td>
+<td><p>xmlSecCheckVersionABICompatible</p></td>
+<td><p>the version should be ABI compatible.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="ATTRIBUTE-UNUSED:CAPS"></a><h3>ATTRIBUTE_UNUSED</h3>
+<pre class="PROGRAMLISTING">#define ATTRIBUTE_UNUSED</pre>
+<p>Macro used to signal to GCC unused function parameters</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/api/xmlsec-xmltree.html b/docs/api/xmlsec-xmltree.html
index 5b39bdc..03f5d7d 100644
--- a/docs/api/xmlsec-xmltree.html
+++ b/docs/api/xmlsec-xmltree.html
@@ -7,7 +7,6 @@
<link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
<link rel="PREVIOUS" title="xmlsec" href="xmlsec-xmlsec.html">
<link rel="NEXT" title="x509" href="xmlsec-x509.html">
-<meta name="GENERATOR" content="GTK-Doc V1.11 (SGML mode)">
<style type="text/css">.synopsis, .classsynopsis {
background: #eeeeee;
border: solid 1px #aaaaaa;
@@ -37,8 +36,31 @@
.navigation .title {
font-size: 200%;
}</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -79,1497 +101,2523 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="xmlsec-xmlsec.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<td><a accesskey="p" href="xmlsec-xmlsec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<th width="100%" align="center">XML Security Library Reference Manual</th>
-<td><a accesskey="n" href="xmlsec-x509.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="xmlsec-x509.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<h1>
<a name="XMLSEC-XMLTREE"></a>xmltree</h1>
<div class="REFNAMEDIV">
-<a name="AEN19461"></a><h2>Name</h2>xmltree -- XML tree operations.</div>
-<div class="REFSYNOPSISDIV">
-<a name="XMLSEC-XMLTREE.SYNOPSIS"></a><h2>Synopsis</h2>
-<pre class="SYNOPSIS">#define <a href="xmlsec-xmltree.html#XMLSECNODEGETNAME">xmlSecNodeGetName</a> (node)
-const <font>xmlChar</font>* <a href="xmlsec-xmltree.html#XMLSECGETNODENSHREF">xmlSecGetNodeNsHref</a> (const <font>xmlNodePtr</font> cur);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECCHECKNODENAME">xmlSecCheckNodeName</a> (const <font>xmlNodePtr</font> cur,
- const <font>xmlChar</font> *name,
- const <font>xmlChar</font> *ns);
-<font>xmlNodePtr</font> <a href="xmlsec-xmltree.html#XMLSECGETNEXTELEMENTNODE">xmlSecGetNextElementNode</a> (<font>xmlNodePtr</font> cur);
-<font>xmlNodePtr</font> <a href="xmlsec-xmltree.html#XMLSECFINDCHILD">xmlSecFindChild</a> (const <font>xmlNodePtr</font> parent,
- const <font>xmlChar</font> *name,
- const <font>xmlChar</font> *ns);
-<font>xmlNodePtr</font> <a href="xmlsec-xmltree.html#XMLSECFINDPARENT">xmlSecFindParent</a> (const <font>xmlNodePtr</font> cur,
- const <font>xmlChar</font> *name,
- const <font>xmlChar</font> *ns);
-<font>xmlNodePtr</font> <a href="xmlsec-xmltree.html#XMLSECFINDNODE">xmlSecFindNode</a> (const <font>xmlNodePtr</font> parent,
- const <font>xmlChar</font> *name,
- const <font>xmlChar</font> *ns);
-<font>xmlNodePtr</font> <a href="xmlsec-xmltree.html#XMLSECADDCHILD">xmlSecAddChild</a> (<font>xmlNodePtr</font> parent,
- const <font>xmlChar</font> *name,
- const <font>xmlChar</font> *ns);
-<font>xmlNodePtr</font> <a href="xmlsec-xmltree.html#XMLSECADDCHILDNODE">xmlSecAddChildNode</a> (<font>xmlNodePtr</font> parent,
- <font>xmlNodePtr</font> child);
-<font>xmlNodePtr</font> <a href="xmlsec-xmltree.html#XMLSECADDNEXTSIBLING">xmlSecAddNextSibling</a> (<font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *name,
- const <font>xmlChar</font> *ns);
-<font>xmlNodePtr</font> <a href="xmlsec-xmltree.html#XMLSECADDPREVSIBLING">xmlSecAddPrevSibling</a> (<font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *name,
- const <font>xmlChar</font> *ns);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECREPLACENODE">xmlSecReplaceNode</a> (<font>xmlNodePtr</font> node,
- <font>xmlNodePtr</font> newNode);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECREPLACENODEANDRETURN">xmlSecReplaceNodeAndReturn</a> (<font>xmlNodePtr</font> node,
- <font>xmlNodePtr</font> newNode,
- <font>xmlNodePtr</font> *replaced);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECREPLACECONTENT">xmlSecReplaceContent</a> (<font>xmlNodePtr</font> node,
- <font>xmlNodePtr</font> newNode);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECREPLACECONTENTANDRETURN">xmlSecReplaceContentAndReturn</a> (<font>xmlNodePtr</font> node,
- <font>xmlNodePtr</font> newNode,
- <font>xmlNodePtr</font> *replaced);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECREPLACENODEBUFFER">xmlSecReplaceNodeBuffer</a> (<font>xmlNodePtr</font> node,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECREPLACENODEBUFFERANDRETURN">xmlSecReplaceNodeBufferAndReturn</a> (<font>xmlNodePtr</font> node,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size,
- <font>xmlNodePtr</font> *replaced);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECNODEENCODEANDSETCONTENT">xmlSecNodeEncodeAndSetContent</a> (<font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *buffer);
-<font>void</font> <a href="xmlsec-xmltree.html#XMLSECADDIDS">xmlSecAddIDs</a> (<font>xmlDocPtr</font> doc,
- <font>xmlNodePtr</font> cur,
- const <font>xmlChar</font> **ids);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECGENERATEANDADDID">xmlSecGenerateAndAddID</a> (<font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *attrName,
- const <font>xmlChar</font> *prefix,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> len);
-<font>xmlChar</font>* <a href="xmlsec-xmltree.html#XMLSECGENERATEID">xmlSecGenerateID</a> (const <font>xmlChar</font> *prefix,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> len);
-<font>xmlDocPtr</font> <a href="xmlsec-xmltree.html#XMLSECCREATETREE">xmlSecCreateTree</a> (const <font>xmlChar</font> *rootNodeName,
- const <font>xmlChar</font> *rootNodeNs);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECISEMPTYNODE">xmlSecIsEmptyNode</a> (<font>xmlNodePtr</font> node);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECISEMPTYSTRING">xmlSecIsEmptyString</a> (const <font>xmlChar</font> *str);
-<font>xmlChar</font>* <a href="xmlsec-xmltree.html#XMLSECGETQNAME">xmlSecGetQName</a> (<font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *href,
- const <font>xmlChar</font> *local);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECPRINTXMLSTRING">xmlSecPrintXmlString</a> (<font>FILE</font> *fd,
- const <font>xmlChar</font> *str);
-#define <a href="xmlsec-xmltree.html#XMLSECISHEX">xmlSecIsHex</a> (c)
-#define <a href="xmlsec-xmltree.html#XMLSECGETHEX">xmlSecGetHex</a> (c)
-struct <a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERINFO">xmlSecQName2IntegerInfo</a>;
-typedef <font>xmlSecQName2IntegerInfoConstPtr</font>;
-<font>xmlSecQName2IntegerInfoConstPtr</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERGETINFO">xmlSecQName2IntegerGetInfo</a>
- (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>int</font> intValue);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERGETINTEGER">xmlSecQName2IntegerGetInteger</a> (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- const <font>xmlChar</font> *qnameHref,
- const <font>xmlChar</font> *qnameLocalPart,
- <font>int</font> *intValue);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERGETINTEGERFROMSTRING">xmlSecQName2IntegerGetIntegerFromString</a>
- (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *qname,
- <font>int</font> *intValue);
-<font>xmlChar</font> * <a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERGETSTRINGFROMINTEGER">xmlSecQName2IntegerGetStringFromInteger</a>
- (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- <font>int</font> intValue);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERNODEREAD">xmlSecQName2IntegerNodeRead</a> (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- <font>int</font> *intValue);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERNODEWRITE">xmlSecQName2IntegerNodeWrite</a> (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *nodeName,
- const <font>xmlChar</font> *nodeNs,
- <font>int</font> intValue);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERATTRIBUTEREAD">xmlSecQName2IntegerAttributeRead</a> (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *attrName,
- <font>int</font> *intValue);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERATTRIBUTEWRITE">xmlSecQName2IntegerAttributeWrite</a> (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *attrName,
- <font>int</font> intValue);
-<font>void</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERDEBUGDUMP">xmlSecQName2IntegerDebugDump</a> (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>int</font> intValue,
- const <font>xmlChar</font> *name,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERDEBUGXMLDUMP">xmlSecQName2IntegerDebugXmlDump</a> (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>int</font> intValue,
- const <font>xmlChar</font> *name,
- <font>FILE</font> *output);
-typedef <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a>;
-struct <a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKINFO">xmlSecQName2BitMaskInfo</a>;
-typedef <font>xmlSecQName2BitMaskInfoConstPtr</font>;
-<font>xmlSecQName2BitMaskInfoConstPtr</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKGETINFO">xmlSecQName2BitMaskGetInfo</a>
- (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> mask);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKGETBITMASK">xmlSecQName2BitMaskGetBitMask</a> (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- const <font>xmlChar</font> *qnameLocalPart,
- const <font>xmlChar</font> *qnameHref,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> *mask);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKNODESREAD">xmlSecQName2BitMaskNodesRead</a> (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- <font>xmlNodePtr</font> *node,
- const <font>xmlChar</font> *nodeName,
- const <font>xmlChar</font> *nodeNs,
- <font>int</font> stopOnUnknown,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> *mask);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKGETBITMASKFROMSTRING">xmlSecQName2BitMaskGetBitMaskFromString</a>
- (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *qname,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> *mask);
-<font>xmlChar</font> * <a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKGETSTRINGFROMBITMASK">xmlSecQName2BitMaskGetStringFromBitMask</a>
- (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> mask);
-<font>int</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKNODESWRITE">xmlSecQName2BitMaskNodesWrite</a> (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *nodeName,
- const <font>xmlChar</font> *nodeNs,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> mask);
-<font>void</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKDEBUGDUMP">xmlSecQName2BitMaskDebugDump</a> (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> mask,
- const <font>xmlChar</font> *name,
- <font>FILE</font> *output);
-<font>void</font> <a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKDEBUGXMLDUMP">xmlSecQName2BitMaskDebugXmlDump</a> (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> mask,
- const <font>xmlChar</font> *name,
- <font>FILE</font> *output);</pre>
-</div>
-<div class="REFSECT1">
-<a name="XMLSEC-XMLTREE.DESCRIPTION"></a><h2>Description</h2>
-<p>XML tree operations.</p>
-</div>
+<a name="AEN26243"></a><h2>Name</h2>xmltree -- XML tree operations.</div>
<div class="REFSECT1">
-<a name="XMLSEC-XMLTREE.DETAILS"></a><h2>Details</h2>
-<div class="REFSECT2">
-<a name="XMLSECNODEGETNAME"></a><h3>xmlSecNodeGetName()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecNodeGetName(node)</pre>
-<p>Macro. Returns node's name.</p>
-<p></p>
+<a name="XMLSEC-XMLTREE.FUNCTIONS"></a><h2>Functions</h2>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN19705"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node.</p></td>
-</tr></tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGETNODENSHREF"></a><h3>xmlSecGetNodeNsHref ()</h3>
-<pre class="PROGRAMLISTING">const <font>xmlChar</font>* xmlSecGetNodeNsHref (const <font>xmlNodePtr</font> cur);</pre>
-<p>Get's node's namespace href.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19720"><span style="white-space: nowrap"><code class="PARAMETER">cur</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node.</p></td>
-</tr>
+<a name="AEN26248"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19725"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> node's namespace href.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECNODEGETNAME">xmlSecNodeGetName</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECCHECKNODENAME"></a><h3>xmlSecCheckNodeName ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecCheckNodeName (const <font>xmlNodePtr</font> cur,
- const <font>xmlChar</font> *name,
- const <font>xmlChar</font> *ns);</pre>
-<p>Checks that the node has a given name and a given namespace href.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19742"><span style="white-space: nowrap"><code class="PARAMETER">cur</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
+<td>const <font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECGETNODENSHREF">xmlSecGetNodeNsHref</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19747"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the name,</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECCHECKNODENAME">xmlSecCheckNodeName</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19752"><span style="white-space: nowrap"><code class="PARAMETER">ns</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the namespace href.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECGETNEXTELEMENTNODE">xmlSecGetNextElementNode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19757"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 1 if the node matches or 0 otherwise.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECFINDSIBLING">xmlSecFindSibling</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECGETNEXTELEMENTNODE"></a><h3>xmlSecGetNextElementNode ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecGetNextElementNode (<font>xmlNodePtr</font> cur);</pre>
-<p>Seraches for the next element node.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19772"><span style="white-space: nowrap"><code class="PARAMETER">cur</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECFINDCHILD">xmlSecFindChild</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19777"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to next element node or NULL if it is not found.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECFINDPARENT">xmlSecFindParent</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECFINDCHILD"></a><h3>xmlSecFindChild ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecFindChild (const <font>xmlNodePtr</font> parent,
- const <font>xmlChar</font> *name,
- const <font>xmlChar</font> *ns);</pre>
-<p>Searches a direct child of the <code class="PARAMETER">parent</code> node having given name and
-namespace href.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19795"><span style="white-space: nowrap"><code class="PARAMETER">parent</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to XML node.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECFINDNODE">xmlSecFindNode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19800"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the name.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECADDCHILD">xmlSecAddChild</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19805"><span style="white-space: nowrap"><code class="PARAMETER">ns</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the namespace href (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECENSUREEMPTYCHILD">xmlSecEnsureEmptyChild</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19810"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the found node or NULL if an error occurs or
-node is not found.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECADDCHILDNODE">xmlSecAddChildNode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECFINDPARENT"></a><h3>xmlSecFindParent ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecFindParent (const <font>xmlNodePtr</font> cur,
- const <font>xmlChar</font> *name,
- const <font>xmlChar</font> *ns);</pre>
-<p>Searches the ancestors axis of the <code class="PARAMETER">cur</code> node for a node having given name
-and namespace href.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19828"><span style="white-space: nowrap"><code class="PARAMETER">cur</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECADDNEXTSIBLING">xmlSecAddNextSibling</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19833"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the name.</p></td>
+<td><font><span class="RETURNVALUE">xmlNodePtr</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECADDPREVSIBLING">xmlSecAddPrevSibling</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19838"><span style="white-space: nowrap"><code class="PARAMETER">ns</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the namespace href (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECREPLACENODE">xmlSecReplaceNode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19843"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the found node or NULL if an error occurs or
-node is not found.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECREPLACENODEANDRETURN">xmlSecReplaceNodeAndReturn</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECFINDNODE"></a><h3>xmlSecFindNode ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecFindNode (const <font>xmlNodePtr</font> parent,
- const <font>xmlChar</font> *name,
- const <font>xmlChar</font> *ns);</pre>
-<p>Searches all children of the <code class="PARAMETER">parent</code> node having given name and
-namespace href.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19861"><span style="white-space: nowrap"><code class="PARAMETER">parent</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to XML node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECREPLACECONTENT">xmlSecReplaceContent</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19866"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the name.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECREPLACECONTENTANDRETURN">xmlSecReplaceContentAndReturn</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19871"><span style="white-space: nowrap"><code class="PARAMETER">ns</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the namespace href (may be NULL).</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECREPLACENODEBUFFER">xmlSecReplaceNodeBuffer</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19876"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the found node or NULL if an error occurs or
-node is not found.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECREPLACENODEBUFFERANDRETURN">xmlSecReplaceNodeBufferAndReturn</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECADDCHILD"></a><h3>xmlSecAddChild ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecAddChild (<font>xmlNodePtr</font> parent,
- const <font>xmlChar</font> *name,
- const <font>xmlChar</font> *ns);</pre>
-<p>Adds a child to the node <code class="PARAMETER">parent</code> with given <code class="PARAMETER">name</code> and namespace <code class="PARAMETER">ns</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19896"><span style="white-space: nowrap"><code class="PARAMETER">parent</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECNODEENCODEANDSETCONTENT">xmlSecNodeEncodeAndSetContent</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19901"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new node name.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECADDIDS">xmlSecAddIDs</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19906"><span style="white-space: nowrap"><code class="PARAMETER">ns</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new node namespace.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECGENERATEANDADDID">xmlSecGenerateAndAddID</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19911"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the new node or NULL if an error occurs.</p></td>
+<td>
+<font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECGENERATEID">xmlSecGenerateID</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECADDCHILDNODE"></a><h3>xmlSecAddChildNode ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecAddChildNode (<font>xmlNodePtr</font> parent,
- <font>xmlNodePtr</font> child);</pre>
-<p>Adds <code class="PARAMETER">child</code> node to the <code class="PARAMETER">parent</code> node.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19929"><span style="white-space: nowrap"><code class="PARAMETER">parent</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
+<td><font><span class="RETURNVALUE">xmlDocPtr</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECCREATETREE">xmlSecCreateTree</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19934"><span style="white-space: nowrap"><code class="PARAMETER">child</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECISEMPTYNODE">xmlSecIsEmptyNode</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19939"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the new node or NULL if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECISEMPTYSTRING">xmlSecIsEmptyString</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECADDNEXTSIBLING"></a><h3>xmlSecAddNextSibling ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecAddNextSibling (<font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *name,
- const <font>xmlChar</font> *ns);</pre>
-<p>Adds next sibling to the node <code class="PARAMETER">node</code> with given <code class="PARAMETER">name</code> and namespace <code class="PARAMETER">ns</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19959"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
+<td>
+<font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECGETQNAME">xmlSecGetQName</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19964"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new node name.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECPRINTXMLSTRING">xmlSecPrintXmlString</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19969"><span style="white-space: nowrap"><code class="PARAMETER">ns</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new node namespace.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECISHEX">xmlSecIsHex</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19974"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the new node or NULL if an error occurs.</p></td>
+<td>#define</td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECGETHEX">xmlSecGetHex</a><span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECADDPREVSIBLING"></a><h3>xmlSecAddPrevSibling ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlNodePtr</font> xmlSecAddPrevSibling (<font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *name,
- const <font>xmlChar</font> *ns);</pre>
-<p>Adds prev sibling to the node <code class="PARAMETER">node</code> with given <code class="PARAMETER">name</code> and namespace <code class="PARAMETER">ns</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19994"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecQName2IntegerInfoConstPtr</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERGETINFO">xmlSecQName2IntegerGetInfo</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN19999"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new node name.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERGETINTEGER">xmlSecQName2IntegerGetInteger</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20004"><span style="white-space: nowrap"><code class="PARAMETER">ns</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new node namespace.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERGETINTEGERFROMSTRING">xmlSecQName2IntegerGetIntegerFromString</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20009"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the new node or NULL if an error occurs.</p></td>
+<td>
+<font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERGETSTRINGFROMINTEGER">xmlSecQName2IntegerGetStringFromInteger</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECREPLACENODE"></a><h3>xmlSecReplaceNode ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecReplaceNode (<font>xmlNodePtr</font> node,
- <font>xmlNodePtr</font> newNode);</pre>
-<p>Swaps the <code class="PARAMETER">node</code> and <code class="PARAMETER">newNode</code> in the XML tree.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20027"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the current node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERNODEREAD">xmlSecQName2IntegerNodeRead</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20032"><span style="white-space: nowrap"><code class="PARAMETER">newNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERNODEWRITE">xmlSecQName2IntegerNodeWrite</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20037"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERATTRIBUTEREAD">xmlSecQName2IntegerAttributeRead</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECREPLACENODEANDRETURN"></a><h3>xmlSecReplaceNodeAndReturn ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecReplaceNodeAndReturn (<font>xmlNodePtr</font> node,
- <font>xmlNodePtr</font> newNode,
- <font>xmlNodePtr</font> *replaced);</pre>
-<p>Swaps the <code class="PARAMETER">node</code> and <code class="PARAMETER">newNode</code> in the XML tree.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20056"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the current node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERATTRIBUTEWRITE">xmlSecQName2IntegerAttributeWrite</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20061"><span style="white-space: nowrap"><code class="PARAMETER">newNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new node.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERDEBUGDUMP">xmlSecQName2IntegerDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20066"><span style="white-space: nowrap"><code class="PARAMETER">replaced</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the replaced node, or release it if NULL is given</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERDEBUGXMLDUMP">xmlSecQName2IntegerDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20071"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">xmlSecQName2BitMaskInfoConstPtr</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKGETINFO">xmlSecQName2BitMaskGetInfo</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECREPLACECONTENT"></a><h3>xmlSecReplaceContent ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecReplaceContent (<font>xmlNodePtr</font> node,
- <font>xmlNodePtr</font> newNode);</pre>
-<p>Swaps the content of <code class="PARAMETER">node</code> and <code class="PARAMETER">newNode</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20089"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the current node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKGETBITMASK">xmlSecQName2BitMaskGetBitMask</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20094"><span style="white-space: nowrap"><code class="PARAMETER">newNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKNODESREAD">xmlSecQName2BitMaskNodesRead</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20099"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKGETBITMASKFROMSTRING">xmlSecQName2BitMaskGetBitMaskFromString</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECREPLACECONTENTANDRETURN"></a><h3>xmlSecReplaceContentAndReturn ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecReplaceContentAndReturn (<font>xmlNodePtr</font> node,
- <font>xmlNodePtr</font> newNode,
- <font>xmlNodePtr</font> *replaced);</pre>
-<p>Swaps the content of <code class="PARAMETER">node</code> and <code class="PARAMETER">newNode</code>.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20118"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the current node.</p></td>
+<td>
+<font><span class="RETURNVALUE">xmlChar</span></font> *</td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKGETSTRINGFROMBITMASK">xmlSecQName2BitMaskGetStringFromBitMask</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20123"><span style="white-space: nowrap"><code class="PARAMETER">newNode</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the new node.</p></td>
+<td><font><span class="RETURNVALUE">int</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKNODESWRITE">xmlSecQName2BitMaskNodesWrite</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20128"><span style="white-space: nowrap"><code class="PARAMETER">replaced</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the replaced nodes, or release them if NULL is given</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKDEBUGDUMP">xmlSecQName2BitMaskDebugDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20133"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><font><span class="RETURNVALUE">void</span></font></td>
+<td>
+<a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKDEBUGXMLDUMP">xmlSecQName2BitMaskDebugXmlDump</a> <span class="c_punctuation"><span class="PHRASE">()</span></span>
+</td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECREPLACENODEBUFFER"></a><h3>xmlSecReplaceNodeBuffer ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecReplaceNodeBuffer (<font>xmlNodePtr</font> node,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size);</pre>
-<p>Swaps the <code class="PARAMETER">node</code> and the parsed XML data from the <code class="PARAMETER">buffer</code> in the XML tree.</p>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLTREE.OTHER"></a><h2>Types and Values</h2>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN26583"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20152"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the current node.</p></td>
+<td>struct</td>
+<td><a href="xmlsec-xmltree.html#XMLSECQNAME2INTEGERINFO">xmlSecQName2IntegerInfo</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20157"><span style="white-space: nowrap"><code class="PARAMETER">buffer</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XML data.</p></td>
+<td>typedef</td>
+<td><font>xmlSecQName2IntegerInfoConstPtr</font></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20162"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XML data size.</p></td>
+<td>typedef</td>
+<td><a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a></td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20167"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td>struct</td>
+<td><a href="xmlsec-xmltree.html#XMLSECQNAME2BITMASKINFO">xmlSecQName2BitMaskInfo</a></td>
</tr>
-</tbody></table>
+<tr>
+<td>typedef</td>
+<td><font>xmlSecQName2BitMaskInfoConstPtr</font></td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLTREE.DESCRIPTION"></a><h2>Description</h2>
+<p>XML tree operations.</p>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLTREE.FUNCTIONS_DETAILS"></a><h2>Functions</h2>
+<div class="REFSECT2">
+<a name="XMLSECNODEGETNAME"></a><h3>xmlSecNodeGetName()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecNodeGetName(node)</pre>
+<p>Macro. Returns node's name.</p>
+<div class="REFSECT3">
+<a name="AEN26617"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN26619"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>node</p></td>
+<td><p>the pointer to node.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECREPLACENODEBUFFERANDRETURN"></a><h3>xmlSecReplaceNodeBufferAndReturn ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecReplaceNodeBufferAndReturn (<font>xmlNodePtr</font> node,
- const <a href="xmlsec-xmlsec.html#XMLSECBYTE">xmlSecByte</a> *buffer,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> size,
- <font>xmlNodePtr</font> *replaced);</pre>
-<p>Swaps the <code class="PARAMETER">node</code> and the parsed XML data from the <code class="PARAMETER">buffer</code> in the XML tree.</p>
+<a name="XMLSECGETNODENSHREF"></a><h3>xmlSecGetNodeNsHref ()</h3>
+<pre class="PROGRAMLISTING">const <font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecGetNodeNsHref (<code class="PARAMETER">const <font><span class="TYPE">xmlNodePtr</span></font> cur</code>);</pre>
+<p>Get's node's namespace href.</p>
+<div class="REFSECT3">
+<a name="AEN26639"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN26641"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>cur</p></td>
+<td><p>the pointer to node.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN26650"></a><h4>Returns</h4>
+<p> node's namespace href.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECCHECKNODENAME"></a><h3>xmlSecCheckNodeName ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecCheckNodeName (<code class="PARAMETER">const <font><span class="TYPE">xmlNodePtr</span></font> cur</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *ns</code>);</pre>
+<p>Checks that the node has a given name and a given namespace href.</p>
+<div class="REFSECT3">
+<a name="AEN26670"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20187"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the current node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20192"><span style="white-space: nowrap"><code class="PARAMETER">buffer</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XML data.</p></td>
-</tr>
+<a name="AEN26672"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20197"><span style="white-space: nowrap"><code class="PARAMETER">size</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the XML data size.</p></td>
+<td><p>cur</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20202"><span style="white-space: nowrap"><code class="PARAMETER">replaced</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the replaced nodes, or release them if NULL is given</p></td>
+<td><p>name</p></td>
+<td><p>the name,</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20207"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>ns</p></td>
+<td><p>the namespace href.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN26693"></a><h4>Returns</h4>
+<p> 1 if the node matches or 0 otherwise.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECNODEENCODEANDSETCONTENT"></a><h3>xmlSecNodeEncodeAndSetContent ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecNodeEncodeAndSetContent (<font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *buffer);</pre>
-<p>Encodes "special" characters in the <code class="PARAMETER">buffer</code> and sets the result
-as the node content.</p>
+<a name="XMLSECGETNEXTELEMENTNODE"></a><h3>xmlSecGetNextElementNode ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecGetNextElementNode (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> cur</code>);</pre>
+<p>Seraches for the next element node.</p>
+<div class="REFSECT3">
+<a name="AEN26707"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN26709"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>cur</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN26718"></a><h4>Returns</h4>
+<p> the pointer to next element node or NULL if it is not found.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECFINDSIBLING"></a><h3>xmlSecFindSibling ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecFindSibling (<code class="PARAMETER">const <font><span class="TYPE">xmlNodePtr</span></font> cur</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *ns</code>);</pre>
+<p>Searches <code class="PARAMETER">cur</code>
+ and the next siblings of the <code class="PARAMETER">cur</code>
+ node having given name and
+namespace href.</p>
+<div class="REFSECT3">
+<a name="AEN26740"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN26742"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20224"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
+<td><p>cur</p></td>
+<td><p>the pointer to XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20229"><span style="white-space: nowrap"><code class="PARAMETER">buffer</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to the node content.</p></td>
+<td><p>name</p></td>
+<td><p>the name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20234"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
+<td><p>ns</p></td>
+<td><p>the namespace href (may be NULL).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN26763"></a><h4>Returns</h4>
+<p> the pointer to the found node or NULL if an error occurs or
+node is not found.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECADDIDS"></a><h3>xmlSecAddIDs ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecAddIDs (<font>xmlDocPtr</font> doc,
- <font>xmlNodePtr</font> cur,
- const <font>xmlChar</font> **ids);</pre>
-<p>Walks thru all children of the <code class="PARAMETER">cur</code> node and adds all attributes
-from the <code class="PARAMETER">ids</code> list to the <code class="PARAMETER">doc</code> document IDs attributes hash.</p>
-<p></p>
+<a name="XMLSECFINDCHILD"></a><h3>xmlSecFindChild ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecFindChild (<code class="PARAMETER">const <font><span class="TYPE">xmlNodePtr</span></font> parent</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *ns</code>);</pre>
+<p>Searches a direct child of the <code class="PARAMETER">parent</code>
+ node having given name and
+namespace href.</p>
+<div class="REFSECT3">
+<a name="AEN26784"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN26786"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20254"><span style="white-space: nowrap"><code class="PARAMETER">doc</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML document.</p></td>
+<td><p>parent</p></td>
+<td><p>the pointer to XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20259"><span style="white-space: nowrap"><code class="PARAMETER">cur</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to an XML node.</p></td>
+<td><p>name</p></td>
+<td><p>the name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20264"><span style="white-space: nowrap"><code class="PARAMETER">ids</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to a NULL terminated list of ID attributes.</p></td>
+<td><p>ns</p></td>
+<td><p>the namespace href (may be NULL).</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN26807"></a><h4>Returns</h4>
+<p> the pointer to the found node or NULL if an error occurs or
+node is not found.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGENERATEANDADDID"></a><h3>xmlSecGenerateAndAddID ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecGenerateAndAddID (<font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *attrName,
- const <font>xmlChar</font> *prefix,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> len);</pre>
-<p>Generates a unique ID in the format <<code class="PARAMETER">prefix</code>>base64-encoded(<code class="PARAMETER">len</code> random bytes)
-and puts it in the attribute <code class="PARAMETER">attrName</code>.</p>
-<p></p>
+<a name="XMLSECFINDPARENT"></a><h3>xmlSecFindParent ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecFindParent (<code class="PARAMETER">const <font><span class="TYPE">xmlNodePtr</span></font> cur</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *ns</code>);</pre>
+<p>Searches the ancestors axis of the <code class="PARAMETER">cur</code>
+ node for a node having given name
+and namespace href.</p>
+<div class="REFSECT3">
+<a name="AEN26828"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20285"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the node to ID attr to.</p></td>
-</tr>
+<a name="AEN26830"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20290"><span style="white-space: nowrap"><code class="PARAMETER">attrName</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the ID attr name.</p></td>
+<td><p>cur</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20295"><span style="white-space: nowrap"><code class="PARAMETER">prefix</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the prefix to add to the generated ID (can be NULL).</p></td>
+<td><p>name</p></td>
+<td><p>the name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20300"><span style="white-space: nowrap"><code class="PARAMETER">len</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the length of ID.</p></td>
+<td><p>ns</p></td>
+<td><p>the namespace href (may be NULL).</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20305"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN26851"></a><h4>Returns</h4>
+<p> the pointer to the found node or NULL if an error occurs or
+node is not found.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGENERATEID"></a><h3>xmlSecGenerateID ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlChar</font>* xmlSecGenerateID (const <font>xmlChar</font> *prefix,
- <a href="xmlsec-xmlsec.html#XMLSECSIZE">xmlSecSize</a> len);</pre>
-<p>Generates a unique ID in the format <<code class="PARAMETER">prefix</code>>base64-encoded(<code class="PARAMETER">len</code> random bytes).
-The caller is responsible for freeing returned string using <code class="PARAMETER">xmlFree</code> function.</p>
-<p></p>
+<a name="XMLSECFINDNODE"></a><h3>xmlSecFindNode ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecFindNode (<code class="PARAMETER">const <font><span class="TYPE">xmlNodePtr</span></font> parent</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *ns</code>);</pre>
+<p>Searches all children of the <code class="PARAMETER">parent</code>
+ node having given name and
+namespace href.</p>
+<div class="REFSECT3">
+<a name="AEN26872"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN26874"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20324"><span style="white-space: nowrap"><code class="PARAMETER">prefix</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the prefix to add to the generated ID (can be NULL).</p></td>
+<td><p>parent</p></td>
+<td><p>the pointer to XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20329"><span style="white-space: nowrap"><code class="PARAMETER">len</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the length of ID.</p></td>
+<td><p>name</p></td>
+<td><p>the name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20334"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to generated ID string or NULL if an error occurs.</p></td>
+<td><p>ns</p></td>
+<td><p>the namespace href (may be NULL).</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN26895"></a><h4>Returns</h4>
+<p> the pointer to the found node or NULL if an error occurs or
+node is not found.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECCREATETREE"></a><h3>xmlSecCreateTree ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlDocPtr</font> xmlSecCreateTree (const <font>xmlChar</font> *rootNodeName,
- const <font>xmlChar</font> *rootNodeNs);</pre>
-<p>Creates a new XML tree with one root node <code class="PARAMETER">rootNodeName</code>.</p>
+<a name="XMLSECADDCHILD"></a><h3>xmlSecAddChild ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecAddChild (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> parent</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *ns</code>);</pre>
+<p>Adds a child to the node <code class="PARAMETER">parent</code>
+ with given <code class="PARAMETER">name</code>
+ and namespace <code class="PARAMETER">ns</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN26918"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN26920"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>parent</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>name</p></td>
+<td><p>the new node name.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>ns</p></td>
+<td><p>the new node namespace.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN26941"></a><h4>Returns</h4>
+<p> pointer to the new node or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECENSUREEMPTYCHILD"></a><h3>xmlSecEnsureEmptyChild ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecEnsureEmptyChild (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> parent</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *ns</code>);</pre>
+<p>Searches a direct child of the <code class="PARAMETER">parent</code>
+ node having given name and
+namespace href. If not found then element node with given name / namespace
+is added.</p>
+<div class="REFSECT3">
+<a name="AEN26962"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN26964"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>parent</p></td>
+<td><p>the pointer to XML node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>name</p></td>
+<td><p>the name.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>ns</p></td>
+<td><p>the namespace href (may be NULL).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20351"><span style="white-space: nowrap"><code class="PARAMETER">rootNodeName</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the root node name.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20356"><span style="white-space: nowrap"><code class="PARAMETER">rootNodeNs</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the root node namespace (otpional).</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20361"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the newly created tree or NULL if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN26985"></a><h4>Returns</h4>
+<p> the pointer to the found or created node; or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECISEMPTYNODE"></a><h3>xmlSecIsEmptyNode ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecIsEmptyNode (<font>xmlNodePtr</font> node);</pre>
-<p>Checks whethere the <code class="PARAMETER">node</code> is empty (i.e. has only whitespaces children).</p>
+<a name="XMLSECADDCHILDNODE"></a><h3>xmlSecAddChildNode ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecAddChildNode (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> parent</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> child</code>);</pre>
+<p>Adds <code class="PARAMETER">child</code>
+ node to the <code class="PARAMETER">parent</code>
+ node.</p>
+<div class="REFSECT3">
+<a name="AEN27004"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27006"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>parent</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>child</p></td>
+<td><p>the new node.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27021"></a><h4>Returns</h4>
+<p> pointer to the new node or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECADDNEXTSIBLING"></a><h3>xmlSecAddNextSibling ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecAddNextSibling (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *ns</code>);</pre>
+<p>Adds next sibling to the node <code class="PARAMETER">node</code>
+ with given <code class="PARAMETER">name</code>
+ and namespace <code class="PARAMETER">ns</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN27044"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27046"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>name</p></td>
+<td><p>the new node name.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>ns</p></td>
+<td><p>the new node namespace.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20377"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the node to check</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20382"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 1 if <code class="PARAMETER">node</code> is empty, 0 otherwise or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27067"></a><h4>Returns</h4>
+<p> pointer to the new node or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECISEMPTYSTRING"></a><h3>xmlSecIsEmptyString ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecIsEmptyString (const <font>xmlChar</font> *str);</pre>
-<p>Checks whethere the <code class="PARAMETER">str</code> is empty (i.e. has only whitespaces children).</p>
+<a name="XMLSECADDPREVSIBLING"></a><h3>xmlSecAddPrevSibling ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlNodePtr</span></font>
+xmlSecAddPrevSibling (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *ns</code>);</pre>
+<p>Adds prev sibling to the node <code class="PARAMETER">node</code>
+ with given <code class="PARAMETER">name</code>
+ and namespace <code class="PARAMETER">ns</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN27090"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27092"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>name</p></td>
+<td><p>the new node name.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>ns</p></td>
+<td><p>the new node namespace.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27113"></a><h4>Returns</h4>
+<p> pointer to the new node or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECREPLACENODE"></a><h3>xmlSecReplaceNode ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecReplaceNode (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> newNode</code>);</pre>
+<p>Swaps the <code class="PARAMETER">node</code>
+ and <code class="PARAMETER">newNode</code>
+ in the XML tree.</p>
+<div class="REFSECT3">
+<a name="AEN27132"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27134"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>node</p></td>
+<td><p>the current node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>newNode</p></td>
+<td><p>the new node.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20399"><span style="white-space: nowrap"><code class="PARAMETER">str</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string to check</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20404"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 1 if <code class="PARAMETER">str</code> is empty, 0 otherwise or a negative value if an error occurs.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27149"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGETQNAME"></a><h3>xmlSecGetQName ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlChar</font>* xmlSecGetQName (<font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *href,
- const <font>xmlChar</font> *local);</pre>
-<p>Creates QName (prefix:local) from <code class="PARAMETER">href</code> and <code class="PARAMETER">local</code> in the context of the <code class="PARAMETER">node</code>.
-Caller is responsible for freeing returned string with xmlFree.</p>
+<a name="XMLSECREPLACENODEANDRETURN"></a><h3>xmlSecReplaceNodeAndReturn ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecReplaceNodeAndReturn (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> newNode</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> *replaced</code>);</pre>
+<p>Swaps the <code class="PARAMETER">node</code>
+ and <code class="PARAMETER">newNode</code>
+ in the XML tree.</p>
+<div class="REFSECT3">
+<a name="AEN27171"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27173"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>node</p></td>
+<td><p>the current node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>newNode</p></td>
+<td><p>the new node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>replaced</p></td>
+<td><p>the replaced node, or release it if NULL is given</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27194"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECREPLACECONTENT"></a><h3>xmlSecReplaceContent ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecReplaceContent (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> newNode</code>);</pre>
+<p>Swaps the content of <code class="PARAMETER">node</code>
+ and <code class="PARAMETER">newNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN27213"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27215"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>node</p></td>
+<td><p>the current node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>newNode</p></td>
+<td><p>the new node.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27230"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECREPLACECONTENTANDRETURN"></a><h3>xmlSecReplaceContentAndReturn ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecReplaceContentAndReturn (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> newNode</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> *replaced</code>);</pre>
+<p>Swaps the content of <code class="PARAMETER">node</code>
+ and <code class="PARAMETER">newNode</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN27252"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27254"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>node</p></td>
+<td><p>the current node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>newNode</p></td>
+<td><p>the new node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>replaced</p></td>
+<td><p>the replaced nodes, or release them if NULL is given</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27275"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECREPLACENODEBUFFER"></a><h3>xmlSecReplaceNodeBuffer ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecReplaceNodeBuffer (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buffer</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>);</pre>
+<p>Swaps the <code class="PARAMETER">node</code>
+ and the parsed XML data from the <code class="PARAMETER">buffer</code>
+ in the XML tree.</p>
+<div class="REFSECT3">
+<a name="AEN27297"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27299"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>node</p></td>
+<td><p>the current node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>buffer</p></td>
+<td><p>the XML data.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>size</p></td>
+<td><p>the XML data size.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27320"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECREPLACENODEBUFFERANDRETURN"></a><h3>xmlSecReplaceNodeBufferAndReturn ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecReplaceNodeBufferAndReturn (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER">const <a href="xmlsec-xmlsec.html#XMLSECBYTE"><span class="TYPE">xmlSecByte</span></a> *buffer</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> size</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> *replaced</code>);</pre>
+<p>Swaps the <code class="PARAMETER">node</code>
+ and the parsed XML data from the <code class="PARAMETER">buffer</code>
+ in the XML tree.</p>
+<div class="REFSECT3">
+<a name="AEN27345"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN27347"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20425"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the context node.</p></td>
+<td><p>node</p></td>
+<td><p>the current node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20430"><span style="white-space: nowrap"><code class="PARAMETER">href</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the QName href (can be NULL).</p></td>
+<td><p>buffer</p></td>
+<td><p>the XML data.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20435"><span style="white-space: nowrap"><code class="PARAMETER">local</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the QName local part.</p></td>
+<td><p>size</p></td>
+<td><p>the XML data size.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20440"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> qname or NULL if an error occurs.</p></td>
+<td><p>replaced</p></td>
+<td><p>the replaced nodes, or release them if NULL is given</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27374"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECPRINTXMLSTRING"></a><h3>xmlSecPrintXmlString ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecPrintXmlString (<font>FILE</font> *fd,
- const <font>xmlChar</font> *str);</pre>
-<p>Encodes the <code class="PARAMETER">str</code> (e.g. replaces '&' with '&') and writes it to <code class="PARAMETER">fd</code>.</p>
-<p></p>
+<a name="XMLSECNODEENCODEANDSETCONTENT"></a><h3>xmlSecNodeEncodeAndSetContent ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecNodeEncodeAndSetContent (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *buffer</code>);</pre>
+<p>Encodes "special" characters in the <code class="PARAMETER">buffer</code>
+ and sets the result
+as the node content.</p>
+<div class="REFSECT3">
+<a name="AEN27392"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20458"><span style="white-space: nowrap"><code class="PARAMETER">fd</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the file descriptor to write the XML string to</p></td>
-</tr>
+<a name="AEN27394"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20463"><span style="white-space: nowrap"><code class="PARAMETER">str</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the string</p></td>
+<td><p>node</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20468"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> he number of bytes transmitted or a negative value if an error occurs.</p></td>
+<td><p>buffer</p></td>
+<td><p>the pointer to the node content.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27409"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECISHEX"></a><h3>xmlSecIsHex()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecIsHex(c)</pre>
-<p>Macro. Returns 1 if <code class="PARAMETER">c</code> is a hex digit or 0 other wise.</p>
+<a name="XMLSECADDIDS"></a><h3>xmlSecAddIDs ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecAddIDs (<code class="PARAMETER"><font><span class="TYPE">xmlDocPtr</span></font> doc</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> cur</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> **ids</code>);</pre>
+<p>Walks thru all children of the <code class="PARAMETER">cur</code>
+ node and adds all attributes
+from the <code class="PARAMETER">ids</code>
+ list to the <code class="PARAMETER">doc</code>
+ document IDs attributes hash.</p>
+<div class="REFSECT3">
+<a name="AEN27432"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27434"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>doc</p></td>
+<td><p>the pointer to an XML document.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>cur</p></td>
+<td><p>the pointer to an XML node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>ids</p></td>
+<td><p>the pointer to a NULL terminated list of ID attributes.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGENERATEANDADDID"></a><h3>xmlSecGenerateAndAddID ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecGenerateAndAddID (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *attrName</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *prefix</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> len</code>);</pre>
+<p>Generates a unique ID in the format <<code class="PARAMETER">prefix</code>
+>base64-encoded(<code class="PARAMETER">len</code>
+ random bytes)
+and puts it in the attribute <code class="PARAMETER">attrName</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN27478"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27480"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>node</p></td>
+<td><p>the node to ID attr to.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>attrName</p></td>
+<td><p>the ID attr name.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>prefix</p></td>
+<td><p>the prefix to add to the generated ID (can be NULL).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>len</p></td>
+<td><p>the length of ID.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27507"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGENERATEID"></a><h3>xmlSecGenerateID ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecGenerateID (<code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *prefix</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmlsec.html#XMLSECSIZE"><span class="TYPE">xmlSecSize</span></a> len</code>);</pre>
+<p>Generates a unique ID in the format <<code class="PARAMETER">prefix</code>
+>base64-encoded(<code class="PARAMETER">len</code>
+ random bytes).
+The caller is responsible for freeing returned string using <code class="PARAMETER">xmlFree</code>
+ function.</p>
+<div class="REFSECT3">
+<a name="AEN27527"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27529"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>prefix</p></td>
+<td><p>the prefix to add to the generated ID (can be NULL).</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>len</p></td>
+<td><p>the length of ID.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN20482"><span style="white-space: nowrap"><code class="PARAMETER">c</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the character.</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27544"></a><h4>Returns</h4>
+<p> pointer to generated ID string or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECGETHEX"></a><h3>xmlSecGetHex()</h3>
-<pre class="PROGRAMLISTING">#define xmlSecGetHex(c)</pre>
-<p>Macro. Returns the hex value of the <code class="PARAMETER">c</code>.</p>
+<a name="XMLSECCREATETREE"></a><h3>xmlSecCreateTree ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlDocPtr</span></font>
+xmlSecCreateTree (<code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *rootNodeName</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *rootNodeNs</code>);</pre>
+<p>Creates a new XML tree with one root node <code class="PARAMETER">rootNodeName</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN27562"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27564"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>rootNodeName</p></td>
+<td><p>the root node name.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>rootNodeNs</p></td>
+<td><p>the root node namespace (otpional).</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27579"></a><h4>Returns</h4>
+<p> pointer to the newly created tree or NULL if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECISEMPTYNODE"></a><h3>xmlSecIsEmptyNode ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecIsEmptyNode (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>);</pre>
+<p>Checks whethere the <code class="PARAMETER">node</code>
+ is empty (i.e. has only whitespaces children).</p>
+<div class="REFSECT3">
+<a name="AEN27594"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27596"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>node</p></td>
+<td><p>the node to check</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
-<td align="LEFT" valign="TOP"><a name="AEN20496"><span style="white-space: nowrap"><code class="PARAMETER">c</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the character,</p></td>
-</tr></tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27605"></a><h4>Returns</h4>
+<p> 1 if <code class="PARAMETER">node</code>
+is empty, 0 otherwise or a negative value if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECQNAME2INTEGERINFO"></a><h3>struct xmlSecQName2IntegerInfo</h3>
-<pre class="PROGRAMLISTING">struct xmlSecQName2IntegerInfo {
- const xmlChar* qnameHref;
- const xmlChar* qnameLocalPart;
- int intValue;
-};</pre>
-<p>QName <-> Integer conversion definition.</p>
+<a name="XMLSECISEMPTYSTRING"></a><h3>xmlSecIsEmptyString ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecIsEmptyString (<code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *str</code>);</pre>
+<p>Checks whethere the <code class="PARAMETER">str</code>
+ is empty (i.e. has only whitespaces children).</p>
+<div class="REFSECT3">
+<a name="AEN27621"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27623"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>str</p></td>
+<td><p>the string to check</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27632"></a><h4>Returns</h4>
+<p> 1 if <code class="PARAMETER">str</code>
+is empty, 0 otherwise or a negative value if an error occurs.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGETQNAME"></a><h3>xmlSecGetQName ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecGetQName (<code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *href</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *local</code>);</pre>
+<p>Creates QName (prefix:local) from <code class="PARAMETER">href</code>
+ and <code class="PARAMETER">local</code>
+ in the context of the <code class="PARAMETER">node</code>
+.
+Caller is responsible for freeing returned string with xmlFree.</p>
+<div class="REFSECT3">
+<a name="AEN27656"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN27658"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20509"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">qnameHref</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the QName href</p></td>
+<td><p>node</p></td>
+<td><p>the context node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20515"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">qnameLocalPart</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the QName local</p></td>
+<td><p>href</p></td>
+<td><p>the QName href (can be NULL).</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20521"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">intValue</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the integer value</p></td>
+<td><p>local</p></td>
+<td><p>the QName local part.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27679"></a><h4>Returns</h4>
+<p> qname or NULL if an error occurs.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECQNAME2INTEGERINFOCONSTPTR"></a><h3>xmlSecQName2IntegerInfoConstPtr</h3>
-<pre class="PROGRAMLISTING">typedef const xmlSecQName2IntegerInfo * xmlSecQName2IntegerInfoConstPtr;</pre>
-<p>Pointer to constant QName <-> Integer conversion definition.</p>
+<a name="XMLSECPRINTXMLSTRING"></a><h3>xmlSecPrintXmlString ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecPrintXmlString (<code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *fd</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *str</code>);</pre>
+<p>Encodes the <code class="PARAMETER">str</code>
+ (e.g. replaces '&' with '&') and writes it to <code class="PARAMETER">fd</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN27698"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27700"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>fd</p></td>
+<td><p>the file descriptor to write the XML string to</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>str</p></td>
+<td><p>the string</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27715"></a><h4>Returns</h4>
+<p> he number of bytes transmitted or a negative value if an error occurs.</p>
+</div>
+</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECQNAME2INTEGERGETINFO"></a><h3>xmlSecQName2IntegerGetInfo ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecQName2IntegerInfoConstPtr</font> xmlSecQName2IntegerGetInfo
- (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>int</font> intValue);</pre>
-<p>Maps integer <code class="PARAMETER">intValue</code> to a QName prefix.</p>
+<a name="XMLSECISHEX"></a><h3>xmlSecIsHex()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecIsHex(c)</pre>
+<p>Macro. Returns 1 if <code class="PARAMETER">c</code>
+ is a hex digit or 0 other wise.</p>
+<div class="REFSECT3">
+<a name="AEN27725"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27727"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>c</p></td>
+<td><p>the character.</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECGETHEX"></a><h3>xmlSecGetHex()</h3>
+<pre class="PROGRAMLISTING">#define xmlSecGetHex(c)</pre>
+<p>Macro. Returns the hex value of the <code class="PARAMETER">c</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN27743"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27745"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody><tr>
+<td><p>c</p></td>
+<td><p>the character,</p></td>
+<td> </td>
+</tr></tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20546"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->integer mapping information.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20551"><span style="white-space: nowrap"><code class="PARAMETER">intValue</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the integer value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20556"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the QName info that is mapped to <code class="PARAMETER">intValue</code> or NULL if such value
-is not found.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECQNAME2INTEGERGETINTEGER"></a><h3>xmlSecQName2IntegerGetInteger ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecQName2IntegerGetInteger (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- const <font>xmlChar</font> *qnameHref,
- const <font>xmlChar</font> *qnameLocalPart,
- <font>int</font> *intValue);</pre>
-<p>Maps qname qname to an integer and returns it in <code class="PARAMETER">intValue</code>.</p>
+<a name="XMLSECQNAME2INTEGERGETINFO"></a><h3>xmlSecQName2IntegerGetInfo ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecQName2IntegerInfoConstPtr</span></font>
+xmlSecQName2IntegerGetInfo (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2IntegerInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> intValue</code>);</pre>
+<p>Maps integer <code class="PARAMETER">intValue</code>
+ to a QName prefix.</p>
+<div class="REFSECT3">
+<a name="AEN27769"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27771"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>info</p></td>
+<td><p>the qname<->integer mapping information.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>intValue</p></td>
+<td><p>the integer value.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27786"></a><h4>Returns</h4>
+<p> the QName info that is mapped to <code class="PARAMETER">intValue</code>
+or NULL if such value
+is not found.</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECQNAME2INTEGERGETINTEGER"></a><h3>xmlSecQName2IntegerGetInteger ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecQName2IntegerGetInteger (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2IntegerInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *qnameHref</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *qnameLocalPart</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> *intValue</code>);</pre>
+<p>Maps qname qname to an integer and returns it in <code class="PARAMETER">intValue</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN27811"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20576"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->integer mapping information.</p></td>
-</tr>
+<a name="AEN27813"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20581"><span style="white-space: nowrap"><code class="PARAMETER">qnameHref</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname href value.</p></td>
+<td><p>info</p></td>
+<td><p>the qname<->integer mapping information.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20586"><span style="white-space: nowrap"><code class="PARAMETER">qnameLocalPart</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname local part value.</p></td>
+<td><p>qnameHref</p></td>
+<td><p>the qname href value.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20591"><span style="white-space: nowrap"><code class="PARAMETER">intValue</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to result integer value.</p></td>
+<td><p>qnameLocalPart</p></td>
+<td><p>the qname local part value.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20596"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs,</p></td>
+<td><p>intValue</p></td>
+<td><p>the pointer to result integer value.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27840"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs,</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECQNAME2INTEGERGETINTEGERFROMSTRING"></a><h3>xmlSecQName2IntegerGetIntegerFromString ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecQName2IntegerGetIntegerFromString
- (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *qname,
- <font>int</font> *intValue);</pre>
-<p>Converts <code class="PARAMETER">qname</code> into integer in context of <code class="PARAMETER">node</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecQName2IntegerGetIntegerFromString
+ (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2IntegerInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *qname</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> *intValue</code>);</pre>
+<p>Converts <code class="PARAMETER">qname</code>
+ into integer in context of <code class="PARAMETER">node</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN27865"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN27867"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20616"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->integer mapping information.</p></td>
+<td><p>info</p></td>
+<td><p>the qname<->integer mapping information.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20621"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node.</p></td>
+<td><p>node</p></td>
+<td><p>the pointer to node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20626"><span style="white-space: nowrap"><code class="PARAMETER">qname</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname string.</p></td>
+<td><p>qname</p></td>
+<td><p>the qname string.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20631"><span style="white-space: nowrap"><code class="PARAMETER">intValue</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to result integer value.</p></td>
+<td><p>intValue</p></td>
+<td><p>the pointer to result integer value.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20636"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs,</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27894"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs,</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECQNAME2INTEGERGETSTRINGFROMINTEGER"></a><h3>xmlSecQName2IntegerGetStringFromInteger ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlChar</font> * xmlSecQName2IntegerGetStringFromInteger
- (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- <font>int</font> intValue);</pre>
-<p>Creates qname string for <code class="PARAMETER">intValue</code> in context of given <code class="PARAMETER">node</code>. Caller
-is responsible for freeing returned string with <code class="PARAMETER">xmlFree</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecQName2IntegerGetStringFromInteger
+ (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2IntegerInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> intValue</code>);</pre>
+<p>Creates qname string for <code class="PARAMETER">intValue</code>
+ in context of given <code class="PARAMETER">node</code>
+. Caller
+is responsible for freeing returned string with <code class="PARAMETER">xmlFree</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN27917"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27919"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>info</p></td>
+<td><p>the qname<->integer mapping information.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>intValue</p></td>
+<td><p>the integer value.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20656"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->integer mapping information.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20661"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20666"><span style="white-space: nowrap"><code class="PARAMETER">intValue</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the integer value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20671"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly allocated string on success or NULL if an error occurs,</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27940"></a><h4>Returns</h4>
+<p> pointer to newly allocated string on success or NULL if an error occurs,</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECQNAME2INTEGERNODEREAD"></a><h3>xmlSecQName2IntegerNodeRead ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecQName2IntegerNodeRead (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- <font>int</font> *intValue);</pre>
-<p>Reads the content of <code class="PARAMETER">node</code> and converts it to an integer using mapping
-from <code class="PARAMETER">info</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecQName2IntegerNodeRead (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2IntegerInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> *intValue</code>);</pre>
+<p>Reads the content of <code class="PARAMETER">node</code>
+ and converts it to an integer using mapping
+from <code class="PARAMETER">info</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN27962"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN27964"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>info</p></td>
+<td><p>the qname<->integer mapping information.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>intValue</p></td>
+<td><p>the pointer to result integer value.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20690"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->integer mapping information.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20695"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20700"><span style="white-space: nowrap"><code class="PARAMETER">intValue</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to result integer value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20705"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs,</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN27985"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs,</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECQNAME2INTEGERNODEWRITE"></a><h3>xmlSecQName2IntegerNodeWrite ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecQName2IntegerNodeWrite (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *nodeName,
- const <font>xmlChar</font> *nodeNs,
- <font>int</font> intValue);</pre>
-<p>Creates new child node in <code class="PARAMETER">node</code> and sets its value to <code class="PARAMETER">intValue</code>.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecQName2IntegerNodeWrite (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2IntegerInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *nodeName</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *nodeNs</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> intValue</code>);</pre>
+<p>Creates new child node in <code class="PARAMETER">node</code>
+ and sets its value to <code class="PARAMETER">intValue</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN28013"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20726"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->integer mapping information.</p></td>
-</tr>
+<a name="AEN28015"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20731"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the parent node.</p></td>
+<td><p>info</p></td>
+<td><p>the qname<->integer mapping information.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20736"><span style="white-space: nowrap"><code class="PARAMETER">nodeName</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the child node name.</p></td>
+<td><p>node</p></td>
+<td><p>the parent node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20741"><span style="white-space: nowrap"><code class="PARAMETER">nodeNs</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the child node namespace.</p></td>
+<td><p>nodeName</p></td>
+<td><p>the child node name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20746"><span style="white-space: nowrap"><code class="PARAMETER">intValue</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the integer value.</p></td>
+<td><p>nodeNs</p></td>
+<td><p>the child node namespace.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20751"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs,</p></td>
+<td><p>intValue</p></td>
+<td><p>the integer value.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN28048"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs,</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECQNAME2INTEGERATTRIBUTEREAD"></a><h3>xmlSecQName2IntegerAttributeRead ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecQName2IntegerAttributeRead (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *attrName,
- <font>int</font> *intValue);</pre>
-<p>Gets the value of <code class="PARAMETER">attrName</code> atrtibute from <code class="PARAMETER">node</code> and converts it to integer
-according to <code class="PARAMETER">info</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecQName2IntegerAttributeRead (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2IntegerInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *attrName</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> *intValue</code>);</pre>
+<p>Gets the value of <code class="PARAMETER">attrName</code>
+ atrtibute from <code class="PARAMETER">node</code>
+ and converts it to integer
+according to <code class="PARAMETER">info</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN28074"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN28076"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>info</p></td>
+<td><p>the qname<->integer mapping information.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the element node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>attrName</p></td>
+<td><p>the attribute name.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>intValue</p></td>
+<td><p>the pointer to result integer value.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20772"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->integer mapping information.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20777"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the element node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20782"><span style="white-space: nowrap"><code class="PARAMETER">attrName</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the attribute name.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20787"><span style="white-space: nowrap"><code class="PARAMETER">intValue</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to result integer value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20792"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs,</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN28103"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs,</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECQNAME2INTEGERATTRIBUTEWRITE"></a><h3>xmlSecQName2IntegerAttributeWrite ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecQName2IntegerAttributeWrite (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *attrName,
- <font>int</font> intValue);</pre>
-<p>Converts <code class="PARAMETER">intValue</code> to a qname and sets it to the value of
-attribute <code class="PARAMETER">attrName</code> in <code class="PARAMETER">node</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecQName2IntegerAttributeWrite (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2IntegerInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *attrName</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> intValue</code>);</pre>
+<p>Converts <code class="PARAMETER">intValue</code>
+ to a qname and sets it to the value of
+attribute <code class="PARAMETER">attrName</code>
+ in <code class="PARAMETER">node</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN28129"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN28131"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>info</p></td>
+<td><p>the qname<->integer mapping information.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the parent node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>attrName</p></td>
+<td><p>the name of attribute.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>intValue</p></td>
+<td><p>the integer value.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20813"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->integer mapping information.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20818"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the parent node.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20823"><span style="white-space: nowrap"><code class="PARAMETER">attrName</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the name of attribute.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20828"><span style="white-space: nowrap"><code class="PARAMETER">intValue</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the integer value.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20833"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs,</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN28158"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs,</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECQNAME2INTEGERDEBUGDUMP"></a><h3>xmlSecQName2IntegerDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecQName2IntegerDebugDump (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>int</font> intValue,
- const <font>xmlChar</font> *name,
- <font>FILE</font> *output);</pre>
-<p>Prints <code class="PARAMETER">intValue</code> into <code class="PARAMETER">output</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecQName2IntegerDebugDump (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2IntegerInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> intValue</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints <code class="PARAMETER">intValue</code>
+ into <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN28183"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN28185"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20853"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->integer mapping information.</p></td>
+<td><p>info</p></td>
+<td><p>the qname<->integer mapping information.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20858"><span style="white-space: nowrap"><code class="PARAMETER">intValue</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the integer value.</p></td>
+<td><p>intValue</p></td>
+<td><p>the integer value.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20863"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the value name to print.</p></td>
+<td><p>name</p></td>
+<td><p>the value name to print.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20868"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECQNAME2INTEGERDEBUGXMLDUMP"></a><h3>xmlSecQName2IntegerDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecQName2IntegerDebugXmlDump (<font>xmlSecQName2IntegerInfoConstPtr</font> info,
- <font>int</font> intValue,
- const <font>xmlChar</font> *name,
- <font>FILE</font> *output);</pre>
-<p>Prints <code class="PARAMETER">intValue</code> into <code class="PARAMETER">output</code> in XML format.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecQName2IntegerDebugXmlDump (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2IntegerInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> intValue</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints <code class="PARAMETER">intValue</code>
+ into <code class="PARAMETER">output</code>
+ in XML format.</p>
+<div class="REFSECT3">
+<a name="AEN28234"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN28236"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20888"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->integer mapping information.</p></td>
+<td><p>info</p></td>
+<td><p>the qname<->integer mapping information.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20893"><span style="white-space: nowrap"><code class="PARAMETER">intValue</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the integer value.</p></td>
+<td><p>intValue</p></td>
+<td><p>the integer value.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20898"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the value name to print.</p></td>
+<td><p>name</p></td>
+<td><p>the value name to print.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20903"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
</tr>
-</tbody></table>
-</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECBITMASK"></a><h3>xmlSecBitMask</h3>
-<pre class="PROGRAMLISTING">typedef unsigned int xmlSecBitMask;</pre>
-<p>Bitmask datatype.</p>
+</tbody>
+</table>
<p></p>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECQNAME2BITMASKINFO"></a><h3>struct xmlSecQName2BitMaskInfo</h3>
-<pre class="PROGRAMLISTING">struct xmlSecQName2BitMaskInfo {
- const xmlChar* qnameHref;
- const xmlChar* qnameLocalPart;
- xmlSecBitMask mask;
-};</pre>
-<p>QName <-> Bitmask conversion definition.</p>
-<p></p>
-<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20923"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">qnameHref</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the QName href</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20929"><span style="white-space: nowrap">const <font>xmlChar</font> *<code class="STRUCTFIELD">qnameLocalPart</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the QName local</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20935"><span style="white-space: nowrap"><a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> <code class="STRUCTFIELD">mask</code>;</span></a></td>
-<td align="LEFT" valign="TOP"><p> the bitmask value</p></td>
-</tr>
-</tbody></table>
</div>
-<hr>
-<div class="REFSECT2">
-<a name="XMLSECQNAME2BITMASKINFOCONSTPTR"></a><h3>xmlSecQName2BitMaskInfoConstPtr</h3>
-<pre class="PROGRAMLISTING">typedef const xmlSecQName2BitMaskInfo* xmlSecQName2BitMaskInfoConstPtr;</pre>
-<p>Pointer to constant QName <-> Bitmask conversion definition.</p>
-<p></p>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECQNAME2BITMASKGETINFO"></a><h3>xmlSecQName2BitMaskGetInfo ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlSecQName2BitMaskInfoConstPtr</font> xmlSecQName2BitMaskGetInfo
- (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> mask);</pre>
-<p>Converts <code class="PARAMETER">mask</code> to qname.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlSecQName2BitMaskInfoConstPtr</span></font>
+xmlSecQName2BitMaskGetInfo (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2BitMaskInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmltree.html#XMLSECBITMASK"><span class="TYPE">xmlSecBitMask</span></a> mask</code>);</pre>
+<p>Converts <code class="PARAMETER">mask</code>
+ to qname.</p>
+<div class="REFSECT3">
+<a name="AEN28278"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN28280"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>info</p></td>
+<td><p>the qname<->bit mask mapping information.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>mask</p></td>
+<td><p>the bit mask.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20960"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->bit mask mapping information.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20965"><span style="white-space: nowrap"><code class="PARAMETER">mask</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the bit mask.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20970"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to the qname info for <code class="PARAMETER">mask</code> or NULL if mask is unknown.</p></td>
-</tr>
-</tbody></table>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN28295"></a><h4>Returns</h4>
+<p> pointer to the qname info for <code class="PARAMETER">mask</code>
+or NULL if mask is unknown.</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECQNAME2BITMASKGETBITMASK"></a><h3>xmlSecQName2BitMaskGetBitMask ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecQName2BitMaskGetBitMask (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- const <font>xmlChar</font> *qnameLocalPart,
- const <font>xmlChar</font> *qnameHref,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> *mask);</pre>
-<p>Converts <code class="PARAMETER">qnameLocalPart</code> to <code class="PARAMETER">mask</code>.</p>
-<p></p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecQName2BitMaskGetBitMask (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2BitMaskInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *qnameLocalPart</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *qnameHref</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmltree.html#XMLSECBITMASK"><span class="TYPE">xmlSecBitMask</span></a> *mask</code>);</pre>
+<p>Converts <code class="PARAMETER">qnameLocalPart</code>
+ to <code class="PARAMETER">mask</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN28321"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20991"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->bit mask mapping information.</p></td>
-</tr>
+<a name="AEN28323"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN20996"><span style="white-space: nowrap"><code class="PARAMETER">qnameLocalPart</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname LocalPart value.</p></td>
+<td><p>info</p></td>
+<td><p>the qname<->bit mask mapping information.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21001"><span style="white-space: nowrap"><code class="PARAMETER">qnameHref</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname Href value.</p></td>
+<td><p>qnameLocalPart</p></td>
+<td><p>the qname LocalPart value.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21006"><span style="white-space: nowrap"><code class="PARAMETER">mask</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to result mask.</p></td>
+<td><p>qnameHref</p></td>
+<td><p>the qname Href value.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21011"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs,</p></td>
+<td><p>mask</p></td>
+<td><p>the pointer to result mask.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN28350"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs,</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
<a name="XMLSECQNAME2BITMASKNODESREAD"></a><h3>xmlSecQName2BitMaskNodesRead ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecQName2BitMaskNodesRead (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- <font>xmlNodePtr</font> *node,
- const <font>xmlChar</font> *nodeName,
- const <font>xmlChar</font> *nodeNs,
- <font>int</font> stopOnUnknown,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> *mask);</pre>
-<p>Reads <<code class="PARAMETER">nodeNs</code>:<code class="PARAMETER">nodeName</code>> elements and puts the result bit mask
-into <code class="PARAMETER">mask</code>. When function exits, <code class="PARAMETER">node</code> points to the first element node
-after all the <<code class="PARAMETER">nodeNs</code>:<code class="PARAMETER">nodeName</code>> elements.</p>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecQName2BitMaskNodesRead (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2BitMaskInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> *node</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *nodeName</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *nodeNs</code>,
+ <code class="PARAMETER"><font><span class="TYPE">int</span></font> stopOnUnknown</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmltree.html#XMLSECBITMASK"><span class="TYPE">xmlSecBitMask</span></a> *mask</code>);</pre>
+<p>Reads <<code class="PARAMETER">nodeNs</code>
+:<code class="PARAMETER">nodeName</code>
+> elements and puts the result bit mask
+into <code class="PARAMETER">mask</code>
+. When function exits, <code class="PARAMETER">node</code>
+ points to the first element node
+after all the <<code class="PARAMETER">nodeNs</code>
+:<code class="PARAMETER">nodeName</code>
+> elements.</p>
+<div class="REFSECT3">
+<a name="AEN28385"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN28387"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>info</p></td>
+<td><p>the qname<->bit mask mapping information.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the start.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>nodeName</p></td>
+<td><p>the mask nodes name.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>nodeNs</p></td>
+<td><p>the mask nodes namespace.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>stopOnUnknown</p></td>
+<td><p>if this flag is set then function exits if unknown
+value was found.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>mask</p></td>
+<td><p>the pointer to result mask.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN28426"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs,</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECQNAME2BITMASKGETBITMASKFROMSTRING"></a><h3>xmlSecQName2BitMaskGetBitMaskFromString ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecQName2BitMaskGetBitMaskFromString
+ (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2BitMaskInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *qname</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmltree.html#XMLSECBITMASK"><span class="TYPE">xmlSecBitMask</span></a> *mask</code>);</pre>
+<p>Converts <code class="PARAMETER">qname</code>
+ into integer in context of <code class="PARAMETER">node</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN28451"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21037"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->bit mask mapping information.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21042"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the start.</p></td>
-</tr>
+<a name="AEN28453"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21047"><span style="white-space: nowrap"><code class="PARAMETER">nodeName</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the mask nodes name.</p></td>
+<td><p>info</p></td>
+<td><p>the qname<->integer mapping information.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21052"><span style="white-space: nowrap"><code class="PARAMETER">nodeNs</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the mask nodes namespace.</p></td>
+<td><p>node</p></td>
+<td><p>the pointer to node.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21057"><span style="white-space: nowrap"><code class="PARAMETER">stopOnUnknown</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> if this flag is set then function exits if unknown
- value was found.</p></td>
+<td><p>qname</p></td>
+<td><p>the qname string.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21062"><span style="white-space: nowrap"><code class="PARAMETER">mask</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to result mask.</p></td>
+<td><p>mask</p></td>
+<td><p>the pointer to result msk value.</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21067"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs,</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN28480"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs,</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECQNAME2BITMASKGETBITMASKFROMSTRING"></a><h3>xmlSecQName2BitMaskGetBitMaskFromString ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecQName2BitMaskGetBitMaskFromString
- (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *qname,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> *mask);</pre>
-<p>Converts <code class="PARAMETER">qname</code> into integer in context of <code class="PARAMETER">node</code>.</p>
+<a name="XMLSECQNAME2BITMASKGETSTRINGFROMBITMASK"></a><h3>xmlSecQName2BitMaskGetStringFromBitMask ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">xmlChar</span></font> *
+xmlSecQName2BitMaskGetStringFromBitMask
+ (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2BitMaskInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmltree.html#XMLSECBITMASK"><span class="TYPE">xmlSecBitMask</span></a> mask</code>);</pre>
+<p>Creates qname string for <code class="PARAMETER">mask</code>
+ in context of given <code class="PARAMETER">node</code>
+. Caller
+is responsible for freeing returned string with <code class="PARAMETER">xmlFree</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN28503"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
+<p></p>
+<a name="AEN28505"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
+<tr>
+<td><p>info</p></td>
+<td><p>the qname<->integer mapping information.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>node</p></td>
+<td><p>the pointer to node.</p></td>
+<td> </td>
+</tr>
+<tr>
+<td><p>mask</p></td>
+<td><p>the mask.</p></td>
+<td> </td>
+</tr>
+</tbody>
+</table>
<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN28526"></a><h4>Returns</h4>
+<p> pointer to newly allocated string on success or NULL if an error occurs,</p>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECQNAME2BITMASKNODESWRITE"></a><h3>xmlSecQName2BitMaskNodesWrite ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">int</span></font>
+xmlSecQName2BitMaskNodesWrite (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2BitMaskInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><font><span class="TYPE">xmlNodePtr</span></font> node</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *nodeName</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *nodeNs</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmltree.html#XMLSECBITMASK"><span class="TYPE">xmlSecBitMask</span></a> mask</code>);</pre>
+<p>Writes <<code class="PARAMETER">nodeNs</code>
+:<code class="PARAMETER">nodeName</code>
+> elemnts with values from <code class="PARAMETER">mask</code>
+ to <code class="PARAMETER">node</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN28556"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN28558"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21087"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->integer mapping information.</p></td>
+<td><p>info</p></td>
+<td><p>the qname<->bit mask mapping information.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21092"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node.</p></td>
+<td><p>node</p></td>
+<td><p>the parent element for mask nodes.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21097"><span style="white-space: nowrap"><code class="PARAMETER">qname</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname string.</p></td>
+<td><p>nodeName</p></td>
+<td><p>the mask nodes name.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21102"><span style="white-space: nowrap"><code class="PARAMETER">mask</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to result msk value.</p></td>
+<td><p>nodeNs</p></td>
+<td><p>the mask nodes namespace.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21107"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs,</p></td>
+<td><p>mask</p></td>
+<td><p>the bit mask.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+<div class="REFSECT3">
+<a name="AEN28591"></a><h4>Returns</h4>
+<p> 0 on success or a negative value if an error occurs,</p>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECQNAME2BITMASKGETSTRINGFROMBITMASK"></a><h3>xmlSecQName2BitMaskGetStringFromBitMask ()</h3>
-<pre class="PROGRAMLISTING"><font>xmlChar</font> * xmlSecQName2BitMaskGetStringFromBitMask
- (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> mask);</pre>
-<p>Creates qname string for <code class="PARAMETER">mask</code> in context of given <code class="PARAMETER">node</code>. Caller
-is responsible for freeing returned string with <code class="PARAMETER">xmlFree</code>.</p>
-<p></p>
+<a name="XMLSECQNAME2BITMASKDEBUGDUMP"></a><h3>xmlSecQName2BitMaskDebugDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecQName2BitMaskDebugDump (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2BitMaskInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmltree.html#XMLSECBITMASK"><span class="TYPE">xmlSecBitMask</span></a> mask</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints debug information about <code class="PARAMETER">mask</code>
+ to <code class="PARAMETER">output</code>
+.</p>
+<div class="REFSECT3">
+<a name="AEN28616"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN28618"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21127"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->integer mapping information.</p></td>
+<td><p>info</p></td>
+<td><p>the qname<->bit mask mapping information.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21132"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to node.</p></td>
+<td><p>mask</p></td>
+<td><p>the bit mask.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21137"><span style="white-space: nowrap"><code class="PARAMETER">mask</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the mask.</p></td>
+<td><p>name</p></td>
+<td><p>the value name to print.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21142"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> pointer to newly allocated string on success or NULL if an error occurs,</p></td>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECQNAME2BITMASKNODESWRITE"></a><h3>xmlSecQName2BitMaskNodesWrite ()</h3>
-<pre class="PROGRAMLISTING"><font>int</font> xmlSecQName2BitMaskNodesWrite (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- <font>xmlNodePtr</font> node,
- const <font>xmlChar</font> *nodeName,
- const <font>xmlChar</font> *nodeNs,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> mask);</pre>
-<p>Writes <<code class="PARAMETER">nodeNs</code>:<code class="PARAMETER">nodeName</code>> elemnts with values from <code class="PARAMETER">mask</code> to <code class="PARAMETER">node</code>.</p>
-<p></p>
+<a name="XMLSECQNAME2BITMASKDEBUGXMLDUMP"></a><h3>xmlSecQName2BitMaskDebugXmlDump ()</h3>
+<pre class="PROGRAMLISTING"><font><span class="RETURNVALUE">void</span></font>
+xmlSecQName2BitMaskDebugXmlDump (<code class="PARAMETER"><font><span class="TYPE">xmlSecQName2BitMaskInfoConstPtr</span></font> info</code>,
+ <code class="PARAMETER"><a href="xmlsec-xmltree.html#XMLSECBITMASK"><span class="TYPE">xmlSecBitMask</span></a> mask</code>,
+ <code class="PARAMETER">const <font><span class="TYPE">xmlChar</span></font> *name</code>,
+ <code class="PARAMETER"><font><span class="TYPE">FILE</span></font> *output</code>);</pre>
+<p>Prints debug information about <code class="PARAMETER">mask</code>
+ to <code class="PARAMETER">output</code>
+ in XML format.</p>
+<div class="REFSECT3">
+<a name="AEN28667"></a><h4>Parameters</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21165"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->bit mask mapping information.</p></td>
-</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21170"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the parent element for mask nodes.</p></td>
-</tr>
+<a name="AEN28669"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21175"><span style="white-space: nowrap"><code class="PARAMETER">nodeName</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the mask nodes name.</p></td>
+<td><p>info</p></td>
+<td><p>the qname<->bit mask mapping information.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21180"><span style="white-space: nowrap"><code class="PARAMETER">nodeNs</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the mask nodes namespace.</p></td>
+<td><p>mask</p></td>
+<td><p>the bit mask.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21185"><span style="white-space: nowrap"><code class="PARAMETER">mask</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the bit mask.</p></td>
+<td><p>name</p></td>
+<td><p>the value name to print.</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21190"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs,</p></td>
+<td><p>output</p></td>
+<td><p>the pointer to output FILE.</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
</div>
-<hr>
+</div>
+</div>
+</div>
+<div class="REFSECT1">
+<a name="XMLSEC-XMLTREE.OTHER_DETAILS"></a><h2>Types and Values</h2>
<div class="REFSECT2">
-<a name="XMLSECQNAME2BITMASKDEBUGDUMP"></a><h3>xmlSecQName2BitMaskDebugDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecQName2BitMaskDebugDump (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> mask,
- const <font>xmlChar</font> *name,
- <font>FILE</font> *output);</pre>
-<p>Prints debug information about <code class="PARAMETER">mask</code> to <code class="PARAMETER">output</code>.</p>
-<p></p>
+<a name="XMLSECQNAME2INTEGERINFO"></a><h3>struct xmlSecQName2IntegerInfo</h3>
+<pre class="PROGRAMLISTING">struct xmlSecQName2IntegerInfo {
+ const xmlChar* qnameHref;
+ const xmlChar* qnameLocalPart;
+ int intValue;
+};</pre>
+<p>QName <-> Integer conversion definition.</p>
+<div class="REFSECT3">
+<a name="AEN28704"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
+<a name="AEN28706"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21210"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->bit mask mapping information.</p></td>
+<td><p>const <font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">qnameHref</code>;</p></td>
+<td><p>the QName href</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21215"><span style="white-space: nowrap"><code class="PARAMETER">mask</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the bit mask.</p></td>
+<td><p>const <font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">qnameLocalPart</code>;</p></td>
+<td><p>the QName local</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21220"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the value name to print.</p></td>
+<td><p><font><span class="TYPE">int</span></font> <code class="STRUCTFIELD">intValue</code>;</p></td>
+<td><p>the integer value</p></td>
+<td> </td>
</tr>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21225"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
-</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
</div>
<hr>
<div class="REFSECT2">
-<a name="XMLSECQNAME2BITMASKDEBUGXMLDUMP"></a><h3>xmlSecQName2BitMaskDebugXmlDump ()</h3>
-<pre class="PROGRAMLISTING"><font>void</font> xmlSecQName2BitMaskDebugXmlDump (<font>xmlSecQName2BitMaskInfoConstPtr</font> info,
- <a href="xmlsec-xmltree.html#XMLSECBITMASK">xmlSecBitMask</a> mask,
- const <font>xmlChar</font> *name,
- <font>FILE</font> *output);</pre>
-<p>Prints debug information about <code class="PARAMETER">mask</code> to <code class="PARAMETER">output</code> in XML format.</p>
-<p></p>
+<a name="XMLSECQNAME2INTEGERINFOCONSTPTR"></a><h3>xmlSecQName2IntegerInfoConstPtr</h3>
+<pre class="PROGRAMLISTING">typedef const xmlSecQName2IntegerInfo * xmlSecQName2IntegerInfoConstPtr;</pre>
+<p>Pointer to constant QName <-> Integer conversion definition.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECBITMASK"></a><h3>xmlSecBitMask</h3>
+<pre class="PROGRAMLISTING">typedef unsigned int xmlSecBitMask;</pre>
+<p>Bitmask datatype.</p>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECQNAME2BITMASKINFO"></a><h3>struct xmlSecQName2BitMaskInfo</h3>
+<pre class="PROGRAMLISTING">struct xmlSecQName2BitMaskInfo {
+ const xmlChar* qnameHref;
+ const xmlChar* qnameLocalPart;
+ xmlSecBitMask mask;
+};</pre>
+<p>QName <-> Bitmask conversion definition.</p>
+<div class="REFSECT3">
+<a name="AEN28754"></a><h4>Members</h4>
+<div class="INFORMALTABLE">
<p></p>
-<table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
-<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21245"><span style="white-space: nowrap"><code class="PARAMETER">info</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the qname<->bit mask mapping information.</p></td>
-</tr>
+<a name="AEN28756"></a><table border="0" frame="void" width="100%" class="CALSTABLE">
+<col>
+<col>
+<col>
+<tbody>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21250"><span style="white-space: nowrap"><code class="PARAMETER">mask</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the bit mask.</p></td>
+<td><p>const <font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">qnameHref</code>;</p></td>
+<td><p>the QName href</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21255"><span style="white-space: nowrap"><code class="PARAMETER">name</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the value name to print.</p></td>
+<td><p>const <font><span class="TYPE">xmlChar</span></font> *<code class="STRUCTFIELD">qnameLocalPart</code>;</p></td>
+<td><p>the QName local</p></td>
+<td> </td>
</tr>
<tr>
-<td align="LEFT" valign="TOP"><a name="AEN21260"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
-<td align="LEFT" valign="TOP"><p> the pointer to output FILE.</p></td>
+<td><p><a href="xmlsec-xmltree.html#XMLSECBITMASK"><span class="TYPE">xmlSecBitMask</span></a> <code class="STRUCTFIELD">mask</code>;</p></td>
+<td><p>the bitmask value</p></td>
+<td> </td>
</tr>
-</tbody></table>
+</tbody>
+</table>
+<p></p>
+</div>
+</div>
+</div>
+<hr>
+<div class="REFSECT2">
+<a name="XMLSECQNAME2BITMASKINFOCONSTPTR"></a><h3>xmlSecQName2BitMaskInfoConstPtr</h3>
+<pre class="PROGRAMLISTING">typedef const xmlSecQName2BitMaskInfo* xmlSecQName2BitMaskInfoConstPtr;</pre>
+<p>Pointer to constant QName <-> Bitmask conversion definition.</p>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
diff --git a/docs/authors.html b/docs/authors.html
index 91099da..348ae53 100644
--- a/docs/authors.html
+++ b/docs/authors.html
@@ -2,8 +2,59 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>XML Security Library: Authors and contributors</title>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
diff --git a/docs/bugs.html b/docs/bugs.html
index 428c0ad..e843ca6 100644
--- a/docs/bugs.html
+++ b/docs/bugs.html
@@ -2,8 +2,59 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>XML Security Library: Reporting Bugs</title>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -47,8 +98,7 @@
<p>
Well, any big enough program has a bug. You simply don't know where
exactly :) The best way to report a bug is to use the
-<a href="http://bugzilla.gnome.org/buglist.cgi?product=xmlsec">Gnome bug
-tracking database</a>. Please, make sure to use the "xmlsec" module name.
+<a href="https://github.com/lsh123/xmlsec/issues">GitHub Issues Tracker</a>.
There is also a mailing list
<a href="mailto:xmlsec at aleksey.com">xmlsec at aleksey.com</a> with
<a href="http://www.aleksey.com/pipermail/xmlsec">online
@@ -87,9 +137,8 @@ Any private or confidential information posted there became public.
The author of XMLSec library assumes no responsibility for any damage caused
by any information distribution using XMLSec
<a href="http://www.aleksey.com/pipermail/xmlsec">mailing
-list</a>, GNOME CVS or
-<a href="http://bugzilla.gnome.org/buglist.cgi?product=xmlsec">Gnome bug
-tracking database</a>.
+list</a>, <a href="https://github.com/lsh123/xmlsec">GitHub Source Code</a> or
+<a href="https://github.com/lsh123/xmlsec/issues">GitHub Issue Tracker</a>.
</p>
<p>
</p>
diff --git a/docs/c14n.html b/docs/c14n.html
index 3390cdf..92842ec 100644
--- a/docs/c14n.html
+++ b/docs/c14n.html
@@ -2,8 +2,59 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>XML Security Library: Canonicalization</title>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
diff --git a/docs/documentation.html b/docs/documentation.html
index c193666..4ecaa6c 100644
--- a/docs/documentation.html
+++ b/docs/documentation.html
@@ -2,8 +2,59 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>XML Security Library: Documentation</title>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
diff --git a/docs/download.html b/docs/download.html
index 6c25422..3945a74 100644
--- a/docs/download.html
+++ b/docs/download.html
@@ -2,8 +2,59 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>XML Security Library: Download</title>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -47,10 +98,10 @@
<h1>Download</h1>
</div>
<h2>Stable releases.</h2>
-<p>The latest stable XML Security Library version is <b>1.2.20</b>:</p>
+<p>The latest stable XML Security Library version is <b>1.2.23</b>:</p>
<ul>
<li>
- <a href="http://www.aleksey.com/xmlsec/download/xmlsec1-1.2.20.tar.gz">Sources
+ <a href="http://www.aleksey.com/xmlsec/download/xmlsec1-1.2.23.tar.gz">Sources
for latest version</a>.
</li>
<li>
@@ -66,7 +117,7 @@
ports.
</li>
</ul>
-<p>The <a href="ftp://ftp.aleksey.com/pub/xmlsec/releases/">previous releases</a> are also available.</p>
+<p>The <a href="http://www.aleksey.com/xmlsec/download/">previous releases</a> are also available.</p>
<h2>Requirements</h2>
<p>
The XML Security Library requires:
@@ -79,8 +130,7 @@
<p>and one of the following cryptographic libraries:</p>
<ul>
<li>
-<a href="http://www.openssl.org/">OpenSSL</a> version 0.9.8 (or later). It also should work with 0.9.7 and 0.9.6 but some features
- would be disabled.</li>
+<a href="http://www.openssl.org/">OpenSSL</a> version 0.9.8 (or later).</li>
<li>
<a href="http://www.gnu.org/software/gnutls/">GnuTLS</a>
</li>
@@ -102,11 +152,7 @@
The last step is optional and requires Internet connection to execute
some tests.<br></p>
<h2>GIT</h2>
-<p>XML Security Library is available from the
-<a href="http://live.gnome.org/Git/Developers">Gnome GIT</a>
-(the module name is <b>xmlsec</b>). The online XMLSec
-<a href="http://git.gnome.org/cgit/xmlsec">source browser</a>
-is also available.
+<p>XML Security Library is available from the <a href="https://github.com/lsh123/xmlsec">GitHub</a>.
</p>
</td></tr></table></td>
</tr></table></body>
diff --git a/docs/faq.html b/docs/faq.html
index 32a08c3..36f831f 100644
--- a/docs/faq.html
+++ b/docs/faq.html
@@ -2,8 +2,59 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>XML Security Library: Documentation</title>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -150,9 +201,7 @@ the application is not distributed.<br>
</td>
</tr>
<tr>
-<td style="vertical-align: top;">xmlsec-nss (also
-requires
-xmlsec-core library) </td>
+<td style="vertical-align: top;">xmlsec-nss (also requires xmlsec-core library) </td>
<td style="vertical-align: top;">
<a href="http://www.mozilla.org/projects/security/pki/nss/">NSS</a><br>
</td>
@@ -161,10 +210,7 @@ Public License</a> and <a href="http://www.opensource.org/licenses/gpl-license.p
<td style="vertical-align: top;">Yes.<br>
</td>
<td style="vertical-align: top;">Yes.</td>
- <td style="vertical-align: top;">Probably yes, but at
-the time I
-am writing this there are some <a href="http://bugzilla.mozilla.org/show_bug.cgi?id=217162">unresolved
-issues</a>.<br>
+ <td style="vertical-align: top;">Yes<br>
</td>
</tr>
<tr>
@@ -209,7 +255,7 @@ xmlsec?</h4>
(optional)</li>
</ul>
<ul>
-<li> <a href="http://www.openssl.org/">OpenSSL</a> version 0.9.8 (or later). The OpenSSL 0.9.7 and 0.9.6 are also supported but XMLSec library will have limited functionality.</li>
+<li> <a href="http://www.openssl.org/">OpenSSL</a> version 0.9.8 (or later).</li>
<li>
<a href="http://www.gnu.org/software/gnutls/">GnuTLS</a>
</li>
@@ -228,14 +274,12 @@ for some tests?</h4>
<p> First of all, some tests <b>must</b> fail! Please read
the messages printed before the tests.<br>
If you have other failed tests then the next possible reason is that
-you are using OpenSSL 0.9.6 or 0.9.7 thus some xmlsec features are disabled in this
-case. Please try to upgrade to OpenSSL 0.9.8 (or later) and re-configure/re-compile xmlsec.<br>
-if this does not help then probably there is a bug in the xmlsec or in
+some features are not compiled into the library. Re-configure/re-compile xmlsec.<br>
+If this does not help then probably there is a bug in the xmlsec or in
the xmlsec tests. Please submit the <a href="http://www.aleksey.com/xmlsec/bugs.html">bug report</a> and I'll
try to fix it. </p>
<h4> <a name="section_2_5"></a>2.5. I get the xmlsec
-sources
-from CVS and there is no
+sources from GitHub and there is no
configure script. Where can I get it?</h4>
<p> The configure (and other Makefiles) are generated. Use
the <code>autogen.sh</code> script to regenerate the configure and
diff --git a/docs/favicon.ico b/docs/favicon.ico
new file mode 100644
index 0000000..5bcd739
Binary files /dev/null and b/docs/favicon.ico differ
diff --git a/docs/index.html b/docs/index.html
index c46aefe..9de530a 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -2,8 +2,59 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>XML Security Library</title>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -66,25 +117,46 @@ XML Security Library is released under the
see the Copyright file in the distribution for details.<br><br></p>
<p><b>News</b></p>
<ul>
-<li>May 27 2014<br>
+<li>October 16 2016<br>
+ The <a href="download.html">XML Security Library 1.2.23</a> release includes the following changes:
+ <ul>
+ <li>Full support for OpenSSL 1.1.0.</li>
+ <li>Several other small fixes (<a href="https://github.com/lsh123/xmlsec/commits/master">more details</a>).</li>
+ </ul>
+</li>
+<br><li>April 20 2016<br>
+ The <a href="download.html">XML Security Library 1.2.22</a> release includes the following changes:
+ <ul>
+ <li>Restored SOAP parser to support backward compatibility for Lasso project.</li>
+ </ul>
+</li>
+<br><li>April 12 2016<br>
+ The <a href="download.html">XML Security Library 1.2.21</a> release includes the following changes:
+ <ul>
+ <li>Added OOXML Relationships Transform Algorithm (patch from <a href="https://github.com/vmiklos">Miklos Vajna</a>).</li>
+ <li>Added experimental GOST2012 support for xmlsec-openssl (patch from Nikolay Shaplov).</li>
+ <li>Migrated XMLSec to <a href="https://github.com/lsh123/xmlsec">GitHub</a>.</li>
+ <li>Added OpenSSL 1.1.0 (pre 2) API support (major re-factoring for all OpenSSL based implementations of the
+ block ciphers and the DSA/ECDSA signatures).</li>
+ <li>Removed support for legacy OpenSSL 0.9.6 (last release: March, 2004) and 0.9.7 (last release: February, 2007).</li>
+ <li>Completely revamped manpages/documentation build to completely pass 'make distcheck' tests.</li>
+ <li>Deprecated XMLSEC_CRYPTO define in favor of xmlSecGetDefaultCrypto() function.</li>
+ <li>Implemented several other smaller features; fixed several other minor bugs, code cleanups:
+ (<a href="https://github.com/lsh123/xmlsec/commits/master">more details</a>).</li>
+ </ul>
+</li>
+<br><li>Jan 28 2016<br>
+ The XML Security Library was migrated to <a href="https://github.com/lsh123/xmlsec">GitHub</a>. Please use GitHub for
+ accessing source code and reporting issues.
+</li>
+<br><li>May 27 2014<br>
The <a href="download.html">XML Security Library 1.2.20</a> release fixes a number of miscellaneous bugs and
updates expired or soon-to-be-expired certificates in the test suite.
</li>
-<li>March 24 2013<br>
+<br><li>March 24 2013<br>
The <a href="download.html">XML Security Library 1.2.19</a> release adds support for DSA-SHA256, ECDSA-SHA1,
ECDSA-SHA224, ECDSA-SHA256, ECDSA-SHA384, ECDSA-SHA512 and fixes a number of miscellaneous bugs.
</li>
-<br><li>May 11 2011<br>
- The <a href="download.html">XML Security Library 1.2.18</a> release fixes
- a serious crasher. All users are advised to upgraded as soon as possible.
-</li>
-<br><li>March 31 2011<br>
- Changes in <a href="download.html">XML Security Library 1.2.17</a> release:
- <ul>
-<li>Fixed security issue with libxslt (CVE-2011-1425, reported by Nicolas Gregoire).</li>
- <li>Fixed a number of build configuration problems, pkcs12 file loading, and gcrypt init/shutdown.</li>
- </ul>
-</li>
<br>
</ul>
</td></tr></table></td>
diff --git a/docs/news.html b/docs/news.html
index c0ff702..5358519 100644
--- a/docs/news.html
+++ b/docs/news.html
@@ -2,8 +2,59 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>XML Security Library: News</title>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -47,11 +98,43 @@
<h1>XML Security Library News</h1>
</div>
<ul>
-<li>May 27 2014<br>
+<li>October 16 2016<br>
+ The <a href="download.html">XML Security Library 1.2.23</a> release includes the following changes:
+ <ul>
+ <li>Full support for OpenSSL 1.1.0.</li>
+ <li>Several other small fixes (<a href="https://github.com/lsh123/xmlsec/commits/master">more details</a>).</li>
+ </ul>
+</li>
+<br><li>April 20 2016<br>
+ The <a href="download.html">XML Security Library 1.2.22</a> release includes the following changes:
+ <ul>
+ <li>Restored SOAP parser to support backward compatibility for Lasso project.</li>
+ </ul>
+</li>
+<br><li>April 12 2016<br>
+ The <a href="download.html">XML Security Library 1.2.21</a> release includes the following changes:
+ <ul>
+ <li>Added OOXML Relationships Transform Algorithm (patch from <a href="https://github.com/vmiklos">Miklos Vajna</a>).</li>
+ <li>Added experimental GOST2012 support for xmlsec-openssl (patch from Nikolay Shaplov).</li>
+ <li>Migrated XMLSec to <a href="https://github.com/lsh123/xmlsec">GitHub</a>.</li>
+ <li>Added OpenSSL 1.1.0 (pre 2) API support (major re-factoring for all OpenSSL based implementations of the
+ block ciphers and the DSA/ECDSA signatures).</li>
+ <li>Removed support for legacy OpenSSL 0.9.6 (last release: March, 2004) and 0.9.7 (last release: February, 2007).</li>
+ <li>Completely revamped manpages/documentation build to completely pass 'make distcheck' tests.</li>
+ <li>Deprecated XMLSEC_CRYPTO define in favor of xmlSecGetDefaultCrypto() function.</li>
+ <li>Implemented several other smaller features; fixed several other minor bugs, code cleanups:
+ (<a href="https://github.com/lsh123/xmlsec/commits/master">more details</a>).</li>
+ </ul>
+</li>
+<br><li>Jan 28 2016<br>
+ The XML Security Library was migrated to <a href="https://github.com/lsh123/xmlsec">GitHub</a>. Please use GitHub for
+ accessing source code and reporting issues.
+</li>
+<br><li>May 27 2014<br>
The <a href="download.html">XML Security Library 1.2.20</a> release fixes a number of miscellaneous bugs and
updates expired or soon-to-be-expired certificates in the test suite.
</li>
-<li>March 24 2013<br>
+<br><li>March 24 2013<br>
The <a href="download.html">XML Security Library 1.2.19</a> release adds support for DSA-SHA256, ECDSA-SHA1,
ECDSA-SHA224, ECDSA-SHA256, ECDSA-SHA384, ECDSA-SHA512 and fixes a number of miscellaneous bugs.
</li>
@@ -100,7 +183,7 @@
LTDL library on Linux/Unix and native calls on Windows to fix
<a href="https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2009-3736">security
issue</a> in LTDL.</li>
- <li>Fixed minor bugs (see <a href="http://git.gnome.org/cgit/xmlsec/log/">log</a>
+ <li>Fixed minor bugs (see <a href="https://github.com/lsh123/xmlsec/commits/master">commits log</a>
for complete list).</li>
</ul>
</li>
diff --git a/docs/related.html b/docs/related.html
index fe895c4..50bdf5d 100644
--- a/docs/related.html
+++ b/docs/related.html
@@ -2,8 +2,59 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>XML Security Library: Related</title>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -137,7 +188,7 @@ group</a>).<br>
Markup Language (XML) 1.0 Specification</a>.</li>
<li> <a href="http://www.w3.org/TR/REC-xml-names/">Namespaces
in XML</a>.</li>
- <li> <a id="xpath" href="http://www.w3.org/TR/xpath" name="xpath">XML Path Language (XPath) Version 1.0</a>.</li>
+ <li> <a href="http://www.w3.org/TR/xpath">XML Path Language (XPath) Version 1.0</a>.</li>
<li> <a href="http://www.w3.org/TR/WD-xptr">XML Pointer
language (XPointer)</a>.</li>
</ul>
diff --git a/docs/xmldsig-verifier.html b/docs/xmldsig-verifier.html
index bf78828..52389a0 100644
--- a/docs/xmldsig-verifier.html
+++ b/docs/xmldsig-verifier.html
@@ -2,8 +2,59 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>XML Security Library: XML Digital Signature Online Verifier</title>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -50,7 +101,7 @@ cgi script that demonstrates how to use XML Security Library in real application
<h4>Copy/Paste the Signed XML Document in the input field below:</h4>
Please note that <b>all</b> white spaces and carriage returns are <b>significant</b>.
- <form action="http://www.aleksey.com/cgi-bin/xmldsigverify" method="POST">
+ <form action="https://www.aleksey.com/cgi-bin/xmldsigverify" method="POST">
<center>
<table width="85%">
<tr><td>
diff --git a/docs/xmldsig.html b/docs/xmldsig.html
index 4e00886..da31c35 100644
--- a/docs/xmldsig.html
+++ b/docs/xmldsig.html
@@ -2,8 +2,59 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>XML Security Library: XML Digital Signature</title>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
diff --git a/docs/xmlenc.html b/docs/xmlenc.html
index 415e110..182449e 100644
--- a/docs/xmlenc.html
+++ b/docs/xmlenc.html
@@ -2,8 +2,59 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>XML Security Library: XML Encryption</title>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
diff --git a/docs/xmlsec-man.html b/docs/xmlsec-man.html
index 31bb12e..c11000a 100644
--- a/docs/xmlsec-man.html
+++ b/docs/xmlsec-man.html
@@ -1,9 +1,32 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Manpage of XMLSEC1</title>
+<title>Man page of XMLSEC1</title>
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
-<body><table witdh="100%" valign="top"><tr valign="top">
+<body><table width="100%" valign="top"><tr valign="top">
<td valign="top" align="left" width="210">
<img src="images/logo.gif" alt="XML Security Library" border="0"><p></p>
<ul>
@@ -44,12 +67,11 @@
</td>
<td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
<h1>XMLSEC1</h1>
-<br><br><a href="#index">Index</a><a href="http://localhost/cgi-bin/man/man2html">Return to Main Contents</a><hr>
+<br><br><a href="#index">Index</a><a href="/cgi-bin/man/man2html">Return to Main Contents</a><hr>
<a name="lbAB"> </a><h2>NAME</h2>
<a name="lbAC"> </a><h2>SYNOPSIS</h2>
-<b>xmlsec</b><i><command> </i><i><options></i><i><files></i><a name="lbAD"> </a><h2>DESCRIPTION</h2>
-<dl compact>
-<dt><b>--help</b></dt>
+<b>xmlsec</b><i>,<command> /</i><i>,<options>/</i><i>,<files>/</i><a name="lbAD"> </a><h2>DESCRIPTION</h2>
+<dl compact> <dt><b>--help</b></dt>
<dd> display this help information and exit </dd>
<dt><b>--help-all</b></dt>
<dd> display help information for all commands/options and exit </dd>
@@ -72,8 +94,7 @@
<dd> decrypt data from XML document </dd>
</dl>
<a name="lbAE"> </a><h2>OPTIONS</h2>
-<dl compact>
-<dt> <b>--ignore-manifests</b> <dt></dt>
+<dl compact> <dt> <b>--ignore-manifests</b> <dt></dt>
</dt>
<dd> <dd>do not process <dsig:Manifest> elements </dd>
</dd>
@@ -265,11 +286,10 @@
<a name="lbAF"> </a><h2>AUTHOR</h2>
<a href="mailto:aleksey at aleksey.com">aleksey at aleksey.com</a><a name="lbAG"> </a><h2>REPORTING BUGS</h2>
<a href="http://www.aleksey.com/xmlsec/bugs.html">http://www.aleksey.com/xmlsec/bugs.html</a><a name="lbAH"> </a><h2>COPYRIGHT</h2>
-<br><p> </p>
+<a href="mailto:aleksey at aleksey.com">aleksey at aleksey.com</a><br><p> </p>
<hr>
<a name="index"> </a><h2>Index</h2>
-<dl>
-<dt><a href="#lbAB">NAME</a></dt>
+<dl> <dt><a href="#lbAB">NAME</a></dt>
<dd> </dd>
<dt><a href="#lbAC">SYNOPSIS</a></dt>
<dd> </dd>
@@ -285,7 +305,7 @@
<dd> </dd>
</dl>
<hr>
-<a href="http://localhost/cgi-bin/man/man2html">man2html</a><br>
+<a href="/cgi-bin/man/man2html">man2html</a><br>
</td></tr></table></td>
</tr></table></body>
</html>
diff --git a/docs/xmlsec.xsl b/docs/xmlsec.xsl
index 4cf2aa9..e7ca9cd 100644
--- a/docs/xmlsec.xsl
+++ b/docs/xmlsec.xsl
@@ -34,9 +34,32 @@
<html>
<head>
<xsl:copy-of select="//head/*" />
+<style type="text/css">
+table.CALSTABLE > tbody > tr:nth-child(1) > td:nth-child(1) {
+ width: 20em;
+}
+.synopsis, .classsynopsis {
+ background: #eeeeee;
+ border: solid 1px #aaaaaa;
+}
+.programlisting {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation {
+ background: #eeeeee;
+ border: solid 1px #000000;
+}
+.navigation a {
+ color: initial;
+}
+.navigation a:visited {
+ color: initial;
+}
+</style>
</head>
<body>
-<table witdh="100%" valign="top">
+<table width="100%" valign="top">
<tr valign="top">
<!-- top navigation menu start -->
<td valign="top" align="left" width="210">
diff --git a/examples/Makefile b/examples/Makefile
index a237b98..89b1d61 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -6,8 +6,7 @@ PROGRAMS = \
verify1 verify2 verify3 verify4 \
encrypt1 encrypt2 encrypt3 \
decrypt1 decrypt2 decrypt3 \
- xmldsigverify \
- xkms-server
+ xmldsigverify
CC = gcc
CFLAGS += -g $(shell xmlsec1-config --cflags) -DUNIX_SOCKETS
@@ -26,8 +25,8 @@ check: $(PROGRAMS)
./verify1 sign2-res.xml rsapub.pem
./verify2 sign1-res.xml rsapub.pem
./verify2 sign2-res.xml rsapub.pem
- ./verify3 sign3-res.xml rootcert.pem
- ./verify4 verify4-res.xml rootcert.pem
+ ./verify3 sign3-res.xml ca2cert.pem cacert.pem
+ ./verify4 verify4-res.xml ca2cert.pem cacert.pem
./encrypt1 encrypt1-tmpl.xml deskey.bin
./encrypt2 encrypt2-doc.xml deskey.bin
./encrypt3 encrypt3-doc.xml rsakey.pem
diff --git a/examples/Makefile.w32 b/examples/Makefile.w32
index ee81ab3..b7c5723 100644
--- a/examples/Makefile.w32
+++ b/examples/Makefile.w32
@@ -1,12 +1,11 @@
# Makefile for xmlsec, specific for Windows, MSVC and NMAKE.
#
# Take a look at the beginning and modify the variables to suit your
-# environment. Having done that, you can do a
-
-XMLSEC_STATIC = yes
-XMLSEC_CRYPTO = openssl
-XMLSEC_CFLAGS =
-XMLSEC_LIBS =
+# environment.
+XMLSEC_STATIC = yes
+XMLSEC_DEFAULT_CRYPTO = openssl
+XMLSEC_CFLAGS =
+XMLSEC_LIBS =
# There should never be a need to modify anything below this line.
XMLSEC_OBJS_DIR = build
@@ -24,23 +23,22 @@ XMLSEC_EXAMPLES = \
$(XMLSEC_OBJS_DIR)\decrypt1.exe \
$(XMLSEC_OBJS_DIR)\decrypt2.exe \
$(XMLSEC_OBJS_DIR)\decrypt3.exe \
- $(XMLSEC_OBJS_DIR)\xkms-server.exe \
#
-!IF "$(XMLSEC_CRYPTO)" == "openssl"
-XMLSEC_CFLAGS = $(XMLSEC_CFLAGS) /D "XMLSEC_CRYPTO_OPENSSL" /D "XMLSEC_CRYPTO=\"openssl\""
+!IF "$(XMLSEC_DEFAULT_CRYPTO)" == "openssl"
+XMLSEC_CFLAGS = $(XMLSEC_CFLAGS) /D "XMLSEC_CRYPTO_OPENSSL" /D "XMLSEC_DEFAULT_CRYPTO=\"openssl\""
XMLSEC_SOLIBS = libxmlsec-openssl.lib libeay32.lib wsock32.lib user32.lib gdi32.lib
XMLSEC_ALIBS = libxmlsec-openssl_a.lib libeay32.lib wsock32.lib user32.lib gdi32.lib
!ENDIF
-!IF "$(XMLSEC_CRYPTO)" == "nss"
-XMLSEC_CFLAGS = $(XMLSEC_CFLAGS) /D "XMLSEC_CRYPTO_NSS" /D "XMLSEC_CRYPTO=\"nss\""
+!IF "$(XMLSEC_DEFAULT_CRYPTO)" == "nss"
+XMLSEC_CFLAGS = $(XMLSEC_CFLAGS) /D "XMLSEC_CRYPTO_NSS" /D "XMLSEC_DEFAULT_CRYPTO=\"nss\""
XMLSEC_SOLIBS = libxmlsec-nss.lib nss3.lib nspr4.lib plds4.lib plc4.lib
XMLSEC_ALIBS = libxmlsec-nss_a.lib nss3.lib nspr4.lib plds4.lib plc4.lib
!ENDIF
-!IF "$(XMLSEC_CRYPTO)" == "mscrypto"
-XMLSEC_CFLAGS = $(XMLSEC_CFLAGS) /D "XMLSEC_CRYPTO_MSCRYPTO" /D "XMLSEC_CRYPTO=\"mscrypto\""
+!IF "$(XMLSEC_DEFAULT_CRYPTO)" == "mscrypto"
+XMLSEC_CFLAGS = $(XMLSEC_CFLAGS) /D "XMLSEC_CRYPTO_MSCRYPTO" /D "XMLSEC_DEFAULT_CRYPTO=\"mscrypto\""
XMLSEC_SOLIBS = libxmlsec-mscrypto.lib user32.lib gdi32.lib crypt32.lib advapi32.lib
XMLSEC_ALIBS = libxmlsec-mscrypto_a.lib user32.lib gdi32.lib crypt32.lib advapi32.lib
!ENDIF
diff --git a/examples/README b/examples/README
index dbdaf7a..efbe0b2 100644
--- a/examples/README
+++ b/examples/README
@@ -3,42 +3,43 @@ This folder contains XML Security Library examples.
1. Files List
-------------------------
- README This file.
- Makefile *nix makefile.
- Makefile.w32 Win32 makefile.
- rsakey.pem Private PEM key file
- rsapub.pem Public PEM key file
- rsacert.pem Certificate for rsakey.pem signed with rootcert.pem
- rootcert.pem Root (trusted) certificate
- deskey.bin A DES keys
- sign1.c Signing with a template file
- sign1-tmpl.xml An example template file for sign1 example
- sign1-res.xml The result of processing sign1_tmpl.xml by sign1.c
- sign2.c Signing a file with a dynamicaly created template
- sign2-doc.xml An example XML file for signing by sign2.c
- sign2-res.xml The result of signing sign2-doc.xml by sign2.c
- sign3.c Signing a file with a dynamicaly created template and an X509 certificate
- sign3-doc.xml An example XML file for signing by sign3.c
- sign3-res.xml The result of signing sign3-doc.xml by sign3.c
- verify1.c Verifying a signed document with a single key
- verify2.c Verifying a signed document using keys manager
- verify3.c Verifying a signed document using X509 certificate
- verify4.c Verifying a simple SAML response using X509 certificate
- verify4-tmpl.xml An example template file with a simple SAML response for verify4 example
- verify4-res.xml Signed simple SAML response for verification by verify4.c
- encrypt1.c Encrypting binary data with a template file
- encrypt1-res.xml An example template file for encrypt1.c
- encrypt1-tmpl.xml The result of processing encrypt1_tmpl.xml by encrypt1.c
- encrypt2.c Encrypting XML file using a dynamicaly created template
- encrypt2-doc.xml An example XML file for encryption by encrypt2.c
- encrypt2-res.xml The result of encryptin encrypt2-doc.xml by encrypt2.c
- encrypt2.c Encrypting XML file using a session DES key
- encrypt2-doc.xml An example XML file for encryption by encrypt3.c
- encrypt2-res.xml The result of encryptin encrypt3-doc.xml by encrypt3.c
- decrypt1.c Decrypting binary data using a single key
- decrypt2.c Decrypting binary data using keys manager
- decrypt3.c Decrypting binary file using custom keys manager
- xmldsigverify.c CGI script for signatures verifications
+ README This file.
+ Makefile *nix makefile.
+ Makefile.w32 Win32 makefile.
+ cacert.pem Root (trusted) certificate
+ ca2cert.pem CA (trusted) certificate (signed with cacert.pem)
+ rsakey.pem Private PEM key file
+ rsapub.pem Public PEM key file
+ rsacert.pem Certificate for rsakey.pem signed with ca2cert.pem
+ deskey.bin A DES keys
+ sign1.c Signing with a template file
+ sign1-tmpl.xml An example template file for sign1 example
+ sign1-res.xml The result of processing sign1_tmpl.xml by sign1.c
+ sign2.c Signing a file with a dynamicaly created template
+ sign2-doc.xml An example XML file for signing by sign2.c
+ sign2-res.xml The result of signing sign2-doc.xml by sign2.c
+ sign3.c Signing a file with a dynamicaly created template and an X509 certificate
+ sign3-doc.xml An example XML file for signing by sign3.c
+ sign3-res.xml The result of signing sign3-doc.xml by sign3.c
+ verify1.c Verifying a signed document with a single key
+ verify2.c Verifying a signed document using keys manager
+ verify3.c Verifying a signed document using X509 certificate
+ verify4.c Verifying a simple SAML response using X509 certificate
+ verify4-tmpl.xml An example template file with a simple SAML response for verify4 example
+ verify4-res.xml Signed simple SAML response for verification by verify4.c
+ encrypt1.c Encrypting binary data with a template file
+ encrypt1-res.xml An example template file for encrypt1.c
+ encrypt1-tmpl.xml The result of processing encrypt1_tmpl.xml by encrypt1.c
+ encrypt2.c Encrypting XML file using a dynamicaly created template
+ encrypt2-doc.xml An example XML file for encryption by encrypt2.c
+ encrypt2-res.xml The result of encryptin encrypt2-doc.xml by encrypt2.c
+ encrypt2.c Encrypting XML file using a session DES key
+ encrypt2-doc.xml An example XML file for encryption by encrypt3.c
+ encrypt2-res.xml The result of encryptin encrypt3-doc.xml by encrypt3.c
+ decrypt1.c Decrypting binary data using a single key
+ decrypt2.c Decrypting binary data using keys manager
+ decrypt3.c Decrypting binary file using custom keys manager
+ xmldsigverify.c CGI script for signatures verifications
2. Building Examples
-------------------------
@@ -70,57 +71,44 @@ Other platforms:
The following are just examples and you can use the programs from this
folder with any other input files:
- ./sign1 sign1-tmpl.xml rsakey.pem
- ./sign2 sign2-doc.xml rsakey.pem
- ./sign3 sign3-doc.xml rsakey.pem rsacert.pem
-
- ./verify1 sign1-res.xml rsapub.pem
- ./verify1 sign2-res.xml rsapub.pem
- ./verify2 sign1-res.xml rsapub.pem
- ./verify2 sign2-res.xml rsapub.pem
- ./verify3 sign3-res.xml ca2cert.pem cacert.pem
- ./verify4 verify4-res.xml ca2cert.pem cacert.pem
-
- ./encrypt1 encrypt1-tmpl.xml deskey.bin
- ./encrypt2 encrypt2-doc.xml deskey.bin
- ./encrypt3 encrypt3-doc.xml rsakey.pem
-
- ./decrypt1 encrypt1-res.xml deskey.bin
- ./decrypt1 encrypt2-res.xml deskey.bin
- ./decrypt2 encrypt1-res.xml deskey.bin
- ./decrypt2 encrypt2-res.xml deskey.bin
- ./decrypt3 encrypt1-res.xml
- ./decrypt3 encrypt2-res.xml
- ./decrypt3 encrypt3-res.xml
+ ./sign1 sign1-tmpl.xml rsakey.pem
+ ./sign2 sign2-doc.xml rsakey.pem
+ ./sign3 sign3-doc.xml rsakey.pem rsacert.pem
+
+ ./verify1 sign1-res.xml rsapub.pem
+ ./verify1 sign2-res.xml rsapub.pem
+ ./verify2 sign1-res.xml rsapub.pem
+ ./verify2 sign2-res.xml rsapub.pem
+ ./verify3 sign3-res.xml ca2cert.pem cacert.pem
+ ./verify4 verify4-res.xml ca2cert.pem cacert.pem
+
+ ./encrypt1 encrypt1-tmpl.xml deskey.bin
+ ./encrypt2 encrypt2-doc.xml deskey.bin
+ ./encrypt3 encrypt3-doc.xml rsakey.pem
+
+ ./decrypt1 encrypt1-res.xml deskey.bin
+ ./decrypt1 encrypt2-res.xml deskey.bin
+ ./decrypt2 encrypt1-res.xml deskey.bin
+ ./decrypt2 encrypt2-res.xml deskey.bin
+ ./decrypt3 encrypt1-res.xml
+ ./decrypt3 encrypt2-res.xml
+ ./decrypt3 encrypt3-res.xml
4. Using xmlsec command line tool.
-------------------------
-For Windows, use "xmlsec" instead of "xmlsec1".
- xmlsec1 sign --privkey rsakey.pem --output sign1.xml sign1-tmpl.xml
- xmlsec1 verify --pubkey rsapub.pem sign1.xml
- xmlsec1 verify --pubkey rsapub.pem sign1-res.xml
- xmlsec1 verify --pubkey rsapub.pem sign2-res.xml
- xmlsec1 verify --trusted ca2cert.pem --trusted cacert.pem sign3-res.xml
- xmlsec1 verify --trusted ca2cert.pem --trusted cacert.pem verify4-res.xml
-
- xmlsec1 encrypt --deskey deskey.bin --binary-data binary.dat --output encrypt1.xml encrypt1-tmpl.xml
+For Windows, use "xmlsec" instead of "xmlsec1":
+
+ xmlsec1 sign --privkey rsakey.pem --output sign1.xml sign1-tmpl.xml
+ xmlsec1 verify --pubkey rsapub.pem sign1.xml
+ xmlsec1 verify --pubkey rsapub.pem sign1-res.xml
+ xmlsec1 verify --pubkey rsapub.pem sign2-res.xml
+ xmlsec1 verify --trusted ca2cert.pem --trusted cacert.pem sign3-res.xml
+ xmlsec1 verify --trusted ca2cert.pem --trusted cacert.pem verify4-res.xml
+
+ xmlsec1 encrypt --deskey deskey.bin --binary-data binary.dat --output encrypt1.xml encrypt1-tmpl.xml
xmlsec1 decrypt --deskey deskey.bin encrypt1.xml
- xmlsec1 decrypt --deskey deskey.bin encrypt1-res.xml
- xmlsec1 decrypt --deskey deskey.bin encrypt2-res.xml
- xmlsec1 decrypt --privkey rsakey.pem encrypt3-res.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ xmlsec1 decrypt --deskey deskey.bin encrypt1-res.xml
+ xmlsec1 decrypt --deskey deskey.bin encrypt2-res.xml
+ xmlsec1 decrypt --privkey rsakey.pem encrypt3-res.xml
+
diff --git a/examples/decrypt1.c b/examples/decrypt1.c
index 39ad103..881eb94 100644
--- a/examples/decrypt1.c
+++ b/examples/decrypt1.c
@@ -13,7 +13,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -89,7 +89,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/examples/decrypt2.c b/examples/decrypt2.c
index 49513e1..c07e988 100644
--- a/examples/decrypt2.c
+++ b/examples/decrypt2.c
@@ -14,7 +14,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -92,7 +92,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/examples/decrypt3.c b/examples/decrypt3.c
index 253920f..a137133 100644
--- a/examples/decrypt3.c
+++ b/examples/decrypt3.c
@@ -15,7 +15,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -94,7 +94,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/examples/encrypt1.c b/examples/encrypt1.c
index fb4d103..ef13248 100644
--- a/examples/encrypt1.c
+++ b/examples/encrypt1.c
@@ -15,7 +15,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -91,7 +91,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/examples/encrypt2.c b/examples/encrypt2.c
index 4f1ad58..cda3447 100644
--- a/examples/encrypt2.c
+++ b/examples/encrypt2.c
@@ -16,7 +16,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -92,7 +92,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/examples/encrypt3-res.xml b/examples/encrypt3-res.xml
index bcf7439..2fca87e 100644
--- a/examples/encrypt3-res.xml
+++ b/examples/encrypt3-res.xml
@@ -1,27 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-XML Security Library example: XML doc file encrypted with a session DES key (encrypt3 example).
+XML Security Library example: Original XML doc file before encryption (encrypt3 example).
-->
<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
-<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
+<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>rsakey.pem</KeyName>
</KeyInfo>
<CipherData>
-<CipherValue>IPiEu9Nv+EsGyvVeXO9nl5iZhhi+uzQH1I3/DTs3+eamBvioyaawRIlvTql7LYL5
-Mi91Qs8ozfW/fWZ8zB8AE2PosaX37SqiuEta68+65/Ed4v1rkGN0Awux8+gJqJmp
-c2kJhzAoQIAIGAW4nTGP9tl9QUHfwKh2KPA104vezk70ijvF7TrbTmhdfmULAuWK
-Tbsg8sXAPhGmPh5KckM2Xe387iPh4ue2+2TGdWqwXygVdvIUIbcIMq6F+/mWlcmf
-Gs5FVI7CTjaLmeyO4ho+FGmicmqH2hEkZW0a2ktDh4BU/MxYF6L7oayrVWDGp2IH
-dzQAwUT2qJcFjElO8xUz3g==</CipherValue>
+<CipherValue>QYYKljhcX20QyP20hYmq8CSES875oIdbrsjMOxnb0VnYDn01Jk00OIPpb9gdIdZg
+MLOtSy26mWrQ+XqfPGuyaA==</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
-<CipherValue>xrfPSA+BEI+8ca23RN34gtee5lOMx8Cn+ZGWyxitiktdZ1+XREH+57li63VutCwp
-s6ifbZgXIBsFdxPpMBUFlyTWAAO+NLooIwGoczXi14z62lHr7Ck6FA==</CipherValue>
+<CipherValue>+UiDv73SE8K8KwXuOmHLHK7N2hNWDakTAEu6NprbCdULC1w/LXT9FLtNRJetmwwO
+XpBqTY56AAMeMgpxPWN3SPO0ETeQw7pR+bp0IjUvcGlFSXz6yE1qgQ==</CipherValue>
</CipherData>
</EncryptedData>
diff --git a/examples/encrypt3.c b/examples/encrypt3.c
index aa9465a..cf2882d 100644
--- a/examples/encrypt3.c
+++ b/examples/encrypt3.c
@@ -16,7 +16,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -94,7 +94,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/examples/mywin32make.bat b/examples/mywin32make.bat
index a7d2280..b837a36 100644
--- a/examples/mywin32make.bat
+++ b/examples/mywin32make.bat
@@ -3,7 +3,7 @@ REM
REM This is my personal configuration file.
REM I am lazy to type all this crap again and again
REM You are welcome to customize this file for your
-REM needs but do not check it into the CVS, please.
+REM needs but do not check it into the GitHub, please.
REM
REM Aleksey Sanin <aleksey at aleksey.com>
REM
diff --git a/examples/sign1.c b/examples/sign1.c
index e545843..050211c 100644
--- a/examples/sign1.c
+++ b/examples/sign1.c
@@ -15,7 +15,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -90,7 +90,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/examples/sign2.c b/examples/sign2.c
index 146bbba..2e05dfa 100644
--- a/examples/sign2.c
+++ b/examples/sign2.c
@@ -17,7 +17,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -93,7 +93,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/examples/sign3.c b/examples/sign3.c
index 9d16cf7..1fcf5d7 100644
--- a/examples/sign3.c
+++ b/examples/sign3.c
@@ -16,12 +16,12 @@
* ./sign3 sign3-doc.xml rsakey.pem rsacert.pem > sign3-res.xml
*
* The result signature could be validated using verify3 example:
- * ./verify3 sign3-res.xml rootcert.pem
+ * ./verify3 sign3-res.xml ca2cert.pem cacert.pem
*
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -97,7 +97,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
@@ -158,6 +158,7 @@ sign_file(const char* xml_file, const char* key_file, const char* cert_file) {
xmlNodePtr signNode = NULL;
xmlNodePtr refNode = NULL;
xmlNodePtr keyInfoNode = NULL;
+ xmlNodePtr x509DataNode = NULL;
xmlSecDSigCtxPtr dsigCtx = NULL;
int res = -1;
@@ -204,11 +205,22 @@ sign_file(const char* xml_file, const char* key_file, const char* cert_file) {
goto done;
}
- if(xmlSecTmplKeyInfoAddX509Data(keyInfoNode) == NULL) {
+ x509DataNode = xmlSecTmplKeyInfoAddX509Data(keyInfoNode);
+ if(x509DataNode == NULL) {
fprintf(stderr, "Error: failed to add X509Data node\n");
goto done;
}
+ if(xmlSecTmplX509DataAddSubjectName(x509DataNode) == NULL) {
+ fprintf(stderr, "Error: failed to add X509SubjectName node\n");
+ goto done;
+ }
+
+ if(xmlSecTmplX509DataAddCertificate(x509DataNode) == NULL) {
+ fprintf(stderr, "Error: failed to add X509Certificate node\n");
+ goto done;
+ }
+
/* create signature context, we don't need keys manager in this example */
dsigCtx = xmlSecDSigCtxCreate(NULL);
if(dsigCtx == NULL) {
diff --git a/examples/verify1.c b/examples/verify1.c
index 04917e5..182da2d 100644
--- a/examples/verify1.c
+++ b/examples/verify1.c
@@ -13,7 +13,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -88,7 +88,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/examples/verify2.c b/examples/verify2.c
index 36fde2d..f7a8476 100644
--- a/examples/verify2.c
+++ b/examples/verify2.c
@@ -13,7 +13,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -91,7 +91,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/examples/verify3.c b/examples/verify3.c
index 5f0666b..7f80bb5 100644
--- a/examples/verify3.c
+++ b/examples/verify3.c
@@ -10,12 +10,12 @@
* verify3 <signed-file> <trusted-cert-pem-file1> [<trusted-cert-pem-file2> [...]]
*
* Example:
- * ./verify3 sign3-res.xml rootcert.pem
+ * ./verify3 sign3-res.xml ca2cert.pem cacert.pem
*
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -92,7 +92,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/examples/verify4.c b/examples/verify4.c
index f55f58c..e438d74 100644
--- a/examples/verify4.c
+++ b/examples/verify4.c
@@ -13,17 +13,17 @@
* verify4 <signed-file> <trusted-cert-pem-file1> [<trusted-cert-pem-file2> [...]]
*
* Example (sucecess):
- * ./verify4 verify4-res.xml rootcert.pem
+ * ./verify4 verify4-res.xml ca2cert.pem cacert.pem
*
* Example (failure):
- * ./verify4 verify4-bad-res.xml rootcert.pem
+ * ./verify4 verify4-bad-res.xml ca2cert.pem cacert.pem
* In the same time, verify3 example successfuly verifies this signature:
- * ./verify3 verify4-bad-res.xml rootcert.pem
+ * ./verify3 verify4-bad-res.xml ca2cert.pem cacert.pem
*
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -100,7 +100,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/examples/xkms-server.c b/examples/xkms-server.c
deleted file mode 100644
index 188d5c7..0000000
--- a/examples/xkms-server.c
+++ /dev/null
@@ -1,839 +0,0 @@
-/**
- * XML Security Library example: simple XKMS server
- *
- * Starts XKMS server on specified port.
- *
- * Usage:
- * ./xkms-server [--port <port>] [--format plain|soap-1.1|soap-1.2] <keys-file>
- *
- * Example:
- * ./xkms-server --port 8080 --format soap-1.1 keys.xml
- *
- * This is free software; see Copyright file in the source
- * distribution for preciese wording.
- *
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
- */
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-#include <errno.h>
-
-#ifdef XMLSEC_NO_XKMS
-
-int main(int argc, char** argv) {
- fprintf(stderr, "ERROR: XKMS is disabled.\n");
- return 1;
-}
-
-#else /* XMLSEC_NO_XKMS */
-
-#include <libxml/tree.h>
-#include <libxml/xmlmemory.h>
-#include <libxml/parser.h>
-
-#ifndef XMLSEC_NO_XSLT
-#include <libxslt/xslt.h>
-#include <libxslt/security.h>
-#endif /* XMLSEC_NO_XSLT */
-
-#include <xmlsec/xmlsec.h>
-#include <xmlsec/xmltree.h>
-#include <xmlsec/buffer.h>
-#include <xmlsec/xkms.h>
-#include <xmlsec/crypto.h>
-
-#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
-#include <xmlsec/app.h>
-#endif /* XMLSEC_CRYPTO_DYNAMIC_LOADING */
-
-#ifdef UNIX_SOCKETS
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <arpa/inet.h>
-#include <netinet/tcp.h>
-#include <netdb.h>
-#include <fcntl.h>
-#include <signal.h>
-#else /* UNIX_SOCKETS */
-#ifdef WIN32_SOCKETS
-#include <windows.h>
-#include <winsock.h>
-#else /* WIN32_SOCKETS */
-#error "Your operating system is not supported"
-#endif /* WIN32_SOCKETS */
-#endif /* UNIX_SOCKETS */
-
-#define DEFAULT_PORT 1234
-#define PENDING_QUEUE_SIZE 100
-
-#define LOG_LEVEL_SILENT 0
-#define LOG_LEVEL_INFO 1
-#define LOG_LEVEL_DATA 2
-#define LOG_LEVEL_DEBUG 3
-
-#ifdef UNIX_SOCKETS
-static int sockfd = -1;
-#endif /* UNIX_SOCKETS */
-
-#ifdef WIN32_SOCKETS
-static SOCKET sockfd = -1;
-#endif /* WIN32_SOCKETS */
-
-static int finished = 0;
-static int log_level = LOG_LEVEL_INFO;
-
-static int init_server(unsigned short port);
-static void stop_server();
-static void int_signal_handler(int sig_num);
-static const xmlChar* my_strnstr(const xmlChar* str, xmlSecSize strLen, const xmlChar* tmpl, xmlSecSize tmplLen);
-
-static int handle_connection(int fd, xmlSecXkmsServerCtxPtr xkmsCtx, xmlSecXkmsServerFormat format);
-static int read_request(int fd, const char* in_ip, xmlSecBufferPtr buffer);
-static int send_response(int fd, const char* in_ip, int resp_code,
- const char* body, int body_size);
-
-static char usage[] = "[--port <port>] [--format plain|soap-1.1|soap-1.2] <keys-file>";
-static char http_header[] =
- "HTTP/1.0 %d\n"
- "Server: XML Security Library: Simple XKMS Server/1.0\n"
- "Content-length: %d\n"
- "\n";
-static char http_503[] =
- "Error 503 - Service Unavailable\n";
-
-int main(int argc, char** argv) {
- int argpos;
- unsigned short port = DEFAULT_PORT;
-#ifndef XMLSEC_NO_XSLT
- xsltSecurityPrefsPtr xsltSecPrefs = NULL;
-#endif /* XMLSEC_NO_XSLT */
- xmlSecKeysMngrPtr mngr = NULL;
- xmlSecXkmsServerCtxPtr xkmsCtx = NULL;
- xmlSecXkmsServerFormat format = xmlSecXkmsServerFormatPlain;
- int ret;
-
- fprintf(stdout, "Log: server is starting up\n");
-
- /* Init libxml and libxslt libraries */
- xmlInitParser();
- LIBXML_TEST_VERSION
- xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
- xmlSubstituteEntitiesDefault(1);
-#ifndef XMLSEC_NO_XSLT
- xmlIndentTreeOutput = 1;
-#endif /* XMLSEC_NO_XSLT */
-
- /* Init libxslt */
-#ifndef XMLSEC_NO_XSLT
- /* disable everything */
- xsltSecPrefs = xsltNewSecurityPrefs();
- xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_FILE, xsltSecurityForbid);
- xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_FILE, xsltSecurityForbid);
- xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_CREATE_DIRECTORY, xsltSecurityForbid);
- xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_NETWORK, xsltSecurityForbid);
- xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_NETWORK, xsltSecurityForbid);
- xsltSetDefaultSecurityPrefs(xsltSecPrefs);
-#endif /* XMLSEC_NO_XSLT */
-
- /* Init xmlsec library */
- if(xmlSecInit() < 0) {
- fprintf(stderr, "Error %d: xmlsec initialization failed.\n", errno);
- return(-1);
- }
-
- /* Check loaded library version */
- if(xmlSecCheckVersion() != 1) {
- fprintf(stderr, "Error %d: loaded xmlsec library version is not compatible.\n", errno);
- return(-1);
- }
-
- /* Load default crypto engine if we are supporting dynamic
- * loading for xmlsec-crypto libraries. Use the crypto library
- * name ("openssl", "nss", etc.) to load corresponding
- * xmlsec-crypto library.
- */
-#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
- fprintf(stderr, "Error %d: unable to load default xmlsec-crypto library. Make sure\n"
- "that you have it installed and check shared libraries path\n"
- "(LD_LIBRARY_PATH) envornment variable.\n", errno);
- return(-1);
- }
-#endif /* XMLSEC_CRYPTO_DYNAMIC_LOADING */
-
- /* Init crypto library */
- if(xmlSecCryptoAppInit(NULL) < 0) {
- fprintf(stderr, "Error %d: crypto initialization failed.\n", errno);
- return(-1);
- }
-
- /* Init xmlsec-crypto library */
- if(xmlSecCryptoInit() < 0) {
- fprintf(stderr, "Error %d: xmlsec-crypto initialization failed.\n", errno);
- return(-1);
- }
-
- /* Create and initialize keys manager */
- mngr = xmlSecKeysMngrCreate();
- if(mngr == NULL) {
- fprintf(stderr, "Error %d: failed to create keys manager.\n", errno);
- goto done;
- }
- if(xmlSecCryptoAppDefaultKeysMngrInit(mngr) < 0) {
- fprintf(stderr, "Error %d: failed to initialize keys manager.\n", errno);
- goto done;
- }
-
- /* Create XKMS server context */
- xkmsCtx = xmlSecXkmsServerCtxCreate(mngr);
- if(xkmsCtx == NULL) {
- fprintf(stderr, "Error %d: XKMS server context initialization failed\n", errno);
- goto done;
- }
-
- /* Process input parameters */
- for(argpos = 1; (argpos < argc) && (argv[argpos][0] == '-'); argpos++) {
- if((strcmp(argv[argpos], "--port") == 0) || (strcmp(argv[argpos], "-p") == 0)) {
- argpos++;
- port = atoi(argv[argpos]);
- if(port == 0) {
- fprintf(stderr, "Error %d: invalid port number \"%s\".\nUsage: %s %s\n", errno, argv[argpos], argv[0], usage);
- goto done;
- }
- } else if((strcmp(argv[argpos], "--format") == 0) || (strcmp(argv[argpos], "-f") == 0)) {
- argpos++;
- format = xmlSecXkmsServerFormatFromString(BAD_CAST argv[argpos]);
- if(format == xmlSecXkmsServerFormatUnknown) {
- fprintf(stderr, "Error %d: invalid format \"%s\".\nUsage: %s %s\n", errno, argv[argpos], argv[0], usage);
- goto done;
- }
- } else if((strcmp(argv[argpos], "--log-level") == 0) || (strcmp(argv[argpos], "-l") == 0)) {
- argpos++;
- log_level = atoi(argv[argpos]);
- } else {
- fprintf(stderr, "Error %d: unknown parameter \"%s\".\nUsage: %s %s\n", errno, argv[argpos], argv[0], usage);
- goto done;
- }
- }
- if(argpos >= argc) {
- fprintf(stderr, "Error %d: keys file is not specified.\nUsage: %s %s\n", errno, argv[0], usage);
- goto done;
- }
-
- /* Load keys */
- for(; argpos < argc; argpos++) {
- if(xmlSecCryptoAppDefaultKeysMngrLoad(mngr, argv[argpos]) < 0) {
- fprintf(stderr, "Error %d: failed to load xml keys file \"%s\".\nUsage: %s %s\n", errno, argv[argpos], argv[0], usage);
- goto done;
- }
- if(log_level >= LOG_LEVEL_INFO) {
- fprintf(stdout, "Log: loaded keys from \"%s\"\n", argv[argpos]);
- }
- }
-
- /* Startup TCP server */
- if(init_server(port) < 0) {
- fprintf(stderr, "Error, errno: server initialization failed\n", errno);
- goto done;
- }
- assert(sockfd != -1);
-
- /* main loop: accept connections and process requests */
- while(finished == 0) {
- fd_set fds;
- struct timeval timeout;
-
- /* Set up polling using select() */
- FD_ZERO(&fds);
- FD_SET(sockfd, &fds);
- memset(&timeout, 0, sizeof(timeout));
- timeout.tv_sec = 1;
- ret = select(sockfd + 1, &fds, NULL, NULL, &timeout);
- if((ret <= 0) || !FD_ISSET(sockfd, &fds)) {
- /* error, timed out or not our socket: try again */
- continue;
- }
-
- if(handle_connection(sockfd, xkmsCtx, format) < 0) {
- fprintf(stderr, "Error %d: unable to accept incomming connection\n");
- goto done;
- }
- }
-
-done:
- if(log_level >= LOG_LEVEL_INFO) {
- fprintf(stdout, "Log: server is shutting down\n");
- }
-
- /* Shutdown TCP server */
- stop_server();
-
- /* Destroy xkms server context */
- if(xkmsCtx != NULL) {
- xmlSecXkmsServerCtxDestroy(xkmsCtx);
- xkmsCtx = NULL;
- }
-
- /* Destroy keys manager */
- if(mngr != NULL) {
- xmlSecKeysMngrDestroy(mngr);
- mngr = NULL;
- }
-
- /* Shutdown xmlsec-crypto library */
- xmlSecCryptoShutdown();
-
- /* Shutdown crypto library */
- xmlSecCryptoAppShutdown();
-
- /* Shutdown xmlsec library */
- xmlSecShutdown();
-
- /* Shutdown libxslt/libxml */
-#ifndef XMLSEC_NO_XSLT
- xsltFreeSecurityPrefs(xsltSecPrefs);
- xsltCleanupGlobals();
-#endif /* XMLSEC_NO_XSLT */
- xmlCleanupParser();
-
- fprintf(stdout, "Log: server is down, bye!\n");
- return(0);
-}
-
-/**
- * init_server:
- * @port: the server'xmlSecBufferGetData(buffer) TCP port number.
- *
- * Starts up a TCP server listening on given @port.
- *
- * Returns 0 on success or a negative value if an error occurs.
- */
-static int
-init_server(unsigned short port) {
-#ifdef WIN32_SOCKETS
- WSADATA data;
-#endif /* WIN32_SOCKETS */
- struct sockaddr_in saddr;
- int flags;
-
-#ifdef WIN32_SOCKETS
- if(WSAStartup(MAKEWORD(1,1), &data)) {
- fprintf(stderr, "Error %d: WSAStartup() failed\n", errno);
- return(-1);
- }
-#endif /* WIN32_SOCKETS */
-
- /* create socket */
- sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
-#ifdef UNIX_SOCKETS
- if(sockfd == -1) {
-#endif /* UNIX_SOCKETS */
-
-#ifdef WIN32_SOCKETS
- if(sockfd == INVALID_SOCKET) {
-#endif /* WIN32_SOCKETS */
-
- fprintf(stderr, "Error %d: socket() failed\n", errno);
- return(-1);
- }
-
- /* enable reuse of address */
- flags = 1;
- if(setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *)&flags, sizeof(flags)) != 0) {
- fprintf(stderr, "Error %d: setsockopt(SO_REUSEADDR) failed\n", errno);
- return(-1);
- }
-
-#ifdef UNIX_SOCKETS
- /* set non-blocking */
- flags = fcntl(sockfd, F_GETFL);
- if(flags < 0) {
- fprintf(stderr, "Error %d: fcntl(F_GETFL) failed\n", errno);
- return(-1);
- }
- if(fcntl(sockfd, F_SETFL, flags | O_NONBLOCK) < 0) {
- fprintf(stderr, "Error %d: fcntl(F_SETFL) failed\n", errno);
- return(-1);
- }
-#endif /* UNIX_SOCKETS */
-
- /* preset socket structure for socket binding */
- memset(&saddr, 0, sizeof(saddr));
- saddr.sin_family = AF_INET;
- saddr.sin_port = htons(port);
- saddr.sin_addr.s_addr = INADDR_ANY;
- if(bind(sockfd, (struct sockaddr *)&saddr, sizeof(struct sockaddr)) != 0) {
- fprintf(stderr, "Error %d: bind() failed\n", errno);
- return(-1);
- }
-
- /* prepare for listening */
- if(listen(sockfd, PENDING_QUEUE_SIZE) != 0) {
- fprintf(stderr, "Error %d: listen() failed\n", errno);
- return(-1);
- }
-
-#ifdef UNIX_SOCKETS
- /* setup SIGINT handler that will stop the server */
- signal(SIGINT, int_signal_handler);
-#endif /* UNIX_SOCKETS */
-
- if(log_level >= LOG_LEVEL_INFO) {
- fprintf(stdout, "Log: server is ready and listening on port %d\n", port);
- }
- return(0);
-}
-
-/**
- * stop_server:
- *
- * Shuts down TCP server.
- */
-static void
-stop_server() {
-#ifdef UNIX_SOCKETS
- if(sockfd != -1) {
- shutdown(sockfd, SHUT_RDWR);
- close(sockfd);
- sockfd = -1;
- }
-#endif /* UNIX_SOCKETS */
-
-#ifdef WIN32_SOCKETS
- if(sockfd != -1) {
- close(sockfd);
- sockfd = -1;
- }
-#endif /* WIN32_SOCKETS */
- if(log_level >= LOG_LEVEL_INFO) {
- fprintf(stdout, "Log: server is shutted down\n");
- }
-}
-
-/**
- * int_signal_handler:
- * @sig_num: the signal number.
- *
- * Unix's Ctrl-C signal handler that stops the server.
- */
-static void
-int_signal_handler(int sig_num) {
- if(log_level >= LOG_LEVEL_INFO) {
- fprintf(stdout, "Log: server is asked to shutdown\n");
- }
- finished = 1;
-}
-
-/**
- * handle_connection:
- * @sockfd: the server's socket.
- * @xkmsCtx: the template XKMS server context.
- * @format: the expected format of XKMS requests.
- *
- * Establishs a connection, forks a child process (onUnix), reads the request,
- * processes it and writes back the response.
- *
- * Returns 0 on success or a negative value if an error occurs.
- */
-static int
-handle_connection(int sockfd, xmlSecXkmsServerCtxPtr xkmsCtx, xmlSecXkmsServerFormat format) {
-#ifdef UNIX_SOCKETS
- int fd = -1;
-#endif /* UNIX_SOCKETS */
-
-#ifdef WIN32_SOCKETS
- SOCKET fd = -1;
-#endif /* WIN32_SOCKETS */
-
- int in_child_process = 0;
- struct sockaddr_in saddr;
- int saddr_size;
- xmlSecXkmsServerCtxPtr xkmsCtx2 = NULL;
- xmlSecBufferPtr buffer = NULL;
- xmlDocPtr inDoc = NULL;
- xmlDocPtr outDoc = NULL;
- xmlNodePtr result = NULL;
- xmlOutputBufferPtr output = NULL;
- int resp_ready = 0;
- int ret;
-
- assert(sockfd != -1);
- assert(xkmsCtx != NULL);
-
- /* Get the socket connection */
- saddr_size = sizeof(struct sockaddr_in);
- fd = accept(sockfd, (struct sockaddr *)&saddr, &saddr_size);
-
-#ifdef UNIX_SOCKETS
- if(sockfd == -1) {
-#endif /* UNIX_SOCKETS */
-
-#ifdef WIN32_SOCKETS
- if(sockfd == INVALID_SOCKET) {
-#endif /* WIN32_SOCKETS */
-
- fprintf(stderr, "Error %d: accept() failed\n", errno);
- return(-1);
- }
- if(log_level >= LOG_LEVEL_INFO) {
- fprintf(stdout, "Log [%s]: got connection\n", inet_ntoa(saddr.sin_addr));
- }
-
- /* Create a copy of XKMS server context */
- xkmsCtx2 = xmlSecXkmsServerCtxCreate(NULL);
- if(xkmsCtx2 == NULL) {
- fprintf(stderr, "Error %d [%s]: a copy of XKMS server context initialization failed\n", errno, inet_ntoa(saddr.sin_addr));
- goto done;
- }
- if(xmlSecXkmsServerCtxCopyUserPref(xkmsCtx2, xkmsCtx) < 0) {
- fprintf(stderr, "Error %d [%s]: XKMS server context copy failed\n", errno, inet_ntoa(saddr.sin_addr));
- goto done;
- }
-
-#ifdef UNIX_SOCKETS
- /* on Unix we use child process to process requests */
- if(fork()) {
- /* parent process */
- return(0);
- }
-
- /* child process */
- in_child_process = 1;
- close(sockfd); /* we don't need listening socket */
-#endif /* UNIX_SOCKETS */
-
- buffer = xmlSecBufferCreate(0);
- if(buffer == NULL) {
- fprintf(stderr, "Error %d [%s]: xmlSecBufferCreate() failed\n", errno, inet_ntoa(saddr.sin_addr));
- goto done;
- }
-
- /* read input request */
- ret = read_request(fd, inet_ntoa(saddr.sin_addr), buffer);
- if(ret < 0) {
- fprintf(stderr, "Error %d [%s]: read_request() failed\n", errno, inet_ntoa(saddr.sin_addr));
- goto done;
- }
-
- /* parse request */
- inDoc = xmlParseMemory(xmlSecBufferGetData(buffer), xmlSecBufferGetSize(buffer) );
- if((inDoc == NULL) || (xmlDocGetRootElement(inDoc) == NULL)) {
- fprintf(stderr, "Error %d [%s]: failed to parse request\n", errno, inet_ntoa(saddr.sin_addr));
- goto done;
- }
- xmlSecBufferEmpty(buffer);
-
- /* prepare result document */
- outDoc = xmlNewDoc(BAD_CAST "1.0");
- if(outDoc == NULL) {
- fprintf(stderr, "Error %d [%s]: failed to create result doc\n", errno, inet_ntoa(saddr.sin_addr));
- goto done;
- }
-
- result = xmlSecXkmsServerCtxProcess(xkmsCtx2, xmlDocGetRootElement(inDoc), format, outDoc);
- if(result == NULL) {
- fprintf(stderr, "Error %d [%s]: failed to process xkms server request\n", errno, inet_ntoa(saddr.sin_addr));
- goto done;
- }
-
- /* apppend returned result node to the output document */
- xmlDocSetRootElement(outDoc, result);
-
- /* create LibXML2 output buffer */
- output = xmlSecBufferCreateOutputBuffer(buffer);
- if(output == NULL) {
- fprintf(stderr, "Error %d [%s]: xmlSecBufferCreateOutputBuffer() failed\n", errno, inet_ntoa(saddr.sin_addr));
- goto done;
- }
- xmlNodeDumpOutput(output, result->doc, result, 0, 0, NULL);
-
- xmlOutputBufferClose(output); output = NULL;
- resp_ready = 1;
-done:
- /* send back response */
- if((resp_ready == 1) && (xmlSecBufferGetData(buffer) != NULL)) {
- ret = send_response(fd, inet_ntoa(saddr.sin_addr), 200, xmlSecBufferGetData(buffer), xmlSecBufferGetSize(buffer));
- if(log_level >= LOG_LEVEL_INFO) {
- fprintf(stdout, "Log [%s]: processed request\n", inet_ntoa(saddr.sin_addr));
- }
- } else if(fd >= 0) {
- ret = send_response(fd, inet_ntoa(saddr.sin_addr), 503, http_503, strlen(http_503));
- if(log_level >= LOG_LEVEL_INFO) {
- fprintf(stdout, "Log [%s]: failed to process request\n", inet_ntoa(saddr.sin_addr));
- }
- } else {
- ret = -1;
- }
- if(ret < 0) {
- fprintf(stderr, "Error %d [%s]: send_response() failed\n", errno, inet_ntoa(saddr.sin_addr));
- }
-
- /* cleanup */
- if(output != NULL) {
- xmlOutputBufferClose(output);
- output = NULL;
- }
-
- if(outDoc != NULL) {
- xmlFreeDoc(outDoc);
- outDoc = NULL;
- }
-
- if(inDoc != NULL) {
- xmlFreeDoc(inDoc);
- inDoc = NULL;
- }
-
- if(buffer != NULL) {
- xmlSecBufferDestroy(buffer);
- buffer = NULL;
- }
-
- if(xkmsCtx2 != NULL) {
- xmlSecXkmsServerCtxDestroy(xkmsCtx2);
- xkmsCtx2 = NULL;
- }
-
- if(fd >= 0) {
-#ifdef UNIX_SOCKETS
- shutdown(fd, SHUT_RDWR);
- close(fd);
-#endif /* UNIX_SCOKETS */
-
-#ifdef WIN32_SOCKETS
- close(fd);
-#endif /* WIN32_SCOKETS */
-
- fd = -1;
- }
-
- if(in_child_process) {
- exit(0);
- }
- return(0);
-}
-
-/**
- * read_request:
- * @fd: the request's socket.
- * @in_ip: the request's IP address (for logging).
- * @buffer: the output buffer.
- *
- * Reads the request from socket @fd and stores it in the @buffer.
- *
- * Returns 0 on success or a negative value if an error occurs.
- */
-static int
-read_request(int fd, const char* in_ip, xmlSecBufferPtr buffer) {
- char buf[1024];
- const xmlChar* s;
- const xmlChar* p;
- int nread;
- int length = 0;
- int found = 0;
- int counter;
-
- assert(fd != -1);
- assert(in_ip != NULL);
- assert(buffer);
-
- /* first read the http headers */
- counter = 5;
- while(my_strnstr(xmlSecBufferGetData(buffer), xmlSecBufferGetSize(buffer), BAD_CAST "\r\n\r\n", 4) == NULL) {
- nread = recv(fd, buf, sizeof(buf), 0);
- if(nread < 0) {
- fprintf(stderr, "Error %d [%s]: read() failed\n", errno, in_ip);
- return(-1);
- }
-
- if((nread > 0) && (xmlSecBufferAppend(buffer, buf, nread) < 0)) {
- fprintf(stderr, "Error %d [%s]: xmlSecBufferAppend(%d) failed\n", errno, in_ip, nread);
- return(-1);
- }
-
- if(nread < sizeof(buffer)) {
- counter--;
- if(counter <= 0) {
- break;
- }
- }
- }
-
- if(xmlSecBufferGetData(buffer) == NULL) {
- fprintf(stderr, "Error %d [%s]: no bytes read\n", errno, in_ip);
- return(-1);
- }
-
- if(log_level >= LOG_LEVEL_DEBUG) {
- xmlSecBufferAppend(buffer, BAD_CAST "\0", 1);
- fprintf(stdout, "Debug [%s]: request headers:\n%s\n", in_ip, xmlSecBufferGetData(buffer));
- xmlSecBufferRemoveTail(buffer, 1);
- }
-
- /* Parse the request and extract the body. We expect the request to look
- * like this:
- * POST <path> HTTP/1.x\r\n
- * <header1>\r\n
- * <header2>\r\n
- * ...
- * <headerN>\r\n
- * \r\n
- * <body>
- */
-
- /* analyze the first line */
- p = my_strnstr(xmlSecBufferGetData(buffer), xmlSecBufferGetSize(buffer), BAD_CAST "\r\n", 2);
- if(p == NULL) {
- fprintf(stderr, "Error %d [%s]: there is no HTTP header\n", errno, in_ip);
- return(-1);
- }
- if(xmlStrncasecmp(xmlSecBufferGetData(buffer), BAD_CAST "POST ", 5) != 0) {
- fprintf(stderr, "Error %d [%s]: not a POST request\n", errno, in_ip);
- return(-1);
- }
- /* "POST " + " HTTP/1.x" == 14 */
- s = xmlSecBufferGetData(buffer);
- if(p - s <= 14) {
- fprintf(stderr, "Error %d [%s]: first line has bad length\n", errno, in_ip);
- return(-1);
- }
- if((xmlStrncasecmp(p - 9, BAD_CAST " HTTP/1.0", 9) != 0) &&
- (xmlStrncasecmp(p - 9, BAD_CAST " HTTP/1.1", 9) != 0)) {
-
- fprintf(stderr, "Error %d [%s]: first line does not end with \" HTTP/1.x\"\n", errno, in_ip);
- return(-1);
- }
- if(xmlSecBufferRemoveHead(buffer, p - xmlSecBufferGetData(buffer) + 2) < 0) {
- fprintf(stderr, "Error %d [%s]: failed to skip first line\n", errno, in_ip);
- return(-1);
- }
-
- /* now skip all the headers (i.e. everything until empty line) */
- found = 0;
- while(!found) {
- p = my_strnstr(xmlSecBufferGetData(buffer), xmlSecBufferGetSize(buffer), BAD_CAST "\r\n", 2);
- if(p == NULL) {
- fprintf(stderr, "Error %d [%s]: there is no HTTP body\n", errno, in_ip);
- return(-1);
- }
-
- if(p == xmlSecBufferGetData(buffer)) {
- found = 1;
- } else if(xmlStrncasecmp(xmlSecBufferGetData(buffer), BAD_CAST "Content-length: ", 16) == 0) {
- length = atoi(xmlSecBufferGetData(buffer) + 16);
- }
-
- if(xmlSecBufferRemoveHead(buffer, p - xmlSecBufferGetData(buffer) + 2) < 0) {
- fprintf(stderr, "Error %d [%s]: failed to skip header line\n", errno, in_ip);
- return(-1);
- }
- }
-
- /* remove the trailing \0 we added */
- xmlSecBufferRemoveTail(buffer, 1);
-
- /* now read the body */
- counter = 5;
- while(xmlSecBufferGetSize(buffer) < length) {
- nread = recv(fd, buf, sizeof(buf), 0);
- if(nread < 0) {
- fprintf(stderr, "Error %d [%s]: read() failed\n", errno, in_ip);
- return(-1);
- }
-
- if((nread > 0) && (xmlSecBufferAppend(buffer, buf, nread) < 0)) {
- fprintf(stderr, "Error %d [%s]: xmlSecBufferAppend(%d) failed\n", errno, in_ip, nread);
- return(-1);
- }
- if(nread < sizeof(buffer)) {
- counter--;
- if(counter <= 0) {
- break;
- }
- }
- }
- if(log_level >= LOG_LEVEL_INFO) {
- fprintf(stdout, "Log [%s]: body size is %d bytes\n", in_ip, xmlSecBufferGetSize(buffer));
- }
- if(log_level >= LOG_LEVEL_DATA) {
- xmlSecBufferAppend(buffer, BAD_CAST "\0", 1);
- fprintf(stdout, "Log [%s]: request body:\n%s\n", in_ip, xmlSecBufferGetData(buffer));
- xmlSecBufferRemoveTail(buffer, 1);
- }
- return(0);
-}
-
-/**
- * send_response:
- * @fd: the request's socket.
- * @in_ip: the request's IP address (for logging).
- * @resp_code: the HTTP response code.
- * @body: the response body.
- * @body_len: the response body length.
- *
- * Writes HTTP response headers and @body to the @socket.
- *
- * Returns 0 on success or a negative value if an error occurs.
- */
-static int
-send_response(int fd, const char* in_ip, int resp_code, const char* body, int body_size) {
- char header[sizeof(http_header) + 100];
-
- assert(fd != -1);
- assert(in_ip != NULL);
- assert(resp_code > 0);
- assert(body != NULL);
-
- /* prepare and send http header */
- sprintf(header, http_header, resp_code, body_size);
- if(send(fd, header, strlen(header), 0) == -1) {
- fprintf(stderr, "Error %d [%s]: send(header) failed\n", errno, in_ip);
- return(-1);
- }
-
- if(log_level >= LOG_LEVEL_DATA) {
- xmlChar* tmp = xmlStrndup(body, body_size);
- fprintf(stdout, "Log [%s]: response is\n%s\n", in_ip, tmp);
- xmlFree(tmp);
- }
-
- /* send body */
- if(send(fd, body, body_size, 0) == -1) {
- fprintf(stderr, "Error %d [%s]: send(body) failed\n", errno, in_ip);
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * my_strnstr:
- * @str: the soruce string.
- * @strLen: the source string length.
- * @tmpl: the template string.
- * @tmplLen: the template string length.
- *
- * Searches for the first occurence of @tmpl in @str.
- *
- * Returns pointer to the first occurence of @tmpl in @str or NULL if it is not found.
- */
-static const xmlChar*
-my_strnstr(const xmlChar* str, xmlSecSize strLen, const xmlChar* tmpl, xmlSecSize tmplLen) {
- xmlSecSize pos;
-
- if((str == NULL) || (tmpl == NULL)) {
- return(NULL);
- }
- for(pos = 0; pos + tmplLen <= strLen; pos++) {
- if(xmlStrncmp(str + pos, tmpl, tmplLen) == 0) {
- return(str + pos);
- }
- }
-
- return(NULL);
-}
-
-#endif /* XMLSEC_NO_XKMS */
-
diff --git a/examples/xmldsigverify.c b/examples/xmldsigverify.c
index f4c376e..f6a9c84 100644
--- a/examples/xmldsigverify.c
+++ b/examples/xmldsigverify.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include <stdlib.h>
#include <string.h>
@@ -88,7 +88,7 @@ main(int argc, char **argv) {
* xmlsec-crypto library.
*/
#ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING
- if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) {
+ if(xmlSecCryptoDLLoadLibrary(NULL) < 0) {
fprintf(stdout, "Error: unable to load default xmlsec-crypto library. Make sure\n"
"that you have it installed and check shared libraries path\n"
"(LD_LIBRARY_PATH) envornment variable.\n");
diff --git a/include/Makefile.in b/include/Makefile.in
index e33d410..55f26df 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -78,14 +88,14 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = include
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -145,6 +155,7 @@ am__define_uniq_tagged_files = \
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
@@ -206,6 +217,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -225,6 +240,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -263,7 +279,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -279,7 +295,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -287,6 +302,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -306,6 +322,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -320,7 +337,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -335,6 +351,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -403,7 +420,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu include/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -698,6 +714,8 @@ uninstall-am:
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
ps ps-am tags tags-am uninstall uninstall-am
+.PRECIOUS: Makefile
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/include/xmlsec/Makefile.am b/include/xmlsec/Makefile.am
index 08592e1..b82495d 100644
--- a/include/xmlsec/Makefile.am
+++ b/include/xmlsec/Makefile.am
@@ -30,7 +30,6 @@ xmlsecinc_HEADERS = \
transforms.h \
version.h \
x509.h \
- xkms.h \
xmldsig.h \
xmlenc.h \
xmlsec.h \
diff --git a/include/xmlsec/Makefile.in b/include/xmlsec/Makefile.in
index c2022fb..81bf7c8 100644
--- a/include/xmlsec/Makefile.in
+++ b/include/xmlsec/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -79,15 +89,15 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = include/xmlsec
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(srcdir)/version.h.in $(xmlsecinc_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(xmlsecinc_HEADERS) \
+ $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = version.h
@@ -176,6 +186,7 @@ am__define_uniq_tagged_files = \
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/version.h.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
@@ -237,6 +248,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -256,6 +271,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -294,7 +310,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -310,7 +326,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -318,6 +333,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -337,6 +353,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -351,7 +368,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -366,6 +382,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -447,7 +464,6 @@ xmlsecinc_HEADERS = \
transforms.h \
version.h \
x509.h \
- xkms.h \
xmldsig.h \
xmlenc.h \
xmlsec.h \
@@ -469,7 +485,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/xmlsec/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu include/xmlsec/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -793,6 +808,8 @@ uninstall-am: uninstall-xmlsecincHEADERS
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-xmlsecincHEADERS
+.PRECIOUS: Makefile
+
remove-old-headers:
@if test "x$(DESTDIR)" = "x" && test -d "$(includedir)/xmlsec"; then \
diff --git a/include/xmlsec/app.h b/include/xmlsec/app.h
index 5fe572a..7b8e510 100644
--- a/include/xmlsec/app.h
+++ b/include/xmlsec/app.h
@@ -5,7 +5,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_APP_H__
#define __XMLSEC_APP_H__
@@ -80,6 +80,20 @@ XMLSEC_EXPORT xmlSecKeyDataId xmlSecKeyDataEcdsaGetKlass
#define xmlSecKeyDataGost2001Id xmlSecKeyDataGost2001GetKlass()
XMLSEC_EXPORT xmlSecKeyDataId xmlSecKeyDataGost2001GetKlass (void);
/**
+ * xmlSecKeyDataGostR3410_2012_256Id:
+ *
+ * The GOST R 34.10-2012 256 bit key klass.
+ */
+#define xmlSecKeyDataGostR3410_2012_256Id xmlSecKeyDataGostR3410_2012_256GetKlass()
+XMLSEC_EXPORT xmlSecKeyDataId xmlSecKeyDataGostR3410_2012_256GetKlass (void);
+/**
+ * xmlSecKeyDataGostR3410_2012_512Id:
+ *
+ * The GOST R 34.10-2012 512 bit key klass.
+ */
+#define xmlSecKeyDataGostR3410_2012_512Id xmlSecKeyDataGostR3410_2012_512GetKlass()
+XMLSEC_EXPORT xmlSecKeyDataId xmlSecKeyDataGostR3410_2012_512GetKlass (void);
+/**
* xmlSecKeyDataHmacId:
*
* The DHMAC key klass.
@@ -241,6 +255,22 @@ XMLSEC_EXPORT xmlSecTransformId xmlSecTransformEcdsaSha512GetKla
XMLSEC_EXPORT xmlSecTransformId xmlSecTransformGost2001GostR3411_94GetKlass (void);
/**
+ * xmlSecTransformGostR3410_2012GostR3411_2012_256Id:
+ *
+ * The GOST R 34.10-2012 - GOST R 34.11-2012 256 bit signature transform klass.
+ */
+#define xmlSecTransformGostR3410_2012GostR3411_2012_256Id xmlSecTransformGostR3410_2012GostR3411_2012_256GetKlass()
+XMLSEC_EXPORT xmlSecTransformId xmlSecTransformGostR3410_2012GostR3411_2012_256GetKlass (void);
+
+/**
+ * xmlSecTransformGostR3410_2012GostR3411_2012_512Id:
+ *
+ * The GOST R 34.10-2012 - GOST R 34.11-2012 512 bit signature transform klass.
+ */
+#define xmlSecTransformGostR3410_2012GostR3411_2012_512Id xmlSecTransformGostR3410_2012GostR3411_2012_512GetKlass()
+XMLSEC_EXPORT xmlSecTransformId xmlSecTransformGostR3410_2012GostR3411_2012_512GetKlass (void);
+
+/**
* xmlSecTransformHmacMd5Id:
*
* The HMAC with MD5 signature transform klass.
@@ -375,6 +405,21 @@ XMLSEC_EXPORT xmlSecTransformId xmlSecTransformRsaOaepGetKlass
#define xmlSecTransformGostR3411_94Id xmlSecTransformGostR3411_94GetKlass()
XMLSEC_EXPORT xmlSecTransformId xmlSecTransformGostR3411_94GetKlass (void);
/**
+ * xmlSecTransformGostR3411_2012_256Id:
+ *
+ * The GOST R 34.11-2012 256 bit digest transform klass.
+ */
+#define xmlSecTransformGostR3411_2012_256Id xmlSecTransformGostR3411_2012_256GetKlass()
+XMLSEC_EXPORT xmlSecTransformId xmlSecTransformGostR3411_2012_256GetKlass (void);
+/**
+ * xmlSecTransformGostR3411_2012_512Id:
+ *
+ * The GOST R 34.11-2012 512 bit digest transform klass.
+ */
+#define xmlSecTransformGostR3411_2012_512Id xmlSecTransformGostR3411_2012_512GetKlass()
+XMLSEC_EXPORT xmlSecTransformId xmlSecTransformGostR3411_2012_512GetKlass (void);
+
+/**
* xmlSecTransformSha1Id:
*
* The SHA1 digest transform klass.
diff --git a/include/xmlsec/base64.h b/include/xmlsec/base64.h
index 28d8fbc..a40c452 100644
--- a/include/xmlsec/base64.h
+++ b/include/xmlsec/base64.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_BASE64_H__
#define __XMLSEC_BASE64_H__
diff --git a/include/xmlsec/bn.h b/include/xmlsec/bn.h
index 65138ed..616919b 100644
--- a/include/xmlsec/bn.h
+++ b/include/xmlsec/bn.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_BN_H__
#define __XMLSEC_BN_H__
diff --git a/include/xmlsec/buffer.h b/include/xmlsec/buffer.h
index 2791a97..4d8c739 100644
--- a/include/xmlsec/buffer.h
+++ b/include/xmlsec/buffer.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_BUFFER_H__
#define __XMLSEC_BUFFER_H__
diff --git a/include/xmlsec/crypto.h b/include/xmlsec/crypto.h
index f388aa1..75d92d0 100644
--- a/include/xmlsec/crypto.h
+++ b/include/xmlsec/crypto.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_CRYPTO_H__
#define __XMLSEC_CRYPTO_H__
diff --git a/include/xmlsec/dl.h b/include/xmlsec/dl.h
index 86391a7..e04f4f9 100644
--- a/include/xmlsec/dl.h
+++ b/include/xmlsec/dl.h
@@ -5,7 +5,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_DL_H__
#define __XMLSEC_DL_H__
diff --git a/include/xmlsec/errors.h b/include/xmlsec/errors.h
index 6e23620..32ac2fe 100644
--- a/include/xmlsec/errors.h
+++ b/include/xmlsec/errors.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_ERRORS_H__
#define __XMLSEC_ERRORS_H__
@@ -370,7 +370,7 @@ extern "C" {
* xmlSecErrorsCallback:
* @file: the error location file name (__FILE__ macro).
* @line: the error location line number (__LINE__ macro).
- * @func: the error location function name (__FUNCTION__ macro).
+ * @func: the error location function name (__func__ macro).
* @errorObject: the error specific error object
* @errorSubject: the error specific error subject.
* @reason: the error code.
@@ -407,7 +407,7 @@ XMLSEC_EXPORT const char* xmlSecErrorsGetMsg (xmlSecSize pos)
/* __FUNCTION__ is defined for MSC compiler < MS VS .NET 2003 */
#if defined(_MSC_VER) && (_MSC_VER >= 1300)
-#define __XMLSEC_FUNCTION__ __FUNCTION__
+#define __XMLSEC_FUNCTION__ __FUNCTION__
#endif /* _MSC_VER */
/* fallback for __FUNCTION__ */
diff --git a/include/xmlsec/exports.h b/include/xmlsec/exports.h
index 61678c2..a2abf3f 100644
--- a/include/xmlsec/exports.h
+++ b/include/xmlsec/exports.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_EXPORTS_H__
#define __XMLSEC_EXPORTS_H__
diff --git a/include/xmlsec/gcrypt/Makefile.in b/include/xmlsec/gcrypt/Makefile.in
index f5d3e0e..448a6e7 100644
--- a/include/xmlsec/gcrypt/Makefile.in
+++ b/include/xmlsec/gcrypt/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -79,15 +89,15 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = include/xmlsec/gcrypt
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(xmlsecgcryptinc_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(xmlsecgcryptinc_HEADERS) \
+ $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -159,6 +169,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -195,6 +206,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -214,6 +229,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -252,7 +268,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -268,7 +284,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -276,6 +291,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -295,6 +311,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -309,7 +326,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -324,6 +340,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -399,7 +416,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/xmlsec/gcrypt/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu include/xmlsec/gcrypt/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -647,6 +663,8 @@ uninstall-am: uninstall-xmlsecgcryptincHEADERS
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am uninstall-xmlsecgcryptincHEADERS
+.PRECIOUS: Makefile
+
install-exec-hook:
$(mkinstalldirs) $(DESTDIR)$(xmlsecgcryptincdir)
diff --git a/include/xmlsec/gcrypt/app.h b/include/xmlsec/gcrypt/app.h
index a0759d2..20bd78e 100644
--- a/include/xmlsec/gcrypt/app.h
+++ b/include/xmlsec/gcrypt/app.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GCRYPT_APP_H__
#define __XMLSEC_GCRYPT_APP_H__
diff --git a/include/xmlsec/gcrypt/crypto.h b/include/xmlsec/gcrypt/crypto.h
index e576d8f..1035ea3 100644
--- a/include/xmlsec/gcrypt/crypto.h
+++ b/include/xmlsec/gcrypt/crypto.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GCRYPT_CRYPTO_H__
#define __XMLSEC_GCRYPT_CRYPTO_H__
diff --git a/include/xmlsec/gcrypt/symbols.h b/include/xmlsec/gcrypt/symbols.h
index db6c6e9..371efd3 100644
--- a/include/xmlsec/gcrypt/symbols.h
+++ b/include/xmlsec/gcrypt/symbols.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GCRYPT_SYMBOLS_H__
#define __XMLSEC_GCRYPT_SYMBOLS_H__
diff --git a/include/xmlsec/gnutls/Makefile.in b/include/xmlsec/gnutls/Makefile.in
index 0aee493..927c00c 100644
--- a/include/xmlsec/gnutls/Makefile.in
+++ b/include/xmlsec/gnutls/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -79,15 +89,15 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = include/xmlsec/gnutls
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(xmlsecgnutlsinc_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(xmlsecgnutlsinc_HEADERS) \
+ $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -159,6 +169,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -195,6 +206,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -214,6 +229,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -252,7 +268,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -268,7 +284,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -276,6 +291,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -295,6 +311,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -309,7 +326,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -324,6 +340,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -400,7 +417,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/xmlsec/gnutls/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu include/xmlsec/gnutls/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -648,6 +664,8 @@ uninstall-am: uninstall-xmlsecgnutlsincHEADERS
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am uninstall-xmlsecgnutlsincHEADERS
+.PRECIOUS: Makefile
+
install-exec-hook:
$(mkinstalldirs) $(DESTDIR)$(xmlsecgnutlsincdir)
diff --git a/include/xmlsec/gnutls/app.h b/include/xmlsec/gnutls/app.h
index 4a2f3e1..c579a34 100644
--- a/include/xmlsec/gnutls/app.h
+++ b/include/xmlsec/gnutls/app.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GNUTLS_APP_H__
#define __XMLSEC_GNUTLS_APP_H__
diff --git a/include/xmlsec/gnutls/crypto.h b/include/xmlsec/gnutls/crypto.h
index 09ac5b4..f0e07c6 100644
--- a/include/xmlsec/gnutls/crypto.h
+++ b/include/xmlsec/gnutls/crypto.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GNUTLS_CRYPTO_H__
#define __XMLSEC_GNUTLS_CRYPTO_H__
diff --git a/include/xmlsec/gnutls/symbols.h b/include/xmlsec/gnutls/symbols.h
index 818035d..cd65437 100644
--- a/include/xmlsec/gnutls/symbols.h
+++ b/include/xmlsec/gnutls/symbols.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GNUTLS_SYMBOLS_H__
#define __XMLSEC_GNUTLS_SYMBOLS_H__
diff --git a/include/xmlsec/gnutls/x509.h b/include/xmlsec/gnutls/x509.h
index c5c811a..e00bf75 100644
--- a/include/xmlsec/gnutls/x509.h
+++ b/include/xmlsec/gnutls/x509.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GNUTLS_X509_H__
#define __XMLSEC_GNUTLS_X509_H__
diff --git a/include/xmlsec/io.h b/include/xmlsec/io.h
index d5a41c1..3e9757f 100644
--- a/include/xmlsec/io.h
+++ b/include/xmlsec/io.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_IO_H__
#define __XMLSEC_IO_H__
@@ -45,6 +45,7 @@ XMLSEC_EXPORT int xmlSecIORegisterCallbacks (xmlInputMatchCa
XMLSEC_EXPORT xmlSecTransformId xmlSecTransformInputURIGetKlass (void);
XMLSEC_EXPORT int xmlSecTransformInputURIOpen (xmlSecTransformPtr transform,
const xmlChar* uri);
+XMLSEC_EXPORT int xmlSecTransformInputURIClose (xmlSecTransformPtr transform);
#ifdef __cplusplus
}
diff --git a/include/xmlsec/keyinfo.h b/include/xmlsec/keyinfo.h
index 5d7cf0e..fd87285 100644
--- a/include/xmlsec/keyinfo.h
+++ b/include/xmlsec/keyinfo.h
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_KEYINFO_H__
#define __XMLSEC_KEYINFO_H__
diff --git a/include/xmlsec/keys.h b/include/xmlsec/keys.h
index 620ad49..13b37df 100644
--- a/include/xmlsec/keys.h
+++ b/include/xmlsec/keys.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_KEYS_H__
#define __XMLSEC_KEYS_H__
diff --git a/include/xmlsec/keysdata.h b/include/xmlsec/keysdata.h
index f7554ca..f833a27 100644
--- a/include/xmlsec/keysdata.h
+++ b/include/xmlsec/keysdata.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_KEYSDATA_H__
#define __XMLSEC_KEYSDATA_H__
diff --git a/include/xmlsec/keysmngr.h b/include/xmlsec/keysmngr.h
index 289da4c..ed0250d 100644
--- a/include/xmlsec/keysmngr.h
+++ b/include/xmlsec/keysmngr.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_KEYSMGMR_H__
#define __XMLSEC_KEYSMGMR_H__
diff --git a/include/xmlsec/list.h b/include/xmlsec/list.h
index fed9870..e976402 100644
--- a/include/xmlsec/list.h
+++ b/include/xmlsec/list.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_LIST_H__
#define __XMLSEC_LIST_H__
diff --git a/include/xmlsec/membuf.h b/include/xmlsec/membuf.h
index fbe6da4..0eab206 100644
--- a/include/xmlsec/membuf.h
+++ b/include/xmlsec/membuf.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_MEMBUF_H__
#define __XMLSEC_MEMBUF_H__
diff --git a/include/xmlsec/mscrypto/Makefile.in b/include/xmlsec/mscrypto/Makefile.in
index 411681d..f010d55 100644
--- a/include/xmlsec/mscrypto/Makefile.in
+++ b/include/xmlsec/mscrypto/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -79,15 +89,15 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = include/xmlsec/mscrypto
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(xmlsecmscryptoinc_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(xmlsecmscryptoinc_HEADERS) \
+ $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -159,6 +169,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -195,6 +206,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -214,6 +229,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -252,7 +268,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -268,7 +284,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -276,6 +291,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -295,6 +311,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -309,7 +326,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -324,6 +340,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -402,7 +419,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/xmlsec/mscrypto/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu include/xmlsec/mscrypto/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -650,6 +666,8 @@ uninstall-am: uninstall-xmlsecmscryptoincHEADERS
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am uninstall-xmlsecmscryptoincHEADERS
+.PRECIOUS: Makefile
+
install-exec-hook:
$(mkinstalldirs) $(DESTDIR)$(xmlsecmscryptoincdir)
diff --git a/include/xmlsec/mscrypto/certkeys.h b/include/xmlsec/mscrypto/certkeys.h
index 1f28565..d5e1b57 100644
--- a/include/xmlsec/mscrypto/certkeys.h
+++ b/include/xmlsec/mscrypto/certkeys.h
@@ -31,6 +31,7 @@ XMLSEC_CRYPTO_EXPORT xmlSecKeyDataPtr xmlSecMSCryptoCertAdopt (PCCERT_
XMLSEC_CRYPTO_EXPORT HCRYPTPROV xmlSecMSCryptoKeyDataGetMSCryptoProvider(xmlSecKeyDataPtr data);
XMLSEC_CRYPTO_EXPORT DWORD xmlSecMSCryptoKeyDataGetMSCryptoKeySpec(xmlSecKeyDataPtr data);
+XMLSEC_CRYPTO_EXPORT PCRYPT_KEY_PROV_INFO xmlSecMSCryptoKeyDataGetMSCryptoProviderInfo(xmlSecKeyDataPtr data);
#ifdef __cplusplus
diff --git a/include/xmlsec/nodeset.h b/include/xmlsec/nodeset.h
index 104e04f..3c0cfc7 100644
--- a/include/xmlsec/nodeset.h
+++ b/include/xmlsec/nodeset.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_NODESET_H__
#define __XMLSEC_NODESET_H__
diff --git a/include/xmlsec/nss/Makefile.in b/include/xmlsec/nss/Makefile.in
index 92f2d19..68aceff 100644
--- a/include/xmlsec/nss/Makefile.in
+++ b/include/xmlsec/nss/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -79,15 +89,15 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = include/xmlsec/nss
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(xmlsecnssinc_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(xmlsecnssinc_HEADERS) \
+ $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -159,6 +169,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -195,6 +206,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -214,6 +229,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -252,7 +268,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -268,7 +284,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -276,6 +291,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -295,6 +311,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -309,7 +326,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -324,6 +340,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -403,7 +420,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/xmlsec/nss/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu include/xmlsec/nss/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -651,6 +667,8 @@ uninstall-am: uninstall-xmlsecnssincHEADERS
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am uninstall-xmlsecnssincHEADERS
+.PRECIOUS: Makefile
+
install-exec-hook:
$(mkinstalldirs) $(DESTDIR)$(xmlsecnssincdir)
diff --git a/include/xmlsec/nss/app.h b/include/xmlsec/nss/app.h
index 387d34e..aeac55e 100644
--- a/include/xmlsec/nss/app.h
+++ b/include/xmlsec/nss/app.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
* Copyright (c) 2003 America Online, Inc. All rights reserved.
*/
#ifndef __XMLSEC_NSS_APP_H__
diff --git a/include/xmlsec/nss/crypto.h b/include/xmlsec/nss/crypto.h
index a1c1194..87f31bf 100644
--- a/include/xmlsec/nss/crypto.h
+++ b/include/xmlsec/nss/crypto.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
* Copyright (c) 2003 America Online, Inc. All rights reserved.
*/
#ifndef __XMLSEC_NSS_CRYPTO_H__
diff --git a/include/xmlsec/nss/symbols.h b/include/xmlsec/nss/symbols.h
index 9520cb8..23653ed 100644
--- a/include/xmlsec/nss/symbols.h
+++ b/include/xmlsec/nss/symbols.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
* Copyright (c) 2003 America Online, Inc. All rights reserved.
*/
#ifndef __XMLSEC_NSS_SYMBOLS_H__
diff --git a/include/xmlsec/openssl/Makefile.in b/include/xmlsec/openssl/Makefile.in
index 72b2f76..b6a2b98 100644
--- a/include/xmlsec/openssl/Makefile.in
+++ b/include/xmlsec/openssl/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -79,15 +89,15 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = include/xmlsec/openssl
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(xmlsecopensslinc_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(xmlsecopensslinc_HEADERS) \
+ $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -159,6 +169,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -195,6 +206,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -214,6 +229,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -252,7 +268,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -268,7 +284,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -276,6 +291,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -295,6 +311,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -309,7 +326,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -324,6 +340,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -402,7 +419,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/xmlsec/openssl/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu include/xmlsec/openssl/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -650,6 +666,8 @@ uninstall-am: uninstall-xmlsecopensslincHEADERS
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am uninstall-xmlsecopensslincHEADERS
+.PRECIOUS: Makefile
+
install-exec-hook:
$(mkinstalldirs) $(DESTDIR)$(xmlsecopensslincdir)
diff --git a/include/xmlsec/openssl/app.h b/include/xmlsec/openssl/app.h
index 2fd70e8..5c5325f 100644
--- a/include/xmlsec/openssl/app.h
+++ b/include/xmlsec/openssl/app.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_OPENSSL_APP_H__
#define __XMLSEC_OPENSSL_APP_H__
diff --git a/include/xmlsec/openssl/bn.h b/include/xmlsec/openssl/bn.h
index bdb9c7c..7415a9b 100644
--- a/include/xmlsec/openssl/bn.h
+++ b/include/xmlsec/openssl/bn.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_BN_H__
#define __XMLSEC_BN_H__
diff --git a/include/xmlsec/openssl/crypto.h b/include/xmlsec/openssl/crypto.h
index aec5fb3..c734c14 100644
--- a/include/xmlsec/openssl/crypto.h
+++ b/include/xmlsec/openssl/crypto.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_OPENSSL_CRYPTO_H__
#define __XMLSEC_OPENSSL_CRYPTO_H__
@@ -276,12 +276,13 @@ XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecOpenSSLTransformEcdsaSha512GetKlass
#endif /* XMLSEC_NO_ECDSA */
+#ifndef XMLSEC_NO_GOST
+
/********************************************************************
*
* GOST2001 transform
*
*******************************************************************/
-#ifndef XMLSEC_NO_GOST
/**
* xmlSecOpenSSLKeyDataGost2001Id:
@@ -308,11 +309,79 @@ XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecOpenSSLTransformGost2001GostR3411_9
* The GOSTR3411_94 signature transform klass.
*/
#define xmlSecOpenSSLTransformGostR3411_94Id \
- xmlSecOpenSSLTransformGostR3411_94GetKlass()
+ xmlSecOpenSSLTransformGostR3411_94GetKlass()
XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecOpenSSLTransformGostR3411_94GetKlass(void);
-
#endif /* XMLSEC_NO_GOST */
+
+#ifndef XMLSEC_NO_GOST2012
+/********************************************************************
+ *
+ * GOST R 34.10-2012 transform
+ *
+ *******************************************************************/
+
+/**
+ * xmlSecOpenSSLKeyDataGostR4310_2012_256Id:
+ *
+ * The GOST R 34.10-2012 256 key klass.
+ */
+#define xmlSecOpenSSLKeyDataGostR3410_2012_256Id \
+ xmlSecOpenSSLKeyDataGostR3410_2012_256GetKlass()
+XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecOpenSSLKeyDataGostR3410_2012_256GetKlass (void);
+
+
+/**
+ * xmlSecOpenSSLKeyDataGostR4310_2012_512Id:
+ *
+ * The GOST R 34.10-2012 512 key klass.
+ */
+#define xmlSecOpenSSLKeyDataGostR3410_2012_512Id \
+ xmlSecOpenSSLKeyDataGostR3410_2012_512GetKlass()
+XMLSEC_CRYPTO_EXPORT xmlSecKeyDataId xmlSecOpenSSLKeyDataGostR3410_2012_512GetKlass (void);
+
+
+/**
+ * xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256Id:
+ *
+ * The GOST R 34.10-2012 - GOST R 3411-2012 256 bit signature transform klass.
+ */
+#define xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256Id \
+ xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256GetKlass()
+XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256GetKlass(void);
+
+
+/**
+ * xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512Id:
+ *
+ * The GOST R 34.10-2012 - GOST R 3411-2012 512 bit signature transform klass.
+ */
+#define xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512Id \
+ xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512GetKlass()
+XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512GetKlass(void);
+
+
+/**
+ * xmlSecOpenSSLTransformGostR3411_2012_256Id:
+ *
+ * The GOST R 34.11-2012 256 bit hash transform klass.
+ */
+#define xmlSecOpenSSLTransformGostR3411_2012_256Id \
+ xmlSecOpenSSLTransformGostR3411_2012_256GetKlass()
+XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecOpenSSLTransformGostR3411_2012_256GetKlass(void);
+
+
+/**
+ * xmlSecOpenSSLTransformGostR3411_2012_512Id:
+ *
+ * The GOST R 34.11-2012 512 bit hash transform klass.
+ */
+#define xmlSecOpenSSLTransformGostR3411_2012_512Id \
+ xmlSecOpenSSLTransformGostR3411_2012_512GetKlass()
+XMLSEC_CRYPTO_EXPORT xmlSecTransformId xmlSecOpenSSLTransformGostR3411_2012_512GetKlass(void);
+
+#endif /* XMLSEC_NO_GOST2012 */
+
/********************************************************************
*
* HMAC transforms
diff --git a/include/xmlsec/openssl/evp.h b/include/xmlsec/openssl/evp.h
index 30db8f4..2f964e8 100644
--- a/include/xmlsec/openssl/evp.h
+++ b/include/xmlsec/openssl/evp.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_OPENSSL_EVP_H__
#define __XMLSEC_OPENSSL_EVP_H__
diff --git a/include/xmlsec/openssl/symbols.h b/include/xmlsec/openssl/symbols.h
index 15ae9b9..74a801a 100644
--- a/include/xmlsec/openssl/symbols.h
+++ b/include/xmlsec/openssl/symbols.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_OPENSSL_SYMBOLS_H__
#define __XMLSEC_OPENSSL_SYMBOLS_H__
diff --git a/include/xmlsec/openssl/x509.h b/include/xmlsec/openssl/x509.h
index 6da3281..0163c23 100644
--- a/include/xmlsec/openssl/x509.h
+++ b/include/xmlsec/openssl/x509.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_OPENSSL_X509_H__
#define __XMLSEC_OPENSSL_X509_H__
diff --git a/include/xmlsec/parser.h b/include/xmlsec/parser.h
index 182f295..b91aa8d 100644
--- a/include/xmlsec/parser.h
+++ b/include/xmlsec/parser.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_PARSER_H__
#define __XMLSEC_PARSER_H__
diff --git a/include/xmlsec/private.h b/include/xmlsec/private.h
index 74e6de1..0a9d74a 100644
--- a/include/xmlsec/private.h
+++ b/include/xmlsec/private.h
@@ -2,18 +2,18 @@
* XML Security Library (http://www.aleksey.com/xmlsec).
*
* These are internal private declarations. You don't want to use this file
- * unless you are building xmlsec or xmlsec-<crypto> library.
+ * unless you are building xmlsec or xmlsec-$crypto library.
*
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_PRIVATE_H__
#define __XMLSEC_PRIVATE_H__
#ifndef XMLSEC_PRIVATE
-#error "xmlsec/private.h file contains private xmlsec definitions and should not be used outside xmlsec or xmlsec-<crypto> libraries"
+#error "xmlsec/private.h file contains private xmlsec definitions and should not be used outside xmlsec or xmlsec-$crypto libraries"
#endif /* XMLSEC_PRIVATE */
#ifdef __cplusplus
@@ -336,6 +336,8 @@ typedef int (*xmlSecCryptoAppKeyCertLoadMemoryMethod)(xmlSec
* @keyDataDsaGetKlass: the method to get pointer to DSA key data klass.
* @keyDataEcdsaGetKlass: the method to get pointer to ECDSA key data klass.
* @keyDataGost2001GetKlass: the method to get pointer to GOST 2001 key data klass.
+ * @keyDataGostR3410_2012_256GetKlass: the method to get pointer to GOST R 34.10-2012 256 bit key data klass.
+ * @keyDataGostR3410_2012_512GetKlass: the method to get pointer to GOST R 34.10-2012 512 bit key data klass.
* @keyDataHmacGetKlass: the method to get pointer to HMAC key data klass.
* @keyDataRsaGetKlass: the method to get pointer to RSA key data klass.
* @keyDataX509GetKlass: the method to get pointer to X509 key data klass.
@@ -357,6 +359,8 @@ typedef int (*xmlSecCryptoAppKeyCertLoadMemoryMethod)(xmlSec
* @transformEcdsaSha384GetKlass: the method to get pointer to ECDSA-SHA384 signature transform.
* @transformEcdsaSha512GetKlass: the method to get pointer to ECDSA-SHA512 signature transform.
* @transformGost2001GostR3411_94GetKlass: the method to get pointer to GOST2001 transform.
+ * @transformGostR3410_2012GostR3411_2012_256GetKlass: the method to get pointer to GOST R 34.10-2012 - GOST R 34.11-2012 256bit transform.
+ * @transformGostR3410_2012GostR3411_2012_512GetKlass: the method to get pointer to GOST R 34.10-2012 - GOST R 34.11_2012 512bit transform.
* @transformHmacMd5GetKlass: the method to get pointer to HMAC-MD5 transform.
* @transformHmacRipemd160GetKlass: the method to get pointer to HMAC-RIPEMD160 transform.
* @transformHmacSha1GetKlass: the method to get pointer to HMAC-SHA1 transform.
@@ -376,6 +380,8 @@ typedef int (*xmlSecCryptoAppKeyCertLoadMemoryMethod)(xmlSec
* @transformRsaPkcs1GetKlass: the method to get pointer to RSA-PKCS1_5 key transport transform.
* @transformRsaOaepGetKlass: the method to get pointer to RSA-OAEP key transport transform.
* @transformGostR3411_94GetKlass: the method to get pointer to GOST R3411 transform.
+ * @transformGostR3411_2012_256GetKlass: the method to get pointer to GOST R 34.11-2012 256 bit transform.
+ * @transformGostR3411_2012_512GetKlass: the method to get pointer to GOST R 34.11-2012 512 bit transform.
* @transformSha1GetKlass: the method to get pointer to SHA1 digest transform.
* @transformSha224GetKlass: the method to get pointer to SHA224 digest transform.
* @transformSha256GetKlass: the method to get pointer to SHA256 digest transform.
@@ -411,6 +417,8 @@ struct _xmlSecCryptoDLFunctions {
xmlSecCryptoKeyDataGetKlassMethod keyDataDsaGetKlass;
xmlSecCryptoKeyDataGetKlassMethod keyDataEcdsaGetKlass;
xmlSecCryptoKeyDataGetKlassMethod keyDataGost2001GetKlass;
+ xmlSecCryptoKeyDataGetKlassMethod keyDataGostR3410_2012_256GetKlass;
+ xmlSecCryptoKeyDataGetKlassMethod keyDataGostR3410_2012_512GetKlass;
xmlSecCryptoKeyDataGetKlassMethod keyDataHmacGetKlass;
xmlSecCryptoKeyDataGetKlassMethod keyDataRsaGetKlass;
xmlSecCryptoKeyDataGetKlassMethod keyDataX509GetKlass;
@@ -436,6 +444,8 @@ struct _xmlSecCryptoDLFunctions {
xmlSecCryptoTransformGetKlassMethod transformEcdsaSha384GetKlass;
xmlSecCryptoTransformGetKlassMethod transformEcdsaSha512GetKlass;
xmlSecCryptoTransformGetKlassMethod transformGost2001GostR3411_94GetKlass;
+ xmlSecCryptoTransformGetKlassMethod transformGostR3410_2012GostR3411_2012_256GetKlass;
+ xmlSecCryptoTransformGetKlassMethod transformGostR3410_2012GostR3411_2012_512GetKlass;
xmlSecCryptoTransformGetKlassMethod transformHmacMd5GetKlass;
xmlSecCryptoTransformGetKlassMethod transformHmacRipemd160GetKlass;
xmlSecCryptoTransformGetKlassMethod transformHmacSha1GetKlass;
@@ -455,6 +465,8 @@ struct _xmlSecCryptoDLFunctions {
xmlSecCryptoTransformGetKlassMethod transformRsaPkcs1GetKlass;
xmlSecCryptoTransformGetKlassMethod transformRsaOaepGetKlass;
xmlSecCryptoTransformGetKlassMethod transformGostR3411_94GetKlass;
+ xmlSecCryptoTransformGetKlassMethod transformGostR3411_2012_256GetKlass;
+ xmlSecCryptoTransformGetKlassMethod transformGostR3411_2012_512GetKlass;
xmlSecCryptoTransformGetKlassMethod transformSha1GetKlass;
xmlSecCryptoTransformGetKlassMethod transformSha224GetKlass;
xmlSecCryptoTransformGetKlassMethod transformSha256GetKlass;
diff --git a/include/xmlsec/private/Makefile.am b/include/xmlsec/private/Makefile.am
index 74de46a..102e564 100644
--- a/include/xmlsec/private/Makefile.am
+++ b/include/xmlsec/private/Makefile.am
@@ -4,7 +4,6 @@ xmlsecprivateincdir = $(includedir)/xmlsec1/xmlsec/private
xmlsecprivateinc_HEADERS = \
xslt.h \
-xkms.h \
$(NULL)
install-exec-hook:
diff --git a/include/xmlsec/private/Makefile.in b/include/xmlsec/private/Makefile.in
index 2fde29a..3d8be64 100644
--- a/include/xmlsec/private/Makefile.in
+++ b/include/xmlsec/private/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -79,15 +89,15 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = include/xmlsec/private
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(xmlsecprivateinc_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(xmlsecprivateinc_HEADERS) \
+ $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -159,6 +169,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -195,6 +206,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -214,6 +229,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -252,7 +268,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -268,7 +284,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -276,6 +291,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -295,6 +311,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -309,7 +326,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -324,6 +340,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -380,7 +397,6 @@ NULL =
xmlsecprivateincdir = $(includedir)/xmlsec1/xmlsec/private
xmlsecprivateinc_HEADERS = \
xslt.h \
-xkms.h \
$(NULL)
all: all-am
@@ -398,7 +414,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/xmlsec/private/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu include/xmlsec/private/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -646,6 +661,8 @@ uninstall-am: uninstall-xmlsecprivateincHEADERS
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
uninstall-am uninstall-xmlsecprivateincHEADERS
+.PRECIOUS: Makefile
+
install-exec-hook:
$(mkinstalldirs) $(DESTDIR)$(xmlsecprivateincdir)
diff --git a/include/xmlsec/private/xkms.h b/include/xmlsec/private/xkms.h
deleted file mode 100644
index 0c60664..0000000
--- a/include/xmlsec/private/xkms.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * XML Security Library (http://www.aleksey.com/xmlsec).
- *
- * "XML Key Management Specification v 2.0" implementation
- * http://www.w3.org/TR/xkms2/
- *
- * This is free software; see Copyright file in the source
- * distribution for preciese wording.
- *
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
- */
-#ifndef __XMLSEC_PRIVATE_XKMS_H__
-#define __XMLSEC_PRIVATE_XKMS_H__
-
-#ifndef XMLSEC_PRIVATE
-#error "xmlsec/private/xkms.h file contains private xmlsec definitions and should not be used outside xmlsec or xmlsec-<crypto> libraries"
-#endif /* XMLSEC_PRIVATE */
-
-#ifndef XMLSEC_NO_XKMS
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-#include <stdio.h>
-
-#include <libxml/tree.h>
-#include <libxml/parser.h>
-
-#include <xmlsec/xmlsec.h>
-#include <xmlsec/buffer.h>
-#include <xmlsec/list.h>
-#include <xmlsec/keys.h>
-#include <xmlsec/keysmngr.h>
-#include <xmlsec/keyinfo.h>
-#include <xmlsec/transforms.h>
-#include <xmlsec/xkms.h>
-
-/************************************************************************
- *
- * XKMS RespondWith Klass
- *
- ************************************************************************/
-typedef int (*xmlSecXkmsRespondWithNodeReadMethod) (xmlSecXkmsRespondWithId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-typedef int (*xmlSecXkmsRespondWithNodeWriteMethod) (xmlSecXkmsRespondWithId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-struct _xmlSecXkmsRespondWithKlass {
- const xmlChar* valueName;
- const xmlChar* valueNs;
-
- const xmlChar* nodeName;
- const xmlChar* nodeNs;
-
- xmlSecXkmsRespondWithNodeReadMethod readNode;
- xmlSecXkmsRespondWithNodeWriteMethod writeNode;
-
- void* reserved1;
- void* reserved2;
-};
-
-#define xmlSecXkmsRespondWithKlassGetName(id) \
- ((((id) != NULL) && ((id)->valueName != NULL)) ? (id)->valueName : NULL)
-
-/************************************************************************
- *
- * XKMS ServerRequest Klass
- *
- ************************************************************************/
-typedef int (*xmlSecXkmsServerRequestNodeReadMethod)
- (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-typedef int (*xmlSecXkmsServerRequestExecuteMethod)
- (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx);
-typedef int (*xmlSecXkmsServerRequestNodeWriteMethod)
- (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-struct _xmlSecXkmsServerRequestKlass {
- const xmlChar* name;
- const xmlChar* requestNodeName;
- const xmlChar* requestNodeNs;
- const xmlChar* resultNodeName;
- const xmlChar* resultNodeNs;
- xmlSecBitMask flags;
-
- xmlSecXkmsServerRequestNodeReadMethod readNode;
- xmlSecXkmsServerRequestNodeWriteMethod writeNode;
- xmlSecXkmsServerRequestExecuteMethod execute;
-
- void* reserved1;
- void* reserved2;
-};
-
-#define xmlSecXkmsServerRequestKlassGetName(id) \
- ((((id) != NULL) && ((id)->name != NULL)) ? (id)->name : NULL)
-
-
-/************************************************************************
- *
- * XKMS ServerRequest Klass flags
- *
- ************************************************************************/
-/**
- * XMLSEC_XKMS_SERVER_REQUEST_KLASS_ALLOWED_IN_COUMPOUND:
- *
- * The server request klass is allowed in xkms:CompoundRequest element.
- */
-#define XMLSEC_XKMS_SERVER_REQUEST_KLASS_ALLOWED_IN_COUMPOUND 0x00000001
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* XMLSEC_NO_XKMS */
-
-#endif /* __XMLSEC_PRIVATE_XKMS_H__ */
-
diff --git a/include/xmlsec/private/xslt.h b/include/xmlsec/private/xslt.h
index e9ba697..ee3e728 100644
--- a/include/xmlsec/private/xslt.h
+++ b/include/xmlsec/private/xslt.h
@@ -6,13 +6,13 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_PRIVATE_XSLT_H__
#define __XMLSEC_PRIVATE_XSLT_H__
#ifndef XMLSEC_PRIVATE
-#error "xmlsec/private/xslt.h file contains private xmlsec definitions and should not be used outside xmlsec or xmlsec-<crypto> libraries"
+#error "xmlsec/private/xslt.h file contains private xmlsec definitions and should not be used outside xmlsec or xmlsec-$crypto libraries"
#endif /* XMLSEC_PRIVATE */
#ifndef XMLSEC_NO_XSLT
diff --git a/include/xmlsec/skeleton/app.h b/include/xmlsec/skeleton/app.h
index 0429f7b..3d29c32 100644
--- a/include/xmlsec/skeleton/app.h
+++ b/include/xmlsec/skeleton/app.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_SKELETON_APP_H__
#define __XMLSEC_SKELETON_APP_H__
diff --git a/include/xmlsec/skeleton/crypto.h b/include/xmlsec/skeleton/crypto.h
index 3034666..a81ba06 100644
--- a/include/xmlsec/skeleton/crypto.h
+++ b/include/xmlsec/skeleton/crypto.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_SKELETON_CRYPTO_H__
#define __XMLSEC_SKELETON_CRYPTO_H__
diff --git a/include/xmlsec/skeleton/symbols.h b/include/xmlsec/skeleton/symbols.h
index 9902d3f..aa7ed38 100644
--- a/include/xmlsec/skeleton/symbols.h
+++ b/include/xmlsec/skeleton/symbols.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_SKELETON_SYMBOLS_H__
#define __XMLSEC_SKELETON_SYMBOLS_H__
diff --git a/include/xmlsec/strings.h b/include/xmlsec/strings.h
index 5e3f6a1..42f5117 100644
--- a/include/xmlsec/strings.h
+++ b/include/xmlsec/strings.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_STRINGS_H__
#define __XMLSEC_STRINGS_H__
@@ -27,7 +27,6 @@ extern "C" {
XMLSEC_EXPORT_VAR const xmlChar xmlSecNs[];
XMLSEC_EXPORT_VAR const xmlChar xmlSecDSigNs[];
XMLSEC_EXPORT_VAR const xmlChar xmlSecEncNs[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsNs[];
XMLSEC_EXPORT_VAR const xmlChar xmlSecXPathNs[];
XMLSEC_EXPORT_VAR const xmlChar xmlSecXPath2Ns[];
XMLSEC_EXPORT_VAR const xmlChar xmlSecXPointerNs[];
@@ -73,127 +72,6 @@ XMLSEC_EXPORT_VAR const xmlChar xmlSecTypeEncElement[];
/*************************************************************************
*
- * XKMS nodes, attributes and value strings
- *
- ************************************************************************/
-#ifndef XMLSEC_NO_XKMS
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsServerRequestResultName[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsServerRequestStatusName[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsServerRequestLocateName[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsServerRequestValidateName[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsServerRequestCompoundName[];
-
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeResult[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeStatusRequest[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeStatusResult[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeLocateRequest[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeLocateResult[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeValidateRequest[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeValidateResult[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeCompoundRequest[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeCompoundResult[];
-
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeMessageExtension[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeOpaqueClientData[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeResponseMechanism[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeRespondWith[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodePendingNotification[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeQueryKeyBinding[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeKeyUsage[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeUseKeyWith[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeTimeInstant[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeRequestSignatureValue[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeUnverifiedKeyBinding[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeValidityInterval[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeStatus[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeValidReason[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeInvalidReason[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeIndeterminateReason[];
-
-
-XMLSEC_EXPORT_VAR const xmlChar xmlSecAttrService[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecAttrNonce[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecAttrOriginalRequestId[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecAttrResponseLimit[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecAttrMechanism[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecAttrIdentifier[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecAttrApplication[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecAttrResultMajor[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecAttrResultMinor[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecAttrRequestId[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecAttrNotBefore[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecAttrNotOnOrAfter[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecAttrTime[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecAttrStatusValue[];
-
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResponseMechanismPending[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResponseMechanismRepresent[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResponseMechanismRequestSignatureValue[];
-
-XMLSEC_EXPORT_VAR const xmlChar xmlSecRespondWithKeyName[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecRespondWithKeyValue[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecRespondWithX509Cert[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecRespondWithX509Chain[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecRespondWithX509CRL[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecRespondWithOCSP[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecRespondWithRetrievalMethod[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecRespondWithPGP[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecRespondWithPGPWeb[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecRespondWithSPKI[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecRespondWithPrivateKey[];
-
-XMLSEC_EXPORT_VAR const xmlChar xmlSecStatusResultSuccess[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecStatusResultFailed[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecStatusResultPending[];
-
-XMLSEC_EXPORT_VAR const xmlChar xmlSecKeyUsageEncryption[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecKeyUsageSignature[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecKeyUsageExchange[];
-
-XMLSEC_EXPORT_VAR const xmlChar xmlSecKeyBindingStatusValid[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecKeyBindingStatusInvalid[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecKeyBindingStatusIndeterminate[];
-
-XMLSEC_EXPORT_VAR const xmlChar xmlSecKeyBindingReasonIssuerTrust[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecKeyBindingReasonRevocationStatus[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecKeyBindingReasonValidityInterval[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecKeyBindingReasonSignature[];
-
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMajorCodeSuccess[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMajorCodeVersionMismatch[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMajorCodeSender[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMajorCodeReceiver[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMajorCodeRepresent[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMajorCodePending[];
-
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMinorCodeNoMatch[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMinorCodeTooManyResponses[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMinorCodeIncomplete[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMinorCodeFailure[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMinorCodeRefused[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMinorCodeNoAuthentication[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMinorCodeMessageNotSupported[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMinorCodeUnknownResponseId[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecResultMinorCodeNotSynchronous[];
-
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsSoapFaultReasonLang[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsSoapFaultReasonUnsupportedVersion[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsSoapFaultReasonUnableToProcess[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsSoapFaultReasonServiceUnavailable[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsSoapFaultReasonMessageNotSupported[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsSoapFaultReasonMessageInvalid[];
-
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsSoapSubcodeValueMessageNotSupported[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsSoapSubcodeValueBadMessage[];
-
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsFormatStrPlain[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsFormatStrSoap11[];
-XMLSEC_EXPORT_VAR const xmlChar xmlSecXkmsFormatStrSoap12[];
-
-#endif /* XMLSEC_NO_XKMS */
-
-/*************************************************************************
- *
* KeyInfo and Transform Nodes
*
************************************************************************/
@@ -369,6 +247,26 @@ XMLSEC_EXPORT_VAR const xmlChar xmlSecHrefGost2001GostR3411_94[];
/*************************************************************************
*
+ * GOST R 34.10-2012 strings
+ *
+ ************************************************************************/
+XMLSEC_EXPORT_VAR const xmlChar xmlSecNameGostR3410_2012_256KeyValue[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeGostR3410_2012_256KeyValue[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecHrefGostR3410_2012_256KeyValue[];
+
+XMLSEC_EXPORT_VAR const xmlChar xmlSecNameGostR3410_2012_512KeyValue[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeGostR3410_2012_512KeyValue[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecHrefGostR3410_2012_512KeyValue[];
+
+XMLSEC_EXPORT_VAR const xmlChar xmlSecNameGostR3410_2012GostR3411_2012_256[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecHrefGostR3410_2012GostR3411_2012_256[];
+
+XMLSEC_EXPORT_VAR const xmlChar xmlSecNameGostR3410_2012GostR3411_2012_512[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecHrefGostR3410_2012GostR3411_2012_512[];
+
+
+/*************************************************************************
+ *
* EncryptedKey
*
************************************************************************/
@@ -514,6 +412,16 @@ XMLSEC_EXPORT_VAR const xmlChar xmlSecHrefGostR3411_94[];
/*************************************************************************
*
+ * GOST R 34.11-2012 strings
+ *
+ ************************************************************************/
+XMLSEC_EXPORT_VAR const xmlChar xmlSecNameGostR3411_2012_256[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecHrefGostR3411_2012_256[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecNameGostR3411_2012_512[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecHrefGostR3411_2012_512[];
+
+/*************************************************************************
+ *
* SHA1 strings
*
************************************************************************/
@@ -590,6 +498,22 @@ XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeXPointer[];
/*************************************************************************
*
+ * RelationshipTransform strings
+ *
+ ************************************************************************/
+XMLSEC_EXPORT_VAR const xmlChar xmlSecNameRelationship[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecHrefRelationship[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeRelationship[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecNodeRelationshipReference[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecRelationshipsNs[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecRelationshipReferenceNs[];
+
+XMLSEC_EXPORT_VAR const xmlChar xmlSecRelationshipAttrId[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecRelationshipAttrSourceId[];
+XMLSEC_EXPORT_VAR const xmlChar xmlSecRelationshipAttrTargetMode[];
+
+/*************************************************************************
+ *
* Xslt strings
*
************************************************************************/
diff --git a/include/xmlsec/templates.h b/include/xmlsec/templates.h
index 815cddc..94ee740 100644
--- a/include/xmlsec/templates.h
+++ b/include/xmlsec/templates.h
@@ -6,10 +6,10 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_TEMPLATES_H__
-#define __XMLSEC_TEMPALTES_H__
+#define __XMLSEC_TEMPLATES_H__
#ifdef __cplusplus
extern "C" {
@@ -158,5 +158,5 @@ XMLSEC_EXPORT int xmlSecTmplTransformAddXPointer (xmlNodePtr tran
}
#endif /* __cplusplus */
-#endif /* __XMLSEC_KEYINFO_TEMPLATES_H__ */
+#endif /* __XMLSEC_TEMPLATES_H__ */
diff --git a/include/xmlsec/transforms.h b/include/xmlsec/transforms.h
index f0c70c9..7765afc 100644
--- a/include/xmlsec/transforms.h
+++ b/include/xmlsec/transforms.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_TRANSFORMS_H__
#define __XMLSEC_TRANSFORMS_H__
@@ -33,7 +33,7 @@ typedef const struct _xmlSecTransformKlass xmlSecTransformKlass,
* The binary data chunks size. XMLSec processes binary data one chunk
* at a time. Changing this impacts xmlsec memory usage and performance.
*/
-#define XMLSEC_TRANSFORM_BINARY_CHUNK 64
+#define XMLSEC_TRANSFORM_BINARY_CHUNK 1024
/**********************************************************************
*
@@ -949,6 +949,15 @@ XMLSEC_EXPORT int xmlSecTransformXPointerSetExpr (xmlSecT
const xmlChar* expr,
xmlSecNodeSetType nodeSetType,
xmlNodePtr hereNode);
+/**
+ * xmlSecTransformRelationshipId:
+ *
+ * The Relationship transform klass.
+ */
+#define xmlSecTransformRelationshipId \
+ xmlSecTransformRelationshipGetKlass()
+XMLSEC_EXPORT xmlSecTransformId xmlSecTransformRelationshipGetKlass (void);
+
#ifndef XMLSEC_NO_XSLT
#include <libxslt/security.h>
diff --git a/include/xmlsec/version.h b/include/xmlsec/version.h
index d7a5ead..7c09710 100644
--- a/include/xmlsec/version.h
+++ b/include/xmlsec/version.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_VERSION_H__
#define __XMLSEC_VERSION_H__
@@ -21,7 +21,7 @@ extern "C" {
* The library version string in the format
* "<major-number>.<minor-number>.<sub-minor-number>".
*/
-#define XMLSEC_VERSION "1.2.20"
+#define XMLSEC_VERSION "1.2.23"
/**
* XMLSEC_VERSION_MAJOR:
@@ -42,7 +42,7 @@ extern "C" {
*
* The library sub-minor version number.
*/
-#define XMLSEC_VERSION_SUBMINOR 20
+#define XMLSEC_VERSION_SUBMINOR 23
/**
* XMLSEC_VERSION_INFO:
@@ -50,7 +50,7 @@ extern "C" {
* The library version info string in the format
* "<major-number>+<minor-number>:<sub-minor-number>:<minor-number>".
*/
-#define XMLSEC_VERSION_INFO "3:20:2"
+#define XMLSEC_VERSION_INFO "3:23:2"
#ifdef __cplusplus
diff --git a/include/xmlsec/version.h.in b/include/xmlsec/version.h.in
index 16bbafa..6679205 100644
--- a/include/xmlsec/version.h.in
+++ b/include/xmlsec/version.h.in
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_VERSION_H__
#define __XMLSEC_VERSION_H__
diff --git a/include/xmlsec/x509.h b/include/xmlsec/x509.h
index e58f37c..a53098a 100644
--- a/include/xmlsec/x509.h
+++ b/include/xmlsec/x509.h
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_X509_H__
#define __XMLSEC_X509_H__
@@ -48,7 +48,7 @@ extern "C" {
/**
* XMLSEC_X509DATA_SKI_NODE:
*
- * <dsig:/X509SKI> node found or would be written back.
+ * <dsig:X509SKI/> node found or would be written back.
*/
#define XMLSEC_X509DATA_SKI_NODE 0x00000008
/**
@@ -67,7 +67,6 @@ extern "C" {
(XMLSEC_X509DATA_CERTIFICATE_NODE | XMLSEC_X509DATA_CRL_NODE)
XMLSEC_EXPORT int xmlSecX509DataGetNodeContent (xmlNodePtr node,
- int deleteChildren,
xmlSecKeyInfoCtxPtr keyInfoCtx);
#ifdef __cplusplus
diff --git a/include/xmlsec/xkms.h b/include/xmlsec/xkms.h
deleted file mode 100644
index 8035035..0000000
--- a/include/xmlsec/xkms.h
+++ /dev/null
@@ -1,652 +0,0 @@
-/**
- * XML Security Library (http://www.aleksey.com/xmlsec).
- *
- * "XML Key Management Specification v 2.0" implementation
- * http://www.w3.org/TR/xkms2/
- *
- * This is free software; see Copyright file in the source
- * distribution for preciese wording.
- *
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
- */
-#ifndef __XMLSEC_XKMS_H__
-#define __XMLSEC_XKMS_H__
-
-#ifndef XMLSEC_NO_XKMS
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-#include <stdio.h>
-
-#include <libxml/tree.h>
-#include <libxml/parser.h>
-
-#include <xmlsec/xmlsec.h>
-#include <xmlsec/buffer.h>
-#include <xmlsec/list.h>
-#include <xmlsec/keys.h>
-#include <xmlsec/keysmngr.h>
-#include <xmlsec/keyinfo.h>
-#include <xmlsec/transforms.h>
-
-/************************************************************************
- *
- * Forward declarations. These internal xmlsec library structures are
- * declared in "xmlsec/private/xkms.h" file.
- *
- ************************************************************************/
-typedef struct _xmlSecXkmsRespondWithKlass xmlSecXkmsRespondWithKlass,
- *xmlSecXkmsRespondWithId;
-
-typedef struct _xmlSecXkmsServerRequestKlass xmlSecXkmsServerRequestKlass,
- *xmlSecXkmsServerRequestId;
-
-
-/**
- * xmlSecXkmsResultMajor:
- * @xmlSecXkmsResultMajorSuccess: The operation succeeded.
- * @xmlSecXkmsResultMajorVersionMismatch: The service does not support
- * the protocol version specified
- * in the request.
- * @xmlSecXkmsResultMajorSender: An error occurred that was due
- * to the message sent by the sender.
- * @xmlSecXkmsResultMajorReceiver: An error occurred at the receiver.
- * @xmlSecXkmsResultMajorRepresent: The service has not acted on the
- * request. In order for the request
- * to be acted upon the request MUST
- * be represented with the specified
- * nonce in accordance with the two
- * phase protocol.
- * @xmlSecXkmsResultMajorPending: The request has been accepted
- * for processing and the service
- * will return the result asynchronously.
- *
- * The values for ResultMajor attribute.
- */
-typedef enum {
- xmlSecXkmsResultMajorSuccess = 0,
- xmlSecXkmsResultMajorVersionMismatch,
- xmlSecXkmsResultMajorSender,
- xmlSecXkmsResultMajorReceiver,
- xmlSecXkmsResultMajorRepresent,
- xmlSecXkmsResultMajorPending
-} xmlSecXkmsResultMajor;
-
-/**
- * xmlSecXkmsResultMinor:
- * @xmlSecXkmsResultMinorNone: No minor result code available.
- * @xmlSecXkmsResultMinorNoMatch: No match was found for the search
- * prototype provided.
- * @xmlSecXkmsResultMinorTooManyResponses: The request resulted in the
- * number of responses that
- * exceeded either the ResponseLimit
- * value specified in the request or
- * some other limit determined by
- * the service. The service MAY
- * either return a subset of the
- * possible responses or none at all.
- * @xmlSecXkmsResultMinorIncomplete: Only part of the information
- * requested could be provided.
- * @xmlSecXkmsResultMinorFailure: The service attempted to perform
- * the request but the operation
- * failed for unspecified reasons.
- * @xmlSecXkmsResultMinorRefused: The operation was refused. The
- * service did not attempt to
- * perform the request.
- * @xmlSecXkmsResultMinorNoAuthentication: The operation was refused
- * because the necessary authentication
- * information was incorrect or missing.
- * @xmlSecXkmsResultMinorMessageNotSupported: The receiver does not implement
- * the specified operation.
- * @xmlSecXkmsResultMinorUnknownResponseId: The ResponseId for which pending
- * status was requested is unknown to
- * the service.
- * @xmlSecXkmsResultMinorSynchronous: The receiver does not support
- * synchronous processing of this
- * type of request.
- *
- * The values for ResultMinor attribute.
- */
-typedef enum {
- xmlSecXkmsResultMinorNone = 0,
- xmlSecXkmsResultMinorNoMatch,
- xmlSecXkmsResultMinorTooManyResponses,
- xmlSecXkmsResultMinorIncomplete,
- xmlSecXkmsResultMinorFailure,
- xmlSecXkmsResultMinorRefused,
- xmlSecXkmsResultMinorNoAuthentication,
- xmlSecXkmsResultMinorMessageNotSupported,
- xmlSecXkmsResultMinorUnknownResponseId,
- xmlSecXkmsResultMinorSynchronous
-} xmlSecXkmsResultMinor;
-
-/**
- * xmlSecXkmsKeyBindingStatus:
- * @xmlSecXkmsKeyBindingStatusNone: The key status is not available.
- * @xmlSecXkmsKeyBindingStatusValid: The key is valid.
- * @xmlSecXkmsKeyBindingStatusInvalid: The key is not valid.
- * @xmlSecXkmsKeyBindingStatusIndeterminate: Could not determine key status.
- *
- * The values for key binding StatusValue attribute.
- */
-typedef enum {
- xmlSecXkmsKeyBindingStatusNone,
- xmlSecXkmsKeyBindingStatusValid,
- xmlSecXkmsKeyBindingStatusInvalid,
- xmlSecXkmsKeyBindingStatusIndeterminate
-} xmlSecXkmsKeyBindingStatus;
-
-/**
- * xmlSecXkmsServerFormat:
- * @xmlSecXkmsServerFormatUnknown: The format is unknown.
- * @xmlSecXkmsServerFormatPlain: The request/response are not enveloped.
- * @xmlSecXkmsServerFormatSoap1_1: The request/response are SOAP 1.1 encapsulated
- * @xmlSecXkmsServerFormatSoap1_2: The request/response are SOAP 1.2 encapsulated.
- *
- * The xkms server request/response format.
- */
-typedef enum {
- xmlSecXkmsServerFormatUnknown = 0,
- xmlSecXkmsServerFormatPlain,
- xmlSecXkmsServerFormatSoap11,
- xmlSecXkmsServerFormatSoap12
-} xmlSecXkmsServerFormat;
-
-XMLSEC_EXPORT xmlSecXkmsServerFormat xmlSecXkmsServerFormatFromString
- (const xmlChar* str);
-XMLSEC_EXPORT const xmlChar* xmlSecXkmsServerFormatToString (xmlSecXkmsServerFormat format);
-
-/************************************************************************
- *
- * XKMS requests server side processing klass
- *
- ************************************************************************/
-/**
- * xmlSecXkmsServerCtx:
- * @userData: the pointer to user data (xmlsec and xmlsec-crypto libraries
- * never touches this).
- * @flags: the XML Encryption processing flags.
- * @flags2: the XML Encryption processing flags.
- * @keyInfoReadCtx: the reading key context.
- * @keyInfoWriteCtx: the writing key context (not used for signature verification).
- * @reserved0: reserved for the future.
- * @reserved1: reserved for the future.
- *
- * XKMS context.
- */
-struct _xmlSecXkmsServerCtx {
- /* these data user can set before performing the operation */
- void* userData;
- xmlSecBitMask flags;
- xmlSecBitMask flags2;
- xmlSecKeyInfoCtx keyInfoReadCtx;
- xmlSecKeyInfoCtx keyInfoWriteCtx;
- xmlSecPtrList enabledRespondWithIds;
- xmlSecPtrList enabledServerRequestIds;
- xmlChar* expectedService;
- xmlChar* idPrefix;
- xmlSecSize idLen;
-
- /* these data are returned */
- xmlSecPtrList keys;
- xmlSecXkmsResultMajor resultMajor;
- xmlSecXkmsResultMinor resultMinor;
- xmlSecXkmsServerRequestId requestId;
- xmlChar* id;
- xmlChar* service;
- xmlChar* nonce;
- xmlChar* originalRequestId;
- xmlChar* pendingNotificationMechanism;
- xmlChar* pendingNotificationIdentifier;
- int responseLimit;
- xmlSecBitMask responseMechanismMask;
- xmlSecPtrListPtr compoundRequestContexts;
-
- /* these are internal data, nobody should change that except us */
- xmlNodePtr requestNode;
- xmlNodePtr opaqueClientDataNode;
- xmlNodePtr firtsMsgExtNode;
- xmlNodePtr keyInfoNode;
- xmlSecPtrList respWithList;
-
- /* reserved for future */
- void* reserved0;
- void* reserved1;
-};
-
-XMLSEC_EXPORT xmlSecXkmsServerCtxPtr xmlSecXkmsServerCtxCreate (xmlSecKeysMngrPtr keysMngr);
-XMLSEC_EXPORT void xmlSecXkmsServerCtxDestroy (xmlSecXkmsServerCtxPtr ctx);
-XMLSEC_EXPORT int xmlSecXkmsServerCtxInitialize (xmlSecXkmsServerCtxPtr ctx,
- xmlSecKeysMngrPtr keysMngr);
-XMLSEC_EXPORT void xmlSecXkmsServerCtxFinalize (xmlSecXkmsServerCtxPtr ctx);
-XMLSEC_EXPORT void xmlSecXkmsServerCtxReset (xmlSecXkmsServerCtxPtr ctx);
-XMLSEC_EXPORT int xmlSecXkmsServerCtxCopyUserPref (xmlSecXkmsServerCtxPtr dst,
- xmlSecXkmsServerCtxPtr src);
-XMLSEC_EXPORT xmlNodePtr xmlSecXkmsServerCtxProcess (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node,
- xmlSecXkmsServerFormat format,
- xmlDocPtr doc);
-XMLSEC_EXPORT int xmlSecXkmsServerCtxRequestRead (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-XMLSEC_EXPORT xmlNodePtr xmlSecXkmsServerCtxResponseWrite(xmlSecXkmsServerCtxPtr ctx,
- xmlDocPtr doc);
-XMLSEC_EXPORT xmlNodePtr xmlSecXkmsServerCtxRequestUnwrap(xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node,
- xmlSecXkmsServerFormat format);
-XMLSEC_EXPORT xmlNodePtr xmlSecXkmsServerCtxResponseWrap (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node,
- xmlSecXkmsServerFormat format,
- xmlDocPtr doc);
-XMLSEC_EXPORT xmlNodePtr xmlSecXkmsServerCtxFatalErrorResponseCreate
- (xmlSecXkmsServerCtxPtr ctx,
- xmlSecXkmsServerFormat format,
- xmlDocPtr doc);
-XMLSEC_EXPORT void xmlSecXkmsServerCtxSetResult (xmlSecXkmsServerCtxPtr ctx,
- xmlSecXkmsResultMajor resultMajor,
- xmlSecXkmsResultMinor resultMinor);
-XMLSEC_EXPORT void xmlSecXkmsServerCtxDebugDump (xmlSecXkmsServerCtxPtr ctx,
- FILE* output);
-XMLSEC_EXPORT void xmlSecXkmsServerCtxDebugXmlDump (xmlSecXkmsServerCtxPtr ctx,
- FILE* output);
-
-/************************************************************************
- *
- * xmlSecXkmsServerCtxPtr list
- *
- ************************************************************************/
-/**
- * xmlSecXkmsServerCtxPtrListId:
- *
- * zmlSecXkmsServerCtx klasses list klass.
- */
-#define xmlSecXkmsServerCtxPtrListId xmlSecXkmsServerCtxPtrListGetKlass()
-XMLSEC_EXPORT xmlSecPtrListId xmlSecXkmsServerCtxPtrListGetKlass
- (void);
-
-/************************************************************************
- *
- * xmlSecXkmsServerCtxFlags
- *
- ************************************************************************/
-/**
- * XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_RESPONSE_MECHANISM
- *
- * If flag is set then we abort if an unknown <xkms:ResponseMechanism/>
- * value is found.
- */
-#define XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_RESPONSE_MECHANISM 0x00000001
-
-/**
- * XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_RESPOND_WITH
- *
- * If flag is set then we abort if an unknown <xkms:RespondWith/>
- * value is found.
- */
-#define XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_RESPOND_WITH 0x00000002
-
-/**
- * XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_KEY_USAGE
- *
- * If flag is set then we abort if an unknown <xkms:KeyUsage/>
- * value is found.
- */
-#define XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_KEY_USAGE 0x00000004
-
-/************************************************************************
- *
- * XKMS ResponseMechanism element values.
- *
- ************************************************************************/
-/**
- * XMLSEC_XKMS_RESPONSE_MECHANISM_MASK_REPRESENT:
- *
- * XKMS ResponseMechanism element value. The requestor is prepared to
- * accept a response that uses asynchronous processing, i.e. the service
- * MAY return the MajorResult code Pending.
- */
-#define XMLSEC_XKMS_RESPONSE_MECHANISM_MASK_PENDING 0x00000001
-
-/**
- * XMLSEC_XKMS_RESPONSE_MECHANISM_MASK_REPRESENT:
- *
- * XKMS ResponseMechanism element value. The requestor is prepared to
- * accept a response that uses the two phase protocol, i.e. the service
- * MAY return the MajorResult code Represent.
- */
-#define XMLSEC_XKMS_RESPONSE_MECHANISM_MASK_REPRESENT 0x00000002
-
-/**
- * XMLSEC_XKMS_RESPONSE_MECHANISM_MASK_REQUEST_SIGNATURE_VALUE:
- *
- * XKMS ResponseMechanism element value. The requestor is prepared to
- * accept a response that carries a <RequestSignatureValue> element.
- */
-#define XMLSEC_XKMS_RESPONSE_MECHANISM_MASK_REQUEST_SIGNATURE_VALUE 0x00000004
-
-/************************************************************************
- *
- * XKMS ResponseLimit element values
- *
- ************************************************************************/
-/**
- * XMLSEC_XKMS_NO_RESPONSE_LIMIT:
- *
- * The ResponseLimit is not specified.
- */
-#define XMLSEC_XKMS_NO_RESPONSE_LIMIT -1
-
-
-/************************************************************************
- *
- * XKMS KeyBinding reason values
- *
- ************************************************************************/
-/**
- * XMLSEC_XKMS_KEY_BINDING_REASON_MASK_ISSUER_TRAST:
- *
- * The issuer of the information on which the key binding is based is
- * considered to be trustworthy by the XKMS service.
- *
- * X.509 Equivalents
- * - Valid: Certificate path anchored by trusted root successfully constructed.
- * - Invalid: Certificate path could not be constructed to a trusted root.
- */
-#define XMLSEC_XKMS_KEY_BINDING_REASON_MASK_ISSUER_TRAST 0x00000001
-
-/**
- * XMLSEC_XKMS_KEY_BINDING_REASON_MASK_REVOCATION_STATUS:
- *
- * The XKMS service has affirmatively verified the status of the
- * key binding with an authoritative source
- *
- * X.509 Equivalents
- * - Valid: Certificate status validated using CRL or OCSP.
- * - Invalid: Certificate status returned revoked or suspended.
- */
-#define XMLSEC_XKMS_KEY_BINDING_REASON_MASK_REVOCATION_STATUS 0x00000002
-
-/**
- * XMLSEC_XKMS_KEY_BINDING_REASON_MASK_VALIDITY_INTERVAL:
- *
- * The requested time instant was within the validity interval of
- * the key binding
- *
- * X.509 Equivalents
- * - Valid: The certificate chain was valid at the requested time instant.
- * - Invalid: The requested time instant was before or after the certificate
- * chain validity interval.
- */
-#define XMLSEC_XKMS_KEY_BINDING_REASON_MASK_VALIDITY_INTERVAL 0x00000004
-
-/**
- * XMLSEC_XKMS_KEY_BINDING_REASON_MASK_SIGNATURE:
- *
- * Signature on signed data provided by the client in the <Keyinfo> element was
- * successfully verified.
- *
- * X.509 Equivalents
- * - Valid: Certificate Signature verified.
- * - Invalid: Certificate Signature verification failed.
- */
-#define XMLSEC_XKMS_KEY_BINDING_REASON_MASK_SIGNATURE 0x00000008
-
-
-/************************************************************************
- *
- * XKMS RespondWith Klass
- *
- ************************************************************************/
-XMLSEC_EXPORT xmlSecPtrListPtr xmlSecXkmsRespondWithIdsGet (void);
-XMLSEC_EXPORT int xmlSecXkmsRespondWithIdsInit (void);
-XMLSEC_EXPORT void xmlSecXkmsRespondWithIdsShutdown(void);
-XMLSEC_EXPORT int xmlSecXkmsRespondWithIdsRegisterDefault
- (void);
-XMLSEC_EXPORT int xmlSecXkmsRespondWithIdsRegister(xmlSecXkmsRespondWithId id);
-XMLSEC_EXPORT int xmlSecXkmsRespondWithNodeRead (xmlSecXkmsRespondWithId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-XMLSEC_EXPORT int xmlSecXkmsRespondWithNodeWrite (xmlSecXkmsRespondWithId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-XMLSEC_EXPORT void xmlSecXkmsRespondWithDebugDump (xmlSecXkmsRespondWithId id,
- FILE* output);
-XMLSEC_EXPORT void xmlSecXkmsRespondWithDebugXmlDump
- (xmlSecXkmsRespondWithId id,
- FILE* output);
-XMLSEC_EXPORT int xmlSecXkmsRespondWithDefaultNodeRead
- (xmlSecXkmsRespondWithId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-XMLSEC_EXPORT int xmlSecXkmsRespondWithDefaultNodeWrite
- (xmlSecXkmsRespondWithId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-/************************************************************************
- *
- * XKMS RespondWith Klass List
- *
- ************************************************************************/
-/**
- * xmlSecXkmsRespondWithIdListId:
- *
- * XKMS RespondWith klasses list klass.
- */
-#define xmlSecXkmsRespondWithIdListId xmlSecXkmsRespondWithIdListGetKlass()
-XMLSEC_EXPORT xmlSecPtrListId xmlSecXkmsRespondWithIdListGetKlass
- (void);
-XMLSEC_EXPORT int xmlSecXkmsRespondWithIdListFind (xmlSecPtrListPtr list,
- xmlSecXkmsRespondWithId id);
-XMLSEC_EXPORT xmlSecXkmsRespondWithId xmlSecXkmsRespondWithIdListFindByNodeValue
- (xmlSecPtrListPtr list,
- xmlNodePtr node);
-XMLSEC_EXPORT int xmlSecXkmsRespondWithIdListWrite(xmlSecPtrListPtr list,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-
-/********************************************************************
- *
- * XML Sec Library RespondWith Ids
- *
- *******************************************************************/
-/**
- * xmlSecXkmsRespondWithIdUnknown:
- *
- * The "unknown" RespondWith id (NULL).
- */
-#define xmlSecXkmsRespondWithIdUnknown NULL
-
-/**
- * xmlSecXkmsRespondWithKeyNameId:
- *
- * The respond with KeyName klass.
- */
-#define xmlSecXkmsRespondWithKeyNameId \
- xmlSecXkmsRespondWithKeyNameGetKlass()
-XMLSEC_EXPORT xmlSecXkmsRespondWithId xmlSecXkmsRespondWithKeyNameGetKlass(void);
-
-/**
- * xmlSecXkmsRespondWithKeyValueId:
- *
- * The respond with KeyValue klass.
- */
-#define xmlSecXkmsRespondWithKeyValueId \
- xmlSecXkmsRespondWithKeyValueGetKlass()
-XMLSEC_EXPORT xmlSecXkmsRespondWithId xmlSecXkmsRespondWithKeyValueGetKlass(void);
-
-/**
- * xmlSecXkmsRespondWithPrivateKeyId:
- *
- * The respond with PrivateKey klass.
- */
-#define xmlSecXkmsRespondWithPrivateKeyId \
- xmlSecXkmsRespondWithPrivateKeyGetKlass()
-XMLSEC_EXPORT xmlSecXkmsRespondWithId xmlSecXkmsRespondWithPrivateKeyGetKlass(void);
-
-/**
- * xmlSecXkmsRespondWithRetrievalMethodId:
- *
- * The respond with RetrievalMethod klass.
- */
-#define xmlSecXkmsRespondWithRetrievalMethodId \
- xmlSecXkmsRespondWithRetrievalMethodGetKlass()
-XMLSEC_EXPORT xmlSecXkmsRespondWithId xmlSecXkmsRespondWithRetrievalMethodGetKlass(void);
-
-/**
- * xmlSecXkmsRespondWithX509CertId:
- *
- * The respond with X509Cert klass.
- */
-#define xmlSecXkmsRespondWithX509CertId \
- xmlSecXkmsRespondWithX509CertGetKlass()
-XMLSEC_EXPORT xmlSecXkmsRespondWithId xmlSecXkmsRespondWithX509CertGetKlass(void);
-
-/**
- * xmlSecXkmsRespondWithX509ChainId:
- *
- * The respond with X509Chain klass.
- */
-#define xmlSecXkmsRespondWithX509ChainId \
- xmlSecXkmsRespondWithX509ChainGetKlass()
-XMLSEC_EXPORT xmlSecXkmsRespondWithId xmlSecXkmsRespondWithX509ChainGetKlass(void);
-
-/**
- * xmlSecXkmsRespondWithX509CRLId:
- *
- * The respond with X509CRL klass.
- */
-#define xmlSecXkmsRespondWithX509CRLId \
- xmlSecXkmsRespondWithX509CRLGetKlass()
-XMLSEC_EXPORT xmlSecXkmsRespondWithId xmlSecXkmsRespondWithX509CRLGetKlass(void);
-
-
-/**
- * xmlSecXkmsRespondWithPGPId:
- *
- * The respond with PGP klass.
- */
-#define xmlSecXkmsRespondWithPGPId \
- xmlSecXkmsRespondWithPGPGetKlass()
-XMLSEC_EXPORT xmlSecXkmsRespondWithId xmlSecXkmsRespondWithPGPGetKlass(void);
-
-/**
- * xmlSecXkmsRespondWithSPKIId:
- *
- * The respond with SPKI klass.
- */
-#define xmlSecXkmsRespondWithSPKIId \
- xmlSecXkmsRespondWithSPKIGetKlass()
-XMLSEC_EXPORT xmlSecXkmsRespondWithId xmlSecXkmsRespondWithSPKIGetKlass(void);
-
-
-/************************************************************************
- *
- * XKMS ServerRequest Klass
- *
- ************************************************************************/
-XMLSEC_EXPORT xmlSecPtrListPtr xmlSecXkmsServerRequestIdsGet (void);
-XMLSEC_EXPORT int xmlSecXkmsServerRequestIdsInit (void);
-XMLSEC_EXPORT void xmlSecXkmsServerRequestIdsShutdown
- (void);
-XMLSEC_EXPORT int xmlSecXkmsServerRequestIdsRegisterDefault
- (void);
-XMLSEC_EXPORT int xmlSecXkmsServerRequestIdsRegister
- (xmlSecXkmsServerRequestId id);
-XMLSEC_EXPORT int xmlSecXkmsServerRequestNodeRead (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-XMLSEC_EXPORT int xmlSecXkmsServerRequestExecute (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx);
-XMLSEC_EXPORT xmlNodePtr xmlSecXkmsServerRequestNodeWrite(xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlDocPtr doc,
- xmlNodePtr node);
-XMLSEC_EXPORT void xmlSecXkmsServerRequestDebugDump(xmlSecXkmsServerRequestId id,
- FILE* output);
-XMLSEC_EXPORT void xmlSecXkmsServerRequestDebugXmlDump
- (xmlSecXkmsServerRequestId id,
- FILE* output);
-
-/************************************************************************
- *
- * XKMS ServerRequest Klass List
- *
- ************************************************************************/
-/**
- * xmlSecXkmsServerRequestIdListId:
- *
- * XKMS ServerRequest klasses list klass.
- */
-#define xmlSecXkmsServerRequestIdListId xmlSecXkmsServerRequestIdListGetKlass()
-XMLSEC_EXPORT xmlSecPtrListId xmlSecXkmsServerRequestIdListGetKlass
- (void);
-XMLSEC_EXPORT int xmlSecXkmsServerRequestIdListFind
- (xmlSecPtrListPtr list,
- xmlSecXkmsServerRequestId id);
-XMLSEC_EXPORT xmlSecXkmsServerRequestId xmlSecXkmsServerRequestIdListFindByName
- (xmlSecPtrListPtr list,
- const xmlChar* name);
-XMLSEC_EXPORT xmlSecXkmsServerRequestId xmlSecXkmsServerRequestIdListFindByNode
- (xmlSecPtrListPtr list,
- xmlNodePtr node);
-
-/**
- * xmlSecXkmsServerRequestIdUnknown:
- *
- * The "unknown" ServerRequest id (NULL).
- */
-#define xmlSecXkmsServerRequestIdUnknown NULL
-
-/**
- * xmlSecXkmsServerRequestResultId:
- *
- * The Result response klass.
- */
-#define xmlSecXkmsServerRequestResultId \
- xmlSecXkmsServerRequestResultGetKlass()
-XMLSEC_EXPORT xmlSecXkmsServerRequestId xmlSecXkmsServerRequestResultGetKlass(void);
-
-/**
- * xmlSecXkmsServerRequestStatusId:
- *
- * The StatusRequest klass.
- */
-#define xmlSecXkmsServerRequestStatusId \
- xmlSecXkmsServerRequestStatusGetKlass()
-XMLSEC_EXPORT xmlSecXkmsServerRequestId xmlSecXkmsServerRequestStatusGetKlass(void);
-
-/**
- * xmlSecXkmsServerRequestCompoundId:
- *
- * The CompoundRequest klass.
- */
-#define xmlSecXkmsServerRequestCompoundId \
- xmlSecXkmsServerRequestCompoundGetKlass()
-XMLSEC_EXPORT xmlSecXkmsServerRequestId xmlSecXkmsServerRequestCompoundGetKlass(void);
-
-/**
- * xmlSecXkmsServerRequestLocateId:
- *
- * The LocateRequest klass.
- */
-#define xmlSecXkmsServerRequestLocateId \
- xmlSecXkmsServerRequestLocateGetKlass()
-XMLSEC_EXPORT xmlSecXkmsServerRequestId xmlSecXkmsServerRequestLocateGetKlass(void);
-
-/**
- * xmlSecXkmsServerRequestValidateId:
- *
- * The ValidateRequest klass.
- */
-#define xmlSecXkmsServerRequestValidateId \
- xmlSecXkmsServerRequestValidateGetKlass()
-XMLSEC_EXPORT xmlSecXkmsServerRequestId xmlSecXkmsServerRequestValidateGetKlass(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* XMLSEC_NO_XKMS */
-
-#endif /* __XMLSEC_XKMS_H__ */
-
diff --git a/include/xmlsec/xmldsig.h b/include/xmlsec/xmldsig.h
index 3cd311e..ec59f4d 100644
--- a/include/xmlsec/xmldsig.h
+++ b/include/xmlsec/xmldsig.h
@@ -8,7 +8,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_XMLDSIG_H__
#define __XMLSEC_XMLDSIG_H__
diff --git a/include/xmlsec/xmlenc.h b/include/xmlsec/xmlenc.h
index 6725454..0253e3e 100644
--- a/include/xmlsec/xmlenc.h
+++ b/include/xmlsec/xmlenc.h
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_XMLENC_H__
#define __XMLSEC_XMLENC_H__
diff --git a/include/xmlsec/xmlsec.h b/include/xmlsec/xmlsec.h
index ad44918..963b37a 100644
--- a/include/xmlsec/xmlsec.h
+++ b/include/xmlsec/xmlsec.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_H__
#define __XMLSEC_H__
@@ -83,14 +83,19 @@ typedef struct _xmlSecDSigCtx xmlSecDSigCtx, *xmlSecDSigCtxPtr
typedef struct _xmlSecEncCtx xmlSecEncCtx, *xmlSecEncCtxPtr;
#endif /* XMLSEC_NO_XMLENC */
-#ifndef XMLSEC_NO_XKMS
-typedef struct _xmlSecXkmsServerCtx xmlSecXkmsServerCtx, *xmlSecXkmsServerCtxPtr;
-#endif /* XMLSEC_NO_XKMS */
-
-XMLSEC_EXPORT int xmlSecInit (void);
-XMLSEC_EXPORT int xmlSecShutdown (void);
-
+XMLSEC_EXPORT int xmlSecInit (void);
+XMLSEC_EXPORT int xmlSecShutdown (void);
+XMLSEC_EXPORT const xmlChar * xmlSecGetDefaultCrypto (void);
+/**
+ * XMLSEC_CRYPTO:
+ *
+ * Macro. Deprecated. Defined for backward compatibility only. Do not use
+ * in your code and use xmlSecGetDefaultCrypto() function instead.
+ *
+ * Returns the default crypto engine.
+ */
+#define XMLSEC_CRYPTO (xmlSecGetDefaultCrypto())
/***********************************************************************
*
diff --git a/include/xmlsec/xmltree.h b/include/xmlsec/xmltree.h
index c75e51e..b26a092 100644
--- a/include/xmlsec/xmltree.h
+++ b/include/xmlsec/xmltree.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_TREE_H__
#define __XMLSEC_TREE_H__
@@ -35,6 +35,9 @@ XMLSEC_EXPORT int xmlSecCheckNodeName (const xmlNodePtr cur,
const xmlChar *name,
const xmlChar *ns);
XMLSEC_EXPORT xmlNodePtr xmlSecGetNextElementNode(xmlNodePtr cur);
+XMLSEC_EXPORT xmlNodePtr xmlSecFindSibling (const xmlNodePtr cur,
+ const xmlChar *name,
+ const xmlChar *ns);
XMLSEC_EXPORT xmlNodePtr xmlSecFindChild (const xmlNodePtr parent,
const xmlChar *name,
const xmlChar *ns);
@@ -47,6 +50,9 @@ XMLSEC_EXPORT xmlNodePtr xmlSecFindNode (const xmlNodePtr parent
XMLSEC_EXPORT xmlNodePtr xmlSecAddChild (xmlNodePtr parent,
const xmlChar *name,
const xmlChar *ns);
+XMLSEC_EXPORT xmlNodePtr xmlSecEnsureEmptyChild (xmlNodePtr parent,
+ const xmlChar *name,
+ const xmlChar *ns);
XMLSEC_EXPORT xmlNodePtr xmlSecAddChildNode (xmlNodePtr parent,
xmlNodePtr child);
XMLSEC_EXPORT xmlNodePtr xmlSecAddNextSibling (xmlNodePtr node,
diff --git a/install-sh b/install-sh
index 377bb86..0b0fdcb 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2011-11-20.07; # UTC
+scriptversion=2013-12-25.23; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC
# This script is compatible with the BSD install script, but was written
# from scratch.
+tab=' '
nl='
'
-IFS=" "" $nl"
+IFS=" $tab$nl"
-# set DOITPROG to echo to test this script
+# Set DOITPROG to "echo" to test this script.
-# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
-if test -z "$doit"; then
- doit_exec=exec
-else
- doit_exec=$doit
-fi
+doit_exec=${doit:-exec}
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
@@ -68,17 +64,6 @@ mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
-posix_glob='?'
-initialize_posix_glob='
- test "$posix_glob" != "?" || {
- if (set -f) 2>/dev/null; then
- posix_glob=
- else
- posix_glob=:
- fi
- }
-'
-
posix_mkdir=
# Desired mode of installed file.
@@ -97,7 +82,7 @@ dir_arg=
dst_arg=
copy_on_change=false
-no_target_directory=
+is_target_a_directory=possibly
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@@ -137,46 +122,57 @@ while test $# -ne 0; do
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
- shift;;
+ shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
- case $mode in
- *' '* | *' '* | *'
-'* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
- shift;;
+ case $mode in
+ *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
-o) chowncmd="$chownprog $2"
- shift;;
+ shift;;
-s) stripcmd=$stripprog;;
- -t) dst_arg=$2
- # Protect names problematic for 'test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
- shift;;
+ -t)
+ is_target_a_directory=always
+ dst_arg=$2
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ shift;;
- -T) no_target_directory=true;;
+ -T) is_target_a_directory=never;;
--version) echo "$0 $scriptversion"; exit $?;;
- --) shift
- break;;
+ --) shift
+ break;;
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
*) break;;
esac
shift
done
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+ if test -n "$dst_arg"; then
+ echo "$0: target directory not allowed when installing a directory." >&2
+ exit 1
+ fi
+fi
+
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
@@ -208,6 +204,15 @@ if test $# -eq 0; then
fi
if test -z "$dir_arg"; then
+ if test $# -gt 1 || test "$is_target_a_directory" = always; then
+ if test ! -d "$dst_arg"; then
+ echo "$0: $dst_arg: Is not a directory." >&2
+ exit 1
+ fi
+ fi
+fi
+
+if test -z "$dir_arg"; then
do_exit='(exit $ret); exit $ret'
trap "ret=129; $do_exit" 1
trap "ret=130; $do_exit" 2
@@ -223,16 +228,16 @@ if test -z "$dir_arg"; then
*[0-7])
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw='% 200'
+ u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw=,u+rw
+ u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
@@ -269,41 +274,15 @@ do
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
- if test -n "$no_target_directory"; then
- echo "$0: $dst_arg: Is a directory" >&2
- exit 1
+ if test "$is_target_a_directory" = never; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
- # Prefer dirname, but fall back on a substitute if dirname fails.
- dstdir=`
- (dirname "$dst") 2>/dev/null ||
- expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$dst" : 'X\(//\)[^/]' \| \
- X"$dst" : 'X\(//\)$' \| \
- X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$dst" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'
- `
-
+ dstdir=`dirname "$dst"`
test -d "$dstdir"
dstdir_status=$?
fi
@@ -314,74 +293,74 @@ do
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/d" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
- fi
- trap '' 0;;
- esac;;
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
esac
if
$posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
@@ -391,53 +370,51 @@ do
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
- /*) prefix='/';;
- [-=\(\)!]*) prefix='./';;
- *) prefix='';;
+ /*) prefix='/';;
+ [-=\(\)!]*) prefix='./';;
+ *) prefix='';;
esac
- eval "$initialize_posix_glob"
-
oIFS=$IFS
IFS=/
- $posix_glob set -f
+ set -f
set fnord $dstdir
shift
- $posix_glob set +f
+ set +f
IFS=$oIFS
prefixes=
for d
do
- test X"$d" = X && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
+ test X"$d" = X && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
done
if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
fi
fi
fi
@@ -472,15 +449,12 @@ do
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
-
- eval "$initialize_posix_glob" &&
- $posix_glob set -f &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+ set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
- $posix_glob set +f &&
-
+ set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
@@ -493,24 +467,24 @@ do
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
- } ||
- { echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
diff --git a/ltmain.sh b/ltmain.sh
index 3825a2a..bffda54 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -70,7 +70,7 @@
# compiler: $LTCC
# compiler flags: $LTCFLAGS
# linker: $LD (gnu? $with_gnu_ld)
-# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.3ubuntu1
+# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.11
# automake: $automake_version
# autoconf: $autoconf_version
#
@@ -80,7 +80,7 @@
PROGRAM=libtool
PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.3ubuntu1"
+VERSION="2.4.2 Debian-2.4.2-1.11"
TIMESTAMP=""
package_revision=1.3337
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index 02b4bbe..d7c043f 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -1312,7 +1312,7 @@ ia64-*-hpux*)
rm -rf conftest*
;;
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
@@ -1333,7 +1333,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
;;
esac
;;
- ppc64-*linux*|powerpc64-*linux*)
+ powerpc64le-*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
@@ -1352,7 +1355,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
- ppc*-*linux*|powerpc*-*linux*)
+ powerpcle-*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*)
LD="${LD-ld} -m elf64ppc"
;;
s390*-*linux*|s390*-*tpf*)
diff --git a/man/Makefile.am b/man/Makefile.am
index 3b03a96..e554319 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -1,52 +1,75 @@
NULL =
+XMLSEC1_MAN=$(builddir)/xmlsec1.1
+XMLSEC1_CONFIG_MAN=$(builddir)/xmlsec1-config.1
+
+XMLSEC1_MAN_SRC=$(srcdir)/xmlsec1.1
+XMLSEC1_CONFIG_MAN_SRC=$(srcdir)/xmlsec1-config.1
+
man_MANS = \
- xmlsec1.1 \
- xmlsec1-config.1 \
+ $(XMLSEC1_MAN) \
+ $(XMLSEC1_CONFIG_MAN) \
$(NULL)
EXTRA_DIST = \
- xmlsec1.1 \
- xmlsec1-config.1 \
+ $(XMLSEC1_MAN) \
+ $(XMLSEC1_CONFIG_MAN) \
$(NULL)
XMLSEC_PROGRAM=$(top_builddir)/apps/xmlsec1
XMLSEC_CONFIG_PROGRAM=$(top_builddir)/xmlsec1-config
-XMLSEC_HTML=$(top_builddir)/docs/xmlsec-man.html
-
-all:
-
-docs: man-clean man $(XMLSEC_HTML)
-
-man-clean:
- @rm -rf $(man_MANS)
+all: $(man_MANS) $(XMLSEC_HTML)
-man: $(man_MANS)
-$(XMLSEC_HTML): xmlsec1.1
- man2html xmlsec1.1 | \
- grep -v '^Content-type: text/html' | \
- tr "[:cntrl:]" " " > \
- $(XMLSEC_HTML)
-
-xmlsec1.1:
- @rm -f xmlsec1.1
- help2man --help-option=--help-all --no-info \
+if BUILD_MANPAGES
+$(XMLSEC1_MAN): $(XMLSEC_PROGRAM)
+ $(HELP2MAN) --help-option=--help-all --no-info \
--name="sign, verify, encrypt and decrypt XML documents" \
--version-option=--version \
- $(XMLSEC_PROGRAM) > xmlsec1.1
+ --output=$(XMLSEC1_MAN) \
+ $(XMLSEC_PROGRAM)
+else
+$(XMLSEC1_MAN):
+ @( \
+ echo "Copying xmlsec1 manpage ..."; \
+ if [ z"$(XMLSEC1_MAN_SRC)" != z"$(XMLSEC1_MAN)" ]; \
+ then \
+ $(CP) -u $(XMLSEC1_MAN_SRC) $(XMLSEC1_MAN) ; \
+ fi \
+ )
+endif
-xmlsec1-config.1:
- @chmod 766 $(XMLSEC_CONFIG_PROGRAM)
- @rm -f xmlsec1-config.1
- help2man --help-option=--help --no-info \
+if BUILD_MANPAGES
+$(XMLSEC1_CONFIG_MAN): $(XMLSEC_CONFIG_PROGRAM)
+ $(HELP2MAN) --help-option=--help --no-info \
--name="detail installed version of xmlsec library" \
--version-option=--version \
- $(XMLSEC_CONFIG_PROGRAM) > xmlsec1-config.1
+ --output=$(XMLSEC1_CONFIG_MAN) \
+ $(XMLSEC_CONFIG_PROGRAM)
+else
+$(XMLSEC1_CONFIG_MAN):
+ @( \
+ echo "Copying xmlsec1-config manpage ..."; \
+ if [ z"$(XMLSEC1_CONFIG_MAN_SRC)" != z"$(XMLSEC1_CONFIG_MAN)" ]; then \
+ $(CP) -u $(XMLSEC1_CONFIG_MAN_SRC) $(XMLSEC1_CONFIG_MAN) ; \
+ fi \
+ )
+endif
$(XMLSEC_PROGRAM):
@cd ../apps;make
-clean:
+$(XMLSEC_CONFIG_PROGRAM):
+
+clean-local:
+ ( if [ z"$(XMLSEC1_MAN_SRC)" != z"$(XMLSEC1_MAN)" ]; then \
+ rm -rf $(XMLSEC1_MAN) ; \
+ fi )
+ ( if [ z"$(XMLSEC1_CONFIG_MAN_SRC)" != z"$(XMLSEC1_CONFIG_MAN)" ]; then \
+ rm -rf $(XMLSEC1_CONFIG_MAN) ; \
+ fi )
+
+distclean-local: clean-local
+
diff --git a/man/Makefile.in b/man/Makefile.in
index 8c2ecc4..6cf1008 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -78,14 +88,14 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = man
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -141,6 +151,7 @@ am__installdirs = "$(DESTDIR)$(man1dir)"
NROFF = nroff
MANS = $(man_MANS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -177,6 +188,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -196,6 +211,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -234,7 +250,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -250,7 +266,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -258,6 +273,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -277,6 +293,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -291,7 +308,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -306,6 +322,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -359,19 +376,22 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
NULL =
+XMLSEC1_MAN = $(builddir)/xmlsec1.1
+XMLSEC1_CONFIG_MAN = $(builddir)/xmlsec1-config.1
+XMLSEC1_MAN_SRC = $(srcdir)/xmlsec1.1
+XMLSEC1_CONFIG_MAN_SRC = $(srcdir)/xmlsec1-config.1
man_MANS = \
- xmlsec1.1 \
- xmlsec1-config.1 \
+ $(XMLSEC1_MAN) \
+ $(XMLSEC1_CONFIG_MAN) \
$(NULL)
EXTRA_DIST = \
- xmlsec1.1 \
- xmlsec1-config.1 \
+ $(XMLSEC1_MAN) \
+ $(XMLSEC1_CONFIG_MAN) \
$(NULL)
XMLSEC_PROGRAM = $(top_builddir)/apps/xmlsec1
XMLSEC_CONFIG_PROGRAM = $(top_builddir)/xmlsec1-config
-XMLSEC_HTML = $(top_builddir)/docs/xmlsec-man.html
all: all-am
.SUFFIXES:
@@ -387,7 +407,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu man/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -528,11 +547,13 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-clean-am: clean-generic clean-libtool mostlyclean-am
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
distclean: distclean-am
-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-local
dvi: dvi-am
@@ -597,53 +618,66 @@ uninstall-man: uninstall-man1
.MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
- cscopelist-am ctags-am distclean distclean-generic \
- distclean-libtool distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-man1 install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
- ps ps-am tags-am uninstall uninstall-am uninstall-man \
- uninstall-man1
-
-
-all:
-
-docs: man-clean man $(XMLSEC_HTML)
-
-man-clean:
- @rm -rf $(man_MANS)
-
-man: $(man_MANS)
-
-$(XMLSEC_HTML): xmlsec1.1
- man2html xmlsec1.1 | \
- grep -v '^Content-type: text/html' | \
- tr "[:cntrl:]" " " > \
- $(XMLSEC_HTML)
-
-xmlsec1.1:
- @rm -f xmlsec1.1
- help2man --help-option=--help-all --no-info \
- --name="sign, verify, encrypt and decrypt XML documents" \
- --version-option=--version \
- $(XMLSEC_PROGRAM) > xmlsec1.1
-
-xmlsec1-config.1:
- @chmod 766 $(XMLSEC_CONFIG_PROGRAM)
- @rm -f xmlsec1-config.1
- help2man --help-option=--help --no-info \
- --name="detail installed version of xmlsec library" \
- --version-option=--version \
- $(XMLSEC_CONFIG_PROGRAM) > xmlsec1-config.1
+ clean-local cscopelist-am ctags-am distclean distclean-generic \
+ distclean-libtool distclean-local distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-man1 install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am uninstall-man uninstall-man1
+
+.PRECIOUS: Makefile
+
+
+all: $(man_MANS) $(XMLSEC_HTML)
+
+ at BUILD_MANPAGES_TRUE@$(XMLSEC1_MAN): $(XMLSEC_PROGRAM)
+ at BUILD_MANPAGES_TRUE@ $(HELP2MAN) --help-option=--help-all --no-info \
+ at BUILD_MANPAGES_TRUE@ --name="sign, verify, encrypt and decrypt XML documents" \
+ at BUILD_MANPAGES_TRUE@ --version-option=--version \
+ at BUILD_MANPAGES_TRUE@ --output=$(XMLSEC1_MAN) \
+ at BUILD_MANPAGES_TRUE@ $(XMLSEC_PROGRAM)
+ at BUILD_MANPAGES_FALSE@$(XMLSEC1_MAN):
+ at BUILD_MANPAGES_FALSE@ @( \
+ at BUILD_MANPAGES_FALSE@ echo "Copying xmlsec1 manpage ..."; \
+ at BUILD_MANPAGES_FALSE@ if [ z"$(XMLSEC1_MAN_SRC)" != z"$(XMLSEC1_MAN)" ]; \
+ at BUILD_MANPAGES_FALSE@ then \
+ at BUILD_MANPAGES_FALSE@ $(CP) -u $(XMLSEC1_MAN_SRC) $(XMLSEC1_MAN) ; \
+ at BUILD_MANPAGES_FALSE@ fi \
+ at BUILD_MANPAGES_FALSE@ )
+
+ at BUILD_MANPAGES_TRUE@$(XMLSEC1_CONFIG_MAN): $(XMLSEC_CONFIG_PROGRAM)
+ at BUILD_MANPAGES_TRUE@ $(HELP2MAN) --help-option=--help --no-info \
+ at BUILD_MANPAGES_TRUE@ --name="detail installed version of xmlsec library" \
+ at BUILD_MANPAGES_TRUE@ --version-option=--version \
+ at BUILD_MANPAGES_TRUE@ --output=$(XMLSEC1_CONFIG_MAN) \
+ at BUILD_MANPAGES_TRUE@ $(XMLSEC_CONFIG_PROGRAM)
+ at BUILD_MANPAGES_FALSE@$(XMLSEC1_CONFIG_MAN):
+ at BUILD_MANPAGES_FALSE@ @( \
+ at BUILD_MANPAGES_FALSE@ echo "Copying xmlsec1-config manpage ..."; \
+ at BUILD_MANPAGES_FALSE@ if [ z"$(XMLSEC1_CONFIG_MAN_SRC)" != z"$(XMLSEC1_CONFIG_MAN)" ]; then \
+ at BUILD_MANPAGES_FALSE@ $(CP) -u $(XMLSEC1_CONFIG_MAN_SRC) $(XMLSEC1_CONFIG_MAN) ; \
+ at BUILD_MANPAGES_FALSE@ fi \
+ at BUILD_MANPAGES_FALSE@ )
$(XMLSEC_PROGRAM):
@cd ../apps;make
-clean:
+$(XMLSEC_CONFIG_PROGRAM):
+
+clean-local:
+ ( if [ z"$(XMLSEC1_MAN_SRC)" != z"$(XMLSEC1_MAN)" ]; then \
+ rm -rf $(XMLSEC1_MAN) ; \
+ fi )
+ ( if [ z"$(XMLSEC1_CONFIG_MAN_SRC)" != z"$(XMLSEC1_CONFIG_MAN)" ]; then \
+ rm -rf $(XMLSEC1_CONFIG_MAN) ; \
+ fi )
+
+distclean-local: clean-local
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/man/xmlsec1-config.1 b/man/xmlsec1-config.1
index c6f7d68..a8060a4 100644
--- a/man/xmlsec1-config.1
+++ b/man/xmlsec1-config.1
@@ -1,34 +1,46 @@
-.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
-.TH XMLSEC1-CONFIG "1" "May 2014" "xmlsec1-config 1.2.20" "User Commands"
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.2.
+.TH XMLSEC1-CONFIG "1" "October 2016" "xmlsec1-config 1.2.23" "User Commands"
.SH NAME
xmlsec1-config \- detail installed version of xmlsec library
.SH SYNOPSIS
.B xmlsec1-config
-[\fIOPTION\fR]...
+[\fI\,OPTION\/\fR]...
.SH DESCRIPTION
Known values for OPTION are:
.TP
-\fB\-\-prefix\fR=\fIDIR\fR
-change XMLSEC prefix
-.TP
-\fB\-\-exec\-prefix\fR=\fIDIR\fR
-change XMLSEC executable prefix
+\fB\-\-cflags\fR
+print pre\-processor and compiler flags
.TP
\fB\-\-libs\fR
print library linking information
.TP
-\fB\-\-cflags\fR
-print pre\-processor and compiler flags
+\fB\-\-prefix\fR
+print the default XMLSEC prefix folder
+.TP
+\fB\-\-exec\-prefix\fR
+print the default XMLSEC executable prefix folder
+.TP
+\fB\-\-libdir\fR
+print the default XMLSEC libraries folder
.TP
\fB\-\-crypto\fR
print the default crypto library name
.TP
+\fB\-\-prefix\fR=\fI\,DIR\/\fR
+change XMLSEC prefix folder
+.TP
+\fB\-\-exec\-prefix\fR=\fI\,DIR\/\fR
+change XMLSEC executable prefix folder
+.TP
+\fB\-\-libdir\fR=\fI\,DIR\/\fR
+change XMLSEC libraries folder
+.TP
+\fB\-\-crypto\fR=\fI\,LIB\/\fR
+configure with XMLSEC crypto library (one of the
+following: none default openssl nss gnutls gcrypt)
+.TP
\fB\-\-help\fR
display this help and exit
.TP
\fB\-\-version\fR
output version information
-.TP
-\fB\-\-crypto\fR=\fILIB\fR
-configure with XMLSEC crypto library (one of the
-following: none default openssl nss gnutls gcrypt)
diff --git a/man/xmlsec1.1 b/man/xmlsec1.1
index f75bc4d..8319285 100644
--- a/man/xmlsec1.1
+++ b/man/xmlsec1.1
@@ -1,10 +1,10 @@
-.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
-.TH XMLSEC1 "1" "May 2014" "xmlsec1 1.2.20 (openssl)" "User Commands"
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.2.
+.TH XMLSEC1 "1" "October 2016" "xmlsec1 1.2.23 (openssl)" "User Commands"
.SH NAME
xmlsec1 \- sign, verify, encrypt and decrypt XML documents
.SH SYNOPSIS
.B xmlsec
-\fI<command> \fR[\fI<options>\fR] [\fI<files>\fR]
+\fI\,<command> \/\fR[\fI\,<options>\/\fR] [\fI\,<files>\/\fR]
.SH DESCRIPTION
xmlsec is a command line tool for signing, verifying, encrypting and
decrypting XML documents. The allowed <command> values are:
@@ -264,6 +264,6 @@ Written by Aleksey Sanin <aleksey at aleksey.com>.
.SH "REPORTING BUGS"
Report bugs to http://www.aleksey.com/xmlsec/bugs.html
.SH COPYRIGHT
-Copyright \(co 2002-2003 Aleksey Sanin.
+Copyright \(co 2002\-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved..
.br
This is free software: see the source for copying information.
diff --git a/missing b/missing
index cdea514..f62bbae 100755
--- a/missing
+++ b/missing
@@ -1,9 +1,9 @@
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2012-06-26.16; # UTC
+scriptversion=2013-10-28.13; # UTC
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
@@ -160,7 +160,7 @@ give_advice ()
;;
autom4te*)
echo "You might have modified some maintainer files that require"
- echo "the 'automa4te' program to be rebuilt."
+ echo "the 'autom4te' program to be rebuilt."
program_details 'autom4te'
;;
bison*|yacc*)
diff --git a/scripts/build_release.sh b/scripts/build_release.sh
index dc9edd0..8989eac 100755
--- a/scripts/build_release.sh
+++ b/scripts/build_release.sh
@@ -4,7 +4,7 @@
cur_pwd=`pwd`
today=`date +%F-%T`
-git_uri=git://git.gnome.org/xmlsec
+git_uri=git at github.com:lsh123/xmlsec.git
rpm_root=/usr/src/redhat
build_root="$rpm_root/BUILD/xmlsec-build-area-$today"
@@ -31,3 +31,8 @@ echo "Cleanup"
cd "$cur_pwd"
#rm -rf "$build_root"
+echo "DO NOT FORGET TO TAG THE RELEASE"
+echo "git tag -a xmlsec-1_2_N -m 'XMLSec release 1.2.N'"
+echo "git push origin xmlsec-1_2_N"
+
+
diff --git a/scripts/remove-gtkdoclink.pl b/scripts/remove-gtkdoclink.pl
index 84ab625..30404e0 100755
--- a/scripts/remove-gtkdoclink.pl
+++ b/scripts/remove-gtkdoclink.pl
@@ -8,11 +8,13 @@ while ($file = shift @ARGV) {
open (IN, $file) || die "Can't open $file: $!";
my $entire_file;
while(<IN>) {
- $entire_file = $entire_file . $_;
+ $entire_file = $entire_file . $_;
}
close (IN);
- $entire_file =~ s%<GTKDOCLINK\s+HREF="([^"]*)"\s*>(.*?)</GTKDOCLINK\s*>% "<font>$2</font>" %ge;
-
+
+ $entire_file =~ s%<GTKDOCLINK([^>]*)>%<font>%gi;
+ $entire_file =~ s%</GTKDOCLINK([^>]*)>%</font>%gi;
+
open (OUT, ">$file") || die "Can't open $file: $!";
print OUT $entire_file;
close (OUT);
diff --git a/src/Makefile.am b/src/Makefile.am
index 3883ab6..44cfabe 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -2,8 +2,9 @@ NULL =
SUBDIRS = . $(XMLSEC_CRYPTO_LIST)
-INCLUDES = \
+AM_CFLAGS = \
-DPACKAGE=\"@PACKAGE@\" \
+ -DXMLSEC_DEFAULT_CRYPTO=\"@XMLSEC_DEFAULT_CRYPTO@\" \
-I../include \
-I$(top_srcdir)/include \
$(XMLSEC_DEFINES) \
@@ -44,12 +45,12 @@ libxmlsec1_la_SOURCES = \
membuf.c \
nodeset.c \
parser.c \
+ relationship.c \
soap.c \
strings.c \
templates.c \
transforms.c \
x509.c \
- xkms.c \
xmldsig.c \
xmlenc.c \
xmlsec.c \
diff --git a/src/Makefile.in b/src/Makefile.in
index 26970d7..1bcfca0 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -79,15 +89,14 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = src
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -129,9 +138,9 @@ am__objects_1 =
am_libxmlsec1_la_OBJECTS = app.lo base64.lo bn.lo buffer.lo c14n.lo \
dl.lo enveloped.lo errors.lo io.lo keyinfo.lo keys.lo \
keysdata.lo keysmngr.lo kw_aes_des.lo list.lo membuf.lo \
- nodeset.lo parser.lo soap.lo strings.lo templates.lo \
- transforms.lo x509.lo xkms.lo xmldsig.lo xmlenc.lo xmlsec.lo \
- xmltree.lo xpath.lo xslt.lo $(am__objects_1)
+ nodeset.lo parser.lo relationship.lo soap.lo strings.lo \
+ templates.lo transforms.lo x509.lo xmldsig.lo xmlenc.lo \
+ xmlsec.lo xmltree.lo xpath.lo xslt.lo $(am__objects_1)
libxmlsec1_la_OBJECTS = $(am_libxmlsec1_la_OBJECTS)
AM_V_lt = $(am__v_lt_ at AM_V@)
am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
@@ -217,6 +226,7 @@ am__define_uniq_tagged_files = \
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
@@ -278,6 +288,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -297,6 +311,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -335,7 +350,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -351,7 +366,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -359,6 +373,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -378,6 +393,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -392,7 +408,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -407,6 +422,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -461,8 +477,9 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
NULL =
SUBDIRS = . $(XMLSEC_CRYPTO_LIST)
-INCLUDES = \
+AM_CFLAGS = \
-DPACKAGE=\"@PACKAGE@\" \
+ -DXMLSEC_DEFAULT_CRYPTO=\"@XMLSEC_DEFAULT_CRYPTO@\" \
-I../include \
-I$(top_srcdir)/include \
$(XMLSEC_DEFINES) \
@@ -503,12 +520,12 @@ libxmlsec1_la_SOURCES = \
membuf.c \
nodeset.c \
parser.c \
+ relationship.c \
soap.c \
strings.c \
templates.c \
transforms.c \
x509.c \
- xkms.c \
xmldsig.c \
xmlenc.c \
xmlsec.c \
@@ -544,7 +561,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu src/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -625,12 +641,12 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/membuf.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/nodeset.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/parser.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/relationship.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/soap.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/strings.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/templates.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/transforms.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/x509.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xkms.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xmldsig.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xmlenc.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xmlsec.Plo at am__quote@
@@ -639,22 +655,25 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xslt.Plo at am__quote@
.c.o:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+ at am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
@@ -945,6 +964,8 @@ uninstall-am: uninstall-libLTLIBRARIES
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
+.PRECIOUS: Makefile
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/src/app.c b/src/app.c
index 55f5453..b45bc8b 100644
--- a/src/app.c
+++ b/src/app.c
@@ -5,7 +5,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -220,6 +220,52 @@ xmlSecKeyDataGost2001GetKlass(void) {
}
/**
+ * xmlSecKeyDataGostR3410_2012_256GetKlass:
+ *
+ * The GOST R 34.10-2012 256 bit key data klass.
+ *
+ * Returns: GOST R 34.10-2012 256 bit key data klass or NULL if an error occurs
+ * (xmlsec-crypto library is not loaded or the GOST R 34.10-2012 key data
+ * klass is not implemented).
+ */
+xmlSecKeyDataId
+xmlSecKeyDataGostR3410_2012_256GetKlass(void) {
+ if((xmlSecCryptoDLGetFunctions() == NULL) || (xmlSecCryptoDLGetFunctions()->keyDataGostR3410_2012_256GetKlass == NULL)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "keyDataGostR3410_2012_256Id",
+ XMLSEC_ERRORS_R_NOT_IMPLEMENTED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(xmlSecKeyDataIdUnknown);
+ }
+
+ return(xmlSecCryptoDLGetFunctions()->keyDataGostR3410_2012_256GetKlass());
+}
+
+/**
+ * xmlSecKeyDataGostR3410_2012_512GetKlass:
+ *
+ * The GOST R 34.10-2012 512 bit key data klass.
+ *
+ * Returns: GOST R 34.10-2012 512 bit key data klass or NULL if an error occurs
+ * (xmlsec-crypto library is not loaded or the GOST R 34.10-2012 key data
+ * klass is not implemented).
+ */
+xmlSecKeyDataId
+xmlSecKeyDataGostR3410_2012_512GetKlass(void) {
+ if((xmlSecCryptoDLGetFunctions() == NULL) || (xmlSecCryptoDLGetFunctions()->keyDataGostR3410_2012_512GetKlass == NULL)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "keyDataGostR3410_2012_512Id",
+ XMLSEC_ERRORS_R_NOT_IMPLEMENTED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(xmlSecKeyDataIdUnknown);
+ }
+
+ return(xmlSecCryptoDLGetFunctions()->keyDataGostR3410_2012_512GetKlass());
+}
+
+/**
* xmlSecKeyDataHmacGetKlass:
*
* The HMAC key data klass.
@@ -713,6 +759,52 @@ xmlSecTransformGost2001GostR3411_94GetKlass(void) {
}
/**
+ * xmlSecTransformGostR3410_2012GostR3411_2012_256GetKlass:
+ *
+ * The GOST R 34.10-2012 - GOST R 34.11-2012 256 bit signature transform klass.
+ *
+ * Returns: GOST R 34.10-2012 - GOST R 34.11-2012 256 bit signature transform klass or NULL if an error
+ * occurs (the xmlsec-crypto library is not loaded or this transform is not
+ * implemented).
+ */
+xmlSecTransformId
+xmlSecTransformGostR3410_2012GostR3411_2012_256GetKlass(void) {
+ if((xmlSecCryptoDLGetFunctions() == NULL) || (xmlSecCryptoDLGetFunctions()->transformGostR3410_2012GostR3411_2012_256GetKlass == NULL)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "transformGostR3410_2012GostR3411_2012_256Id",
+ XMLSEC_ERRORS_R_NOT_IMPLEMENTED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(xmlSecTransformIdUnknown);
+ }
+
+ return(xmlSecCryptoDLGetFunctions()->transformGostR3410_2012GostR3411_2012_256GetKlass());
+}
+
+/**
+ * xmlSecTransformGostR3410_2012GostR3411_2012_512GetKlass:
+ *
+ * The GOST R 34.10-2012 - GOST R 34.11-2012 512 bit signature transform klass.
+ *
+ * Returns: GOST R 34.10-2012 - GOST R 34.11-2012 512 bit signature transform klass or NULL if an error
+ * occurs (the xmlsec-crypto library is not loaded or this transform is not
+ * implemented).
+ */
+xmlSecTransformId
+xmlSecTransformGostR3410_2012GostR3411_2012_512GetKlass(void) {
+ if((xmlSecCryptoDLGetFunctions() == NULL) || (xmlSecCryptoDLGetFunctions()->transformGostR3410_2012GostR3411_2012_512GetKlass == NULL)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "transformGostR3410_2012GostR3411_2012_512Id",
+ XMLSEC_ERRORS_R_NOT_IMPLEMENTED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(xmlSecTransformIdUnknown);
+ }
+
+ return(xmlSecCryptoDLGetFunctions()->transformGostR3410_2012GostR3411_2012_512GetKlass());
+}
+
+/**
* xmlSecTransformHmacMd5GetKlass:
*
* The HMAC-MD5 transform klass.
@@ -1149,7 +1241,52 @@ xmlSecTransformGostR3411_94GetKlass(void) {
return(xmlSecCryptoDLGetFunctions()->transformGostR3411_94GetKlass());
}
+/**
+ * xmlSecTransformGostR3411_2012_256GetKlass:
+ *
+ * GOST R 34.11-2012 256 bit digest transform klass.
+ *
+ * Returns: pointer to GOST R 34.11-2012 256 bit digest transform klass or NULL if an error
+ * occurs (the xmlsec-crypto library is not loaded or this transform is not
+ * implemented).
+ */
+
+xmlSecTransformId
+xmlSecTransformGostR3411_2012_256GetKlass(void) {
+ if((xmlSecCryptoDLGetFunctions() == NULL) || (xmlSecCryptoDLGetFunctions()->transformGostR3411_2012_256GetKlass == NULL)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "transformGostR3411_2012_256Id",
+ XMLSEC_ERRORS_R_NOT_IMPLEMENTED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(xmlSecTransformIdUnknown);
+ }
+
+ return(xmlSecCryptoDLGetFunctions()->transformGostR3411_2012_256GetKlass());
+}
+
+/**
+ * xmlSecTransformGostR3411_2012_512GetKlass:
+ *
+ * GOST R 34.11-2012 512 bit digest transform klass.
+ *
+ * Returns: pointer to GOST R 34.11-2012 512 bit digest transform klass or NULL if an error
+ * occurs (the xmlsec-crypto library is not loaded or this transform is not
+ * implemented).
+ */
+xmlSecTransformId
+xmlSecTransformGostR3411_2012_512GetKlass(void) {
+ if((xmlSecCryptoDLGetFunctions() == NULL) || (xmlSecCryptoDLGetFunctions()->transformGostR3411_2012_512GetKlass == NULL)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "transformGostR3411_2012_512Id",
+ XMLSEC_ERRORS_R_NOT_IMPLEMENTED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(xmlSecTransformIdUnknown);
+ }
+ return(xmlSecCryptoDLGetFunctions()->transformGostR3411_2012_512GetKlass());
+}
/**
* xmlSecTransformSha1GetKlass:
*
diff --git a/src/base64.c b/src/base64.c
index 53e6694..a78f816 100644
--- a/src/base64.c
+++ b/src/base64.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -161,7 +161,7 @@ xmlSecBase64CtxCreate(int encode, int columns) {
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
"sizeof(xmlSecBase64Ctx)=%d",
- sizeof(xmlSecBase64Ctx));
+ (int)sizeof(xmlSecBase64Ctx));
return(NULL);
}
diff --git a/src/bn.c b/src/bn.c
index 06a31d5..b5333c9 100644
--- a/src/bn.c
+++ b/src/bn.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
* Copyright (C) 2003 Cordys R&D BV, All rights reserved.
*/
#include "globals.h"
diff --git a/src/buffer.c b/src/buffer.c
index 0efbfed..55a95dd 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -67,7 +67,7 @@ xmlSecBufferCreate(xmlSecSize size) {
NULL,
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
- "sizeof(xmlSecBuffer)=%d", sizeof(xmlSecBuffer));
+ "sizeof(xmlSecBuffer)=%d", (int)sizeof(xmlSecBuffer));
return(NULL);
}
diff --git a/src/c14n.c b/src/c14n.c
index 5967a35..59a7ddc 100644
--- a/src/c14n.c
+++ b/src/c14n.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/dl.c b/src/dl.c
index 5ffc2ff..7ab84d7 100644
--- a/src/dl.c
+++ b/src/dl.c
@@ -5,7 +5,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -89,7 +89,7 @@ XMLSEC_PTR_TO_FUNC_IMPL(xmlSecCryptoGetFunctionsCallback)
static xmlSecCryptoDLLibraryPtr
xmlSecCryptoDLLibraryCreate(const xmlChar* name) {
xmlSecCryptoDLLibraryPtr lib;
- xmlSecCryptoGetFunctionsCallback * getFunctions;
+ xmlSecCryptoGetFunctionsCallback * getFunctions = NULL;
xmlSecAssert2(name != NULL, NULL);
@@ -102,7 +102,7 @@ xmlSecCryptoDLLibraryCreate(const xmlChar* name) {
NULL,
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
- "size=%d", sizeof(lib));
+ "size=%d", (int)sizeof(lib));
return(NULL);
}
memset(lib, 0, sizeof(xmlSecCryptoDLLibrary));
@@ -429,9 +429,10 @@ xmlSecCryptoDLShutdown(void) {
/**
* xmlSecCryptoDLLoadLibrary:
- * @crypto: the desired crypto library name ("openssl", "nss", ...).
+ * @crypto: the desired crypto library name ("openssl", "nss", ...). If NULL
+ * then the default crypto engine will be used.
*
- * Loads the xmlsec-<crypto> library. This function is NOT thread safe,
+ * Loads the xmlsec-$crypto library. This function is NOT thread safe,
* application MUST NOT call #xmlSecCryptoDLLoadLibrary, #xmlSecCryptoDLGetLibraryFunctions,
* and #xmlSecCryptoDLUnloadLibrary functions from multiple threads.
*
@@ -442,9 +443,8 @@ xmlSecCryptoDLLoadLibrary(const xmlChar* crypto) {
xmlSecCryptoDLFunctionsPtr functions;
int ret;
- xmlSecAssert2(crypto != NULL, -1);
-
- functions = xmlSecCryptoDLGetLibraryFunctions(crypto);
+ /* if crypto is not specified, then used default */
+ functions = xmlSecCryptoDLGetLibraryFunctions((crypto != NULL ) ? crypto : xmlSecGetDefaultCrypto());
if(functions == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
@@ -463,6 +463,7 @@ xmlSecCryptoDLLoadLibrary(const xmlChar* crypto) {
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
+
return(0);
}
@@ -470,7 +471,7 @@ xmlSecCryptoDLLoadLibrary(const xmlChar* crypto) {
* xmlSecCryptoDLGetLibraryFunctions:
* @crypto: the desired crypto library name ("openssl", "nss", ...).
*
- * Loads the xmlsec-<crypto> library and gets global crypto functions/transforms/keys data/keys store
+ * Loads the xmlsec-$crypto library and gets global crypto functions/transforms/keys data/keys store
* table. This function is NOT thread safe, application MUST NOT call #xmlSecCryptoDLLoadLibrary,
* #xmlSecCryptoDLGetLibraryFunctions, and #xmlSecCryptoDLUnloadLibrary functions from multiple threads.
*
@@ -523,7 +524,7 @@ xmlSecCryptoDLGetLibraryFunctions(const xmlChar* crypto) {
* xmlSecCryptoDLUnloadLibrary:
* @crypto: the desired crypto library name ("openssl", "nss", ...).
*
- * Unloads the xmlsec-<crypto> library. All pointers to this library
+ * Unloads the xmlsec-$crypto library. All pointers to this library
* functions tables became invalid. This function is NOT thread safe,
* application MUST NOT call #xmlSecCryptoDLLoadLibrary, #xmlSecCryptoDLGetLibraryFunctions,
* and #xmlSecCryptoDLUnloadLibrary functions from multiple threads.
@@ -650,7 +651,22 @@ xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms(struct _xmlSecCryptoDLFuncti
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
- if((functions->keyDataHmacGetKlass != NULL) && (xmlSecKeyDataIdsRegister(functions->keyDataHmacGetKlass()) < 0)) {
+ if((functions->keyDataGostR3410_2012_256GetKlass != NULL) && (xmlSecKeyDataIdsRegister(functions->keyDataGostR3410_2012_256GetKlass()) < 0)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(functions->keyDataGostR3410_2012_256GetKlass())),
+ "xmlSecKeyDataIdsRegister",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ if((functions->keyDataGostR3410_2012_512GetKlass != NULL) && (xmlSecKeyDataIdsRegister(functions->keyDataGostR3410_2012_512GetKlass()) < 0)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(functions->keyDataGostR3410_2012_512GetKlass())),
+ "xmlSecKeyDataIdsRegister",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ } if((functions->keyDataHmacGetKlass != NULL) && (xmlSecKeyDataIdsRegister(functions->keyDataHmacGetKlass()) < 0)) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(functions->keyDataHmacGetKlass())),
"xmlSecKeyDataIdsRegister",
@@ -770,6 +786,24 @@ xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms(struct _xmlSecCryptoDLFuncti
return(-1);
}
+ if((functions->transformGostR3410_2012GostR3411_2012_256GetKlass != NULL) && xmlSecTransformIdsRegister(functions->transformGostR3410_2012GostR3411_2012_256GetKlass()) < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformKlassGetName(functions->transformGostR3410_2012GostR3411_2012_256GetKlass())),
+ "xmlSecTransformIdsRegister",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ if((functions->transformGostR3410_2012GostR3411_2012_512GetKlass != NULL) && xmlSecTransformIdsRegister(functions->transformGostR3410_2012GostR3411_2012_512GetKlass()) < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformKlassGetName(functions->transformGostR3410_2012GostR3411_2012_512GetKlass())),
+ "xmlSecTransformIdsRegister",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
if((functions->transformDsaSha1GetKlass != NULL) && xmlSecTransformIdsRegister(functions->transformDsaSha1GetKlass()) < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformKlassGetName(functions->transformDsaSha1GetKlass())),
@@ -1004,6 +1038,23 @@ xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms(struct _xmlSecCryptoDLFuncti
return(-1);
}
+ if((functions->transformGostR3411_2012_256GetKlass != NULL) && xmlSecTransformIdsRegister(functions->transformGostR3411_2012_256GetKlass()) < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformKlassGetName(functions->transformGostR3411_2012_256GetKlass())),
+ "xmlSecTransformIdsRegister",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ if((functions->transformGostR3411_2012_512GetKlass != NULL) && xmlSecTransformIdsRegister(functions->transformGostR3411_2012_512GetKlass()) < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformKlassGetName(functions->transformGostR3411_2012_512GetKlass())),
+ "xmlSecTransformIdsRegister",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
if((functions->transformSha1GetKlass != NULL) && xmlSecTransformIdsRegister(functions->transformSha1GetKlass()) < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformKlassGetName(functions->transformSha1GetKlass())),
diff --git a/src/enveloped.c b/src/enveloped.c
index 8047d31..ae11c16 100644
--- a/src/enveloped.c
+++ b/src/enveloped.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -73,10 +73,11 @@ static xmlSecTransformKlass xmlSecTransformEnvelopedKlass = {
* result from replacing T with an XPath transform containing the following
* XPath parameter element:
*
- * <XPath xmlns:dsig="&dsig;">
- * count(ancestor-or-self::dsig:Signature |
- * here()/ancestor::dsig:Signature[1]) >
- * count(ancestor-or-self::dsig:Signature)</XPath>
+ * <XPath xmlns:dsig="...">
+ * count(ancestor-or-self::dsig:Signature |
+ * here()/ancestor::dsig:Signature[1]) >
+ * count(ancestor-or-self::dsig:Signature)
+ * </XPath>
*
* The input and output requirements of this transform are identical to
* those of the XPath transform, but may only be applied to a node-set from
diff --git a/src/errors.c b/src/errors.c
index c9886d3..2ff1f42 100644
--- a/src/errors.c
+++ b/src/errors.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/gcrypt/Makefile.in b/src/gcrypt/Makefile.in
index f06cbf3..1387eac 100644
--- a/src/gcrypt/Makefile.in
+++ b/src/gcrypt/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -80,15 +90,14 @@ build_triplet = @build@
host_triplet = @host@
@SHAREDLIB_HACK_TRUE at am__append_1 = ../strings.c
subdir = src/gcrypt
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/depcomp README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -127,7 +136,9 @@ am__libxmlsec1_gcrypt_la_SOURCES_DIST = app.c asn1.h asn1.c ciphers.c \
crypto.c digests.c hmac.c kw_aes.c kw_des.c symkeys.c \
asymkeys.c signatures.c globals.h ../strings.c
am__objects_1 =
- at SHAREDLIB_HACK_TRUE@am__objects_2 = libxmlsec1_gcrypt_la-strings.lo
+am__dirstamp = $(am__leading_dot)dirstamp
+ at SHAREDLIB_HACK_TRUE@am__objects_2 = \
+ at SHAREDLIB_HACK_TRUE@ ../libxmlsec1_gcrypt_la-strings.lo
am_libxmlsec1_gcrypt_la_OBJECTS = libxmlsec1_gcrypt_la-app.lo \
libxmlsec1_gcrypt_la-asn1.lo libxmlsec1_gcrypt_la-ciphers.lo \
libxmlsec1_gcrypt_la-crypto.lo libxmlsec1_gcrypt_la-digests.lo \
@@ -205,6 +216,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -241,6 +253,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -260,6 +276,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -298,7 +315,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -314,7 +331,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -322,6 +338,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -341,6 +358,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -355,7 +373,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -370,6 +387,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -476,7 +494,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/gcrypt/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu src/gcrypt/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -529,16 +546,27 @@ clean-libLTLIBRARIES:
echo rm -f $${locs}; \
rm -f $${locs}; \
}
+../$(am__dirstamp):
+ @$(MKDIR_P) ..
+ @: > ../$(am__dirstamp)
+../$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) ../$(DEPDIR)
+ @: > ../$(DEPDIR)/$(am__dirstamp)
+../libxmlsec1_gcrypt_la-strings.lo: ../$(am__dirstamp) \
+ ../$(DEPDIR)/$(am__dirstamp)
libxmlsec1-gcrypt.la: $(libxmlsec1_gcrypt_la_OBJECTS) $(libxmlsec1_gcrypt_la_DEPENDENCIES) $(EXTRA_libxmlsec1_gcrypt_la_DEPENDENCIES)
$(AM_V_CCLD)$(libxmlsec1_gcrypt_la_LINK) -rpath $(libdir) $(libxmlsec1_gcrypt_la_OBJECTS) $(libxmlsec1_gcrypt_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
+ -rm -f ../*.$(OBJEXT)
+ -rm -f ../*.lo
distclean-compile:
-rm -f *.tab.c
+ at AMDEP_TRUE@@am__include@ @am__quote at ../$(DEPDIR)/libxmlsec1_gcrypt_la-strings.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gcrypt_la-app.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gcrypt_la-asn1.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gcrypt_la-asymkeys.Plo at am__quote@
@@ -549,26 +577,28 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gcrypt_la-kw_aes.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gcrypt_la-kw_des.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gcrypt_la-signatures.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gcrypt_la-strings.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gcrypt_la-symkeys.Plo at am__quote@
.c.o:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+ at am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
@@ -650,18 +680,19 @@ libxmlsec1_gcrypt_la-signatures.lo: signatures.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_gcrypt_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_gcrypt_la-signatures.lo `test -f 'signatures.c' || echo '$(srcdir)/'`signatures.c
-libxmlsec1_gcrypt_la-strings.lo: ../strings.c
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_gcrypt_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libxmlsec1_gcrypt_la-strings.lo -MD -MP -MF $(DEPDIR)/libxmlsec1_gcrypt_la-strings.Tpo -c -o libxmlsec1_gcrypt_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libxmlsec1_gcrypt_la-strings.Tpo $(DEPDIR)/libxmlsec1_gcrypt_la-strings.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../strings.c' object='libxmlsec1_gcrypt_la-strings.lo' libtool=yes @AMDEPBACKSLASH@
+../libxmlsec1_gcrypt_la-strings.lo: ../strings.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_gcrypt_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libxmlsec1_gcrypt_la-strings.lo -MD -MP -MF ../$(DEPDIR)/libxmlsec1_gcrypt_la-strings.Tpo -c -o ../libxmlsec1_gcrypt_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../$(DEPDIR)/libxmlsec1_gcrypt_la-strings.Tpo ../$(DEPDIR)/libxmlsec1_gcrypt_la-strings.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../strings.c' object='../libxmlsec1_gcrypt_la-strings.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_gcrypt_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_gcrypt_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_gcrypt_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libxmlsec1_gcrypt_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
+ -rm -rf ../.libs ../_libs
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
@@ -778,6 +809,8 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -rm -f ../$(DEPDIR)/$(am__dirstamp)
+ -rm -f ../$(am__dirstamp)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -788,7 +821,7 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-am
- -rm -rf ./$(DEPDIR)
+ -rm -rf ../$(DEPDIR) ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
@@ -834,7 +867,7 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
+ -rm -rf ../$(DEPDIR) ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -869,6 +902,8 @@ uninstall-am: uninstall-libLTLIBRARIES
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
+.PRECIOUS: Makefile
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/src/gcrypt/app.c b/src/gcrypt/app.c
index ab95f6d..dd5d770 100644
--- a/src/gcrypt/app.c
+++ b/src/gcrypt/app.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/gcrypt/asn1.c b/src/gcrypt/asn1.c
index 9a2b5cf..be3c799 100644
--- a/src/gcrypt/asn1.c
+++ b/src/gcrypt/asn1.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -304,11 +304,11 @@ xmlSecGCryptParseDer(const xmlSecByte * der, xmlSecSize derlen,
case 3:
/* Public RSA */
type = xmlSecGCryptDerKeyTypePublicRsa;
- break;
+ break;
case 5:
/* Public DSA */
type = xmlSecGCryptDerKeyTypePublicDsa;
- break;
+ break;
case 6:
/* Private DSA */
type = xmlSecGCryptDerKeyTypePrivateDsa;
@@ -465,6 +465,7 @@ xmlSecGCryptParseDer(const xmlSecByte * der, xmlSecSize derlen,
}
/* Convert from OpenSSL parameter ordering to the OpenPGP order. */
+ /* (http://gnupg.10057.n7.nabble.com/RSA-PKCS-1-signing-differs-from-OpenSSL-s-td27920.html) */
/* First check that p < q; if not swap p and q and recompute u. */
if (gcry_mpi_cmp (keyparms[4], keyparms[5]) > 0) {
gcry_mpi_swap (keyparms[4], keyparms[5]);
@@ -474,9 +475,8 @@ xmlSecGCryptParseDer(const xmlSecByte * der, xmlSecSize derlen,
/* Build the S-expression. */
err = gcry_sexp_build (&s_priv_key, NULL,
"(private-key(rsa(n%m)(e%m)(d%m)(p%m)(q%m)(u%m)))",
- keyparms[1], keyparms[2],
- keyparms[3], keyparms[4],
- keyparms[5], keyparms[8]
+ keyparms[1], keyparms[2], keyparms[3],
+ keyparms[4], keyparms[5], keyparms[8]
);
if((err != GPG_ERR_NO_ERROR) || (s_priv_key == NULL)) {
xmlSecError(XMLSEC_ERRORS_HERE,
diff --git a/src/gcrypt/asn1.h b/src/gcrypt/asn1.h
index d05b530..b4485a4 100644
--- a/src/gcrypt/asn1.h
+++ b/src/gcrypt/asn1.h
@@ -6,13 +6,13 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GCRYPT_ASN1_H__
#define __XMLSEC_GCRYPT_ASN1_H__
#ifndef XMLSEC_PRIVATE
-#error "gcrypt/asn1.h file contains private xmlsec-gcrypt definitions and should not be used outside xmlsec or xmlsec-<crypto> libraries"
+#error "gcrypt/asn1.h file contains private xmlsec-gcrypt definitions and should not be used outside xmlsec or xmlsec-$crypto libraries"
#endif /* XMLSEC_PRIVATE */
#ifdef __cplusplus
diff --git a/src/gcrypt/asymkeys.c b/src/gcrypt/asymkeys.c
index 8f0cec8..03bb212 100644
--- a/src/gcrypt/asymkeys.c
+++ b/src/gcrypt/asymkeys.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -1082,6 +1082,11 @@ xmlSecGCryptKeyDataDsaXmlRead(xmlSecKeyDataId id,
goto done;
}
+ /* Convert from OpenSSL parameter ordering to the OpenPGP order. */
+ /* First check that x < y; if not swap x and y */
+ if((x != NULL) && (gcry_mpi_cmp (x, y) > 0)) {
+ gcry_mpi_swap (x, y);
+ }
/* construct pub/priv key pairs */
err = gcry_sexp_build(&pub_key, NULL,
diff --git a/src/gcrypt/ciphers.c b/src/gcrypt/ciphers.c
index 6192b8b..76c1d5a 100644
--- a/src/gcrypt/ciphers.c
+++ b/src/gcrypt/ciphers.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/gcrypt/crypto.c b/src/gcrypt/crypto.c
index 11def38..d02eb59 100644
--- a/src/gcrypt/crypto.c
+++ b/src/gcrypt/crypto.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/gcrypt/digests.c b/src/gcrypt/digests.c
index dcbe4c7..d947446 100644
--- a/src/gcrypt/digests.c
+++ b/src/gcrypt/digests.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/gcrypt/globals.h b/src/gcrypt/globals.h
index 7bc03c1..3da464d 100644
--- a/src/gcrypt/globals.h
+++ b/src/gcrypt/globals.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GLOBALS_H__
#define __XMLSEC_GLOBALS_H__
diff --git a/src/gcrypt/hmac.c b/src/gcrypt/hmac.c
index 192cb17..631b470 100644
--- a/src/gcrypt/hmac.c
+++ b/src/gcrypt/hmac.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef XMLSEC_NO_HMAC
#include "globals.h"
diff --git a/src/gcrypt/kw_aes.c b/src/gcrypt/kw_aes.c
index 38ac895..32bc5cc 100644
--- a/src/gcrypt/kw_aes.c
+++ b/src/gcrypt/kw_aes.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef XMLSEC_NO_AES
#include "globals.h"
diff --git a/src/gcrypt/kw_des.c b/src/gcrypt/kw_des.c
index b93eb9f..67e76c5 100644
--- a/src/gcrypt/kw_des.c
+++ b/src/gcrypt/kw_des.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef XMLSEC_NO_DES
#include "globals.h"
diff --git a/src/gcrypt/signatures.c b/src/gcrypt/signatures.c
index c49638e..1d3f77a 100644
--- a/src/gcrypt/signatures.c
+++ b/src/gcrypt/signatures.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/gcrypt/symkeys.c b/src/gcrypt/symkeys.c
index 88272fe..ecd8368 100644
--- a/src/gcrypt/symkeys.c
+++ b/src/gcrypt/symkeys.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/globals.h b/src/globals.h
index 31a57d6..5cc7070 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GLOBALS_H__
diff --git a/src/gnutls/Makefile.in b/src/gnutls/Makefile.in
index a8f22ca..2d254f6 100644
--- a/src/gnutls/Makefile.in
+++ b/src/gnutls/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -80,15 +90,14 @@ build_triplet = @build@
host_triplet = @host@
@SHAREDLIB_HACK_TRUE at am__append_1 = ../strings.c
subdir = src/gnutls
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/depcomp README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -128,7 +137,9 @@ am__libxmlsec1_gnutls_la_SOURCES_DIST = app.c ciphers.c crypto.c \
signatures.c x509utils.h x509utils.c x509.c x509vfy.c \
globals.h ../strings.c
am__objects_1 =
- at SHAREDLIB_HACK_TRUE@am__objects_2 = libxmlsec1_gnutls_la-strings.lo
+am__dirstamp = $(am__leading_dot)dirstamp
+ at SHAREDLIB_HACK_TRUE@am__objects_2 = \
+ at SHAREDLIB_HACK_TRUE@ ../libxmlsec1_gnutls_la-strings.lo
am_libxmlsec1_gnutls_la_OBJECTS = libxmlsec1_gnutls_la-app.lo \
libxmlsec1_gnutls_la-ciphers.lo libxmlsec1_gnutls_la-crypto.lo \
libxmlsec1_gnutls_la-digests.lo libxmlsec1_gnutls_la-hmac.lo \
@@ -208,6 +219,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -244,6 +256,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -263,6 +279,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -301,7 +318,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -317,7 +334,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -325,6 +341,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -344,6 +361,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -358,7 +376,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -373,6 +390,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -482,7 +500,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/gnutls/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu src/gnutls/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -535,16 +552,27 @@ clean-libLTLIBRARIES:
echo rm -f $${locs}; \
rm -f $${locs}; \
}
+../$(am__dirstamp):
+ @$(MKDIR_P) ..
+ @: > ../$(am__dirstamp)
+../$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) ../$(DEPDIR)
+ @: > ../$(DEPDIR)/$(am__dirstamp)
+../libxmlsec1_gnutls_la-strings.lo: ../$(am__dirstamp) \
+ ../$(DEPDIR)/$(am__dirstamp)
libxmlsec1-gnutls.la: $(libxmlsec1_gnutls_la_OBJECTS) $(libxmlsec1_gnutls_la_DEPENDENCIES) $(EXTRA_libxmlsec1_gnutls_la_DEPENDENCIES)
$(AM_V_CCLD)$(libxmlsec1_gnutls_la_LINK) -rpath $(libdir) $(libxmlsec1_gnutls_la_OBJECTS) $(libxmlsec1_gnutls_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
+ -rm -f ../*.$(OBJEXT)
+ -rm -f ../*.lo
distclean-compile:
-rm -f *.tab.c
+ at AMDEP_TRUE@@am__include@ @am__quote at ../$(DEPDIR)/libxmlsec1_gnutls_la-strings.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gnutls_la-app.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gnutls_la-asymkeys.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gnutls_la-ciphers.Plo at am__quote@
@@ -554,29 +582,31 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gnutls_la-kw_aes.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gnutls_la-kw_des.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gnutls_la-signatures.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gnutls_la-strings.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gnutls_la-symkeys.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gnutls_la-x509.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gnutls_la-x509utils.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_gnutls_la-x509vfy.Plo at am__quote@
.c.o:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+ at am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
@@ -672,18 +702,19 @@ libxmlsec1_gnutls_la-x509vfy.lo: x509vfy.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_gnutls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_gnutls_la-x509vfy.lo `test -f 'x509vfy.c' || echo '$(srcdir)/'`x509vfy.c
-libxmlsec1_gnutls_la-strings.lo: ../strings.c
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_gnutls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libxmlsec1_gnutls_la-strings.lo -MD -MP -MF $(DEPDIR)/libxmlsec1_gnutls_la-strings.Tpo -c -o libxmlsec1_gnutls_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libxmlsec1_gnutls_la-strings.Tpo $(DEPDIR)/libxmlsec1_gnutls_la-strings.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../strings.c' object='libxmlsec1_gnutls_la-strings.lo' libtool=yes @AMDEPBACKSLASH@
+../libxmlsec1_gnutls_la-strings.lo: ../strings.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_gnutls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libxmlsec1_gnutls_la-strings.lo -MD -MP -MF ../$(DEPDIR)/libxmlsec1_gnutls_la-strings.Tpo -c -o ../libxmlsec1_gnutls_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../$(DEPDIR)/libxmlsec1_gnutls_la-strings.Tpo ../$(DEPDIR)/libxmlsec1_gnutls_la-strings.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../strings.c' object='../libxmlsec1_gnutls_la-strings.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_gnutls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_gnutls_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_gnutls_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libxmlsec1_gnutls_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
+ -rm -rf ../.libs ../_libs
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
@@ -800,6 +831,8 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -rm -f ../$(DEPDIR)/$(am__dirstamp)
+ -rm -f ../$(am__dirstamp)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -810,7 +843,7 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-am
- -rm -rf ./$(DEPDIR)
+ -rm -rf ../$(DEPDIR) ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
@@ -856,7 +889,7 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
+ -rm -rf ../$(DEPDIR) ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -891,6 +924,8 @@ uninstall-am: uninstall-libLTLIBRARIES
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
+.PRECIOUS: Makefile
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/src/gnutls/app.c b/src/gnutls/app.c
index 856257f..042f311 100644
--- a/src/gnutls/app.c
+++ b/src/gnutls/app.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/gnutls/asymkeys.c b/src/gnutls/asymkeys.c
index 6ac68a7..8c82b70 100644
--- a/src/gnutls/asymkeys.c
+++ b/src/gnutls/asymkeys.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -141,6 +141,12 @@ xmlSecGnuTLSKeyDataDsaAdoptPrivateKey(xmlSecKeyDataPtr data, gnutls_x509_privkey
}
xmlSecGnuTLSDestroyParams(params, sizeof(params)/sizeof(params[0]));
+ /* Convert from OpenSSL parameter ordering to the OpenPGP order. */
+ /* First check that x < y; if not swap x and y */
+ if (gcry_mpi_cmp (mpis[4], mpis[3]) > 0) {
+ gcry_mpi_swap (mpis[3], mpis[4]);
+ }
+
/* build expressions */
rc = gcry_sexp_build(&(priv_key), NULL, "(private-key(dsa(p%m)(q%m)(g%m)(y%m)(x%m)))",
mpis[0], mpis[1], mpis[2], mpis[3], mpis[4]);
@@ -335,6 +341,14 @@ xmlSecGnuTLSKeyDataRsaAdoptPrivateKey(xmlSecKeyDataPtr data, gnutls_x509_privkey
}
xmlSecGnuTLSDestroyParams(params, sizeof(params)/sizeof(params[0]));
+ /* Convert from OpenSSL parameter ordering to the OpenPGP order. */
+ /* (http://gnupg.10057.n7.nabble.com/RSA-PKCS-1-signing-differs-from-OpenSSL-s-td27920.html) */
+ /* First check that p < q; if not swap p and q and recompute u. */
+ if (gcry_mpi_cmp(mpis[3], mpis[4]) > 0) {
+ gcry_mpi_swap(mpis[3], mpis[4]);
+ gcry_mpi_invm(mpis[5], mpis[3], mpis[4]);
+ }
+
/* build expressions */
rc = gcry_sexp_build(&(priv_key), NULL, "(private-key(rsa((n%m)(e%m)(d%m)(p%m)(q%m)(u%m))))",
mpis[0], mpis[1], mpis[2],
diff --git a/src/gnutls/ciphers.c b/src/gnutls/ciphers.c
index eacfede..e38fa7d 100644
--- a/src/gnutls/ciphers.c
+++ b/src/gnutls/ciphers.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/gnutls/crypto.c b/src/gnutls/crypto.c
index 83175e6..0921f2c 100644
--- a/src/gnutls/crypto.c
+++ b/src/gnutls/crypto.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/gnutls/digests.c b/src/gnutls/digests.c
index 2df2070..94f3aa6 100644
--- a/src/gnutls/digests.c
+++ b/src/gnutls/digests.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/gnutls/globals.h b/src/gnutls/globals.h
index b49e240..1f9f35c 100644
--- a/src/gnutls/globals.h
+++ b/src/gnutls/globals.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GLOBALS_H__
#define __XMLSEC_GLOBALS_H__
diff --git a/src/gnutls/hmac.c b/src/gnutls/hmac.c
index 5d1acfc..7656805 100644
--- a/src/gnutls/hmac.c
+++ b/src/gnutls/hmac.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef XMLSEC_NO_HMAC
#include "globals.h"
diff --git a/src/gnutls/kw_aes.c b/src/gnutls/kw_aes.c
index 63f8a6b..4186374 100644
--- a/src/gnutls/kw_aes.c
+++ b/src/gnutls/kw_aes.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef XMLSEC_NO_AES
#include "globals.h"
diff --git a/src/gnutls/kw_des.c b/src/gnutls/kw_des.c
index 5d2a2e5..79660bd 100644
--- a/src/gnutls/kw_des.c
+++ b/src/gnutls/kw_des.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef XMLSEC_NO_DES
#include "globals.h"
diff --git a/src/gnutls/signatures.c b/src/gnutls/signatures.c
index 98d1f83..136644c 100644
--- a/src/gnutls/signatures.c
+++ b/src/gnutls/signatures.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/gnutls/symkeys.c b/src/gnutls/symkeys.c
index b1521d6..74727ee 100644
--- a/src/gnutls/symkeys.c
+++ b/src/gnutls/symkeys.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/gnutls/x509.c b/src/gnutls/x509.c
index 52d46ab..a3e3370 100644
--- a/src/gnutls/x509.c
+++ b/src/gnutls/x509.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -627,7 +627,7 @@ xmlSecGnuTLSKeyDataX509XmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlSecAssert2(node != NULL, -1);
xmlSecAssert2(keyInfoCtx != NULL, -1);
- content = xmlSecX509DataGetNodeContent (node, 1, keyInfoCtx);
+ content = xmlSecX509DataGetNodeContent (node, keyInfoCtx);
if (content < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
@@ -994,11 +994,11 @@ xmlSecGnuTLSX509CertificateNodeWrite(gnutls_x509_crt_t cert, xmlNodePtr node, xm
return(-1);
}
- cur = xmlSecAddChild(node, xmlSecNodeX509Certificate, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509Certificate, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509Certificate));
@@ -1137,11 +1137,11 @@ xmlSecGnuTLSX509SubjectNameNodeWrite(gnutls_x509_crt_t cert, xmlNodePtr node, xm
xmlSecAssert2(node != NULL, -1);
/* add node */
- cur = xmlSecAddChild(node, xmlSecNodeX509SubjectName, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509SubjectName, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509SubjectName));
@@ -1326,33 +1326,33 @@ xmlSecGnuTLSX509IssuerSerialNodeWrite(gnutls_x509_crt_t cert, xmlNodePtr node, x
xmlSecAssert2(node != NULL, -1);
/* create xml nodes */
- cur = xmlSecAddChild(node, xmlSecNodeX509IssuerSerial, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509IssuerSerial, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509IssuerSerial));
return(-1);
}
- issuerNameNode = xmlSecAddChild(cur, xmlSecNodeX509IssuerName, xmlSecDSigNs);
+ issuerNameNode = xmlSecEnsureEmptyChild(cur, xmlSecNodeX509IssuerName, xmlSecDSigNs);
if(issuerNameNode == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509IssuerName));
return(-1);
}
- issuerNumberNode = xmlSecAddChild(cur, xmlSecNodeX509SerialNumber, xmlSecDSigNs);
+ issuerNumberNode = xmlSecEnsureEmptyChild(cur, xmlSecNodeX509SerialNumber, xmlSecDSigNs);
if(issuerNumberNode == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509SerialNumber));
@@ -1481,11 +1481,11 @@ xmlSecGnuTLSX509SKINodeWrite(gnutls_x509_crt_t cert, xmlNodePtr node, xmlSecKeyI
xmlSecAssert2(node != NULL, -1);
/* add node */
- cur = xmlSecAddChild(node, xmlSecNodeX509SKI, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509SKI, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"new_node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509SKI));
@@ -1582,11 +1582,11 @@ xmlSecGnuTLSX509CRLNodeWrite(gnutls_x509_crl_t crl, xmlNodePtr node, xmlSecKeyIn
return(-1);
}
- cur = xmlSecAddChild(node, xmlSecNodeX509CRL, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509CRL, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"new_node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509CRL));
diff --git a/src/gnutls/x509utils.c b/src/gnutls/x509utils.c
index 0dc7000..2ab4df2 100644
--- a/src/gnutls/x509utils.c
+++ b/src/gnutls/x509utils.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/gnutls/x509utils.h b/src/gnutls/x509utils.h
index b939b24..3954994 100644
--- a/src/gnutls/x509utils.h
+++ b/src/gnutls/x509utils.h
@@ -7,13 +7,13 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GNUTLS_X509UTILS_H__
#define __XMLSEC_GNUTLS_X509UTILS_H__
#ifndef XMLSEC_PRIVATE
-#error "gnutls/x509utils.h file contains private xmlsec definitions and should not be used outside xmlsec or xmlsec-<crypto> libraries"
+#error "gnutls/x509utils.h file contains private xmlsec definitions and should not be used outside xmlsec or xmlsec-$crypto libraries"
#endif /* XMLSEC_PRIVATE */
#ifdef __cplusplus
@@ -67,7 +67,7 @@ void xmlSecGnuTLSX509CertDebugXmlDump (gnutls_x509_crt
*
************************************************************************/
gnutls_x509_crl_t xmlSecGnuTLSX509CrlDup (gnutls_x509_crl_t src);
-xmlChar * xmlSecGnuTLSX509CrLGetIssuerDN (gnutls_x509_crl_t crl);
+xmlChar * xmlSecGnuTLSX509CrlGetIssuerDN (gnutls_x509_crl_t crl);
gnutls_x509_crl_t xmlSecGnuTLSX509CrlRead (const xmlSecByte* buf,
xmlSecSize size,
xmlSecKeyDataFormat format);
diff --git a/src/gnutls/x509vfy.c b/src/gnutls/x509vfy.c
index fd15c5a..f302d8f 100644
--- a/src/gnutls/x509vfy.c
+++ b/src/gnutls/x509vfy.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/io.c b/src/io.c
index 42e9133..7d36171 100644
--- a/src/io.c
+++ b/src/io.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -66,7 +66,7 @@ xmlSecIOCallbackCreate(xmlInputMatchCallback matchFunc, xmlInputOpenCallback ope
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
"sizeof(xmlSecIOCallback)=%d",
- sizeof(xmlSecIOCallback));
+ (int)sizeof(xmlSecIOCallback));
return(NULL);
}
memset(callbacks, 0, sizeof(xmlSecIOCallback));
@@ -433,6 +433,35 @@ xmlSecTransformInputURIOpen(xmlSecTransformPtr transform, const xmlChar *uri) {
return(0);
}
+
+/**
+ * xmlSecTransformInputURIClose:
+ * @transform: the pointer to IO transform.
+ *
+ * Closes the given @transform and frees up resourses.
+ *
+ * Returns: 0 on success or a negative value otherwise.
+ */
+int
+xmlSecTransformInputURIClose(xmlSecTransformPtr transform) {
+ xmlSecInputURICtxPtr ctx;
+
+ xmlSecAssert2(xmlSecTransformCheckId(transform, xmlSecTransformInputURIId), -1);
+
+ ctx = xmlSecTransformInputUriGetCtx(transform);
+ xmlSecAssert2(ctx != NULL, -1);
+
+ /* close if still open and mark as closed */
+ if((ctx->clbksCtx != NULL) && (ctx->clbks != NULL) && (ctx->clbks->closecallback != NULL)) {
+ (ctx->clbks->closecallback)(ctx->clbksCtx);
+ ctx->clbksCtx = NULL;
+ ctx->clbks = NULL;
+ }
+
+ /* done */
+ return(0);
+}
+
static int
xmlSecTransformInputURIInitialize(xmlSecTransformPtr transform) {
xmlSecInputURICtxPtr ctx;
@@ -448,17 +477,27 @@ xmlSecTransformInputURIInitialize(xmlSecTransformPtr transform) {
static void
xmlSecTransformInputURIFinalize(xmlSecTransformPtr transform) {
- xmlSecInputURICtxPtr ctx;
+ xmlSecInputURICtxPtr ctx;
+ int ret;
xmlSecAssert(xmlSecTransformCheckId(transform, xmlSecTransformInputURIId));
ctx = xmlSecTransformInputUriGetCtx(transform);
xmlSecAssert(ctx != NULL);
- if((ctx->clbksCtx != NULL) && (ctx->clbks != NULL) && (ctx->clbks->closecallback != NULL)) {
- (ctx->clbks->closecallback)(ctx->clbksCtx);
- }
+ ret = xmlSecTransformInputURIClose(transform);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecTransformInputURIClose",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ "ret=%d", ret);
+ /* ignore the error */
+ /* return; */
+ }
+
memset(ctx, 0, sizeof(xmlSecInputURICtx));
+ return;
}
static int
diff --git a/src/keyinfo.c b/src/keyinfo.c
index 00390fa..958492f 100644
--- a/src/keyinfo.c
+++ b/src/keyinfo.c
@@ -39,7 +39,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -227,7 +227,7 @@ xmlSecKeyInfoCtxCreate(xmlSecKeysMngrPtr keysMngr) {
NULL,
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
- "size=%d", sizeof(xmlSecKeyInfoCtx));
+ "size=%d", (int)sizeof(xmlSecKeyInfoCtx));
return(NULL);
}
@@ -761,7 +761,16 @@ xmlSecKeyDataNameXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key, xmlNodePtr node,
/* finally set key name if it is not there */
if(xmlSecKeyGetName(key) == NULL) {
- xmlSecKeySetName(key, newName);
+ ret = xmlSecKeySetName(key, newName);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
+ "xmlSecKeySetName",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ xmlFree(newName);
+ return(-1);
+ }
}
xmlFree(newName);
return(0);
diff --git a/src/keys.c b/src/keys.c
index 1d2f733..456565b 100644
--- a/src/keys.c
+++ b/src/keys.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -112,7 +112,7 @@ xmlSecKeyUseWithCreate(const xmlChar* application, const xmlChar* identifier) {
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
"sizeof(xmlSecKeyUseWith)=%d",
- sizeof(xmlSecKeyUseWith));
+ (int)sizeof(xmlSecKeyUseWith));
return(NULL);
}
memset(keyUseWith, 0, sizeof(xmlSecKeyUseWith));
@@ -548,7 +548,7 @@ xmlSecKeyCreate(void) {
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
"sizeof(xmlSecKey)=%d",
- sizeof(xmlSecKey));
+ (int)sizeof(xmlSecKey));
return(NULL);
}
memset(key, 0, sizeof(xmlSecKey));
diff --git a/src/keysdata.c b/src/keysdata.c
index de854ba..30c800d 100644
--- a/src/keysdata.c
+++ b/src/keysdata.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -255,7 +255,7 @@ xmlSecKeyDataDuplicate(xmlSecKeyDataPtr data) {
}
ret = (data->id->duplicate)(newData, data);
- if(newData == NULL) {
+ if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataGetName(data)),
"id->duplicate",
diff --git a/src/keysmngr.c b/src/keysmngr.c
index 31a03e9..5315203 100644
--- a/src/keysmngr.c
+++ b/src/keysmngr.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -53,7 +53,7 @@ xmlSecKeysMngrCreate(void) {
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
"sizeof(xmlSecKeysMngr)=%d",
- sizeof(xmlSecKeysMngr));
+ (int)sizeof(xmlSecKeysMngr));
return(NULL);
}
memset(mngr, 0, sizeof(xmlSecKeysMngr));
diff --git a/src/kw_aes_des.c b/src/kw_aes_des.c
index 022e720..93a83d7 100644
--- a/src/kw_aes_des.c
+++ b/src/kw_aes_des.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -16,6 +16,7 @@
#include <libxml/tree.h>
#include <xmlsec/xmlsec.h>
+#include <xmlsec/buffer.h>
#include <xmlsec/errors.h>
#include "kw_aes_des.h"
@@ -170,6 +171,7 @@ xmlSecKWDes3Decode(xmlSecKWDes3Id kwDes3Id, void *context,
xmlSecByte *out, xmlSecSize outSize)
{
xmlSecByte sha1[XMLSEC_KW_DES3_SHA_DIGEST_LENGTH];
+ xmlSecBufferPtr tmp;
xmlSecSize s;
int ret;
@@ -182,35 +184,47 @@ xmlSecKWDes3Decode(xmlSecKWDes3Id kwDes3Id, void *context,
/* step 2: first decryption with static IV, result is TEMP3 */
+ tmp = xmlSecBufferCreate(inSize);
+ if(tmp == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlSecBufferCreate",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ "inSize=%d", (int)inSize);
+ return(-1);
+ }
+
ret = kwDes3Id->decrypt(context,
xmlSecKWDes3Iv, sizeof(xmlSecKWDes3Iv),
in, inSize,
- out, outSize);
+ xmlSecBufferGetData(tmp), xmlSecBufferGetMaxSize(tmp));
if((ret < 0) || (ret < XMLSEC_KW_DES3_IV_LENGTH)) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
"kwDes3Id->decrypt",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"ret=%d", ret);
+ xmlSecBufferDestroy(tmp);
return(-1);
}
s = ret;
/* step 3: reverse octets order in TEMP3, result is TEMP2 */
- ret = xmlSecKWDes3BufferReverse(out, s);
+ ret = xmlSecKWDes3BufferReverse(xmlSecBufferGetData(tmp), s);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
"xmlSecKWDes3BufferReverse",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"ret=%d", ret);
+ xmlSecBufferDestroy(tmp);
return(-1);
}
/* steps 4 and 5: get IV and decrypt second time, result is WKCKS */
ret = kwDes3Id->decrypt(context,
- out, XMLSEC_KW_DES3_IV_LENGTH,
- out + XMLSEC_KW_DES3_IV_LENGTH, s - XMLSEC_KW_DES3_IV_LENGTH,
+ xmlSecBufferGetData(tmp), XMLSEC_KW_DES3_IV_LENGTH,
+ xmlSecBufferGetData(tmp) + XMLSEC_KW_DES3_IV_LENGTH, s - XMLSEC_KW_DES3_IV_LENGTH,
out, outSize);
if((ret < 0) || (ret < XMLSEC_KW_DES3_BLOCK_LENGTH)) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -218,6 +232,7 @@ xmlSecKWDes3Decode(xmlSecKWDes3Id kwDes3Id, void *context,
"kwDes3Id->decrypt",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"ret=%d", ret);
+ xmlSecBufferDestroy(tmp);
return(-1);
}
s = ret - XMLSEC_KW_DES3_BLOCK_LENGTH;
@@ -232,6 +247,7 @@ xmlSecKWDes3Decode(xmlSecKWDes3Id kwDes3Id, void *context,
"kwDes3Id->sha1",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"ret=%d", ret);
+ xmlSecBufferDestroy(tmp);
return(-1);
}
@@ -243,10 +259,12 @@ xmlSecKWDes3Decode(xmlSecKWDes3Id kwDes3Id, void *context,
NULL,
XMLSEC_ERRORS_R_INVALID_DATA,
"SHA1 does not match");
+ xmlSecBufferDestroy(tmp);
return(-1);
}
/* done */
+ xmlSecBufferDestroy(tmp);
return(s);
}
diff --git a/src/kw_aes_des.h b/src/kw_aes_des.h
index 46e8527..19c9851 100644
--- a/src/kw_aes_des.h
+++ b/src/kw_aes_des.h
@@ -9,13 +9,13 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin, All rights reserved.
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_KT_AES_DES_H__
#define __XMLSEC_KT_AES_DES_H__
#ifndef XMLSEC_PRIVATE
-#error "private.h file contains private xmlsec definitions and should not be used outside xmlsec or xmlsec-<crypto> libraries"
+#error "private.h file contains private xmlsec definitions and should not be used outside xmlsec or xmlsec-$crypto libraries"
#endif /* XMLSEC_PRIVATE */
#ifdef __cplusplus
diff --git a/src/list.c b/src/list.c
index d1a0053..40650ca 100644
--- a/src/list.c
+++ b/src/list.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -65,7 +65,7 @@ xmlSecPtrListCreate(xmlSecPtrListId id) {
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
"sizeof(xmlSecPtrList)=%d",
- sizeof(xmlSecPtrList));
+ (int)sizeof(xmlSecPtrList));
return(NULL);
}
@@ -479,7 +479,7 @@ xmlSecPtrListEnsureSize(xmlSecPtrListPtr list, xmlSecSize size) {
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
"sizeof(xmlSecPtr)*%d=%d",
- newSize, sizeof(xmlSecPtr) * newSize);
+ newSize, (int)(sizeof(xmlSecPtr) * newSize));
return(-1);
}
diff --git a/src/membuf.c b/src/membuf.c
index eb78156..24cca3d 100644
--- a/src/membuf.c
+++ b/src/membuf.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/mscrypto/Makefile.in b/src/mscrypto/Makefile.in
index 2697d86..f8ad32b 100644
--- a/src/mscrypto/Makefile.in
+++ b/src/mscrypto/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -80,15 +90,14 @@ build_triplet = @build@
host_triplet = @host@
@SHAREDLIB_HACK_TRUE at am__append_1 = ../strings.c
subdir = src/mscrypto
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/depcomp README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -128,8 +137,9 @@ am__libxmlsec1_mscrypto_la_SOURCES_DIST = globals.h private.h app.c \
kw_aes.c kw_des.c kt_rsa.c signatures.c symkeys.c x509.c \
x509vfy.c csp_calg.h csp_oid.h xmlsec-mingw.h ../strings.c
am__objects_1 =
+am__dirstamp = $(am__leading_dot)dirstamp
@SHAREDLIB_HACK_TRUE at am__objects_2 = \
- at SHAREDLIB_HACK_TRUE@ libxmlsec1_mscrypto_la-strings.lo
+ at SHAREDLIB_HACK_TRUE@ ../libxmlsec1_mscrypto_la-strings.lo
am_libxmlsec1_mscrypto_la_OBJECTS = libxmlsec1_mscrypto_la-app.lo \
libxmlsec1_mscrypto_la-certkeys.lo \
libxmlsec1_mscrypto_la-ciphers.lo \
@@ -214,6 +224,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -250,6 +261,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -269,6 +284,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -307,7 +323,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -323,7 +339,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -331,6 +346,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -350,6 +366,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -364,7 +381,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -379,6 +395,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -487,7 +504,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/mscrypto/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu src/mscrypto/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -540,16 +556,27 @@ clean-libLTLIBRARIES:
echo rm -f $${locs}; \
rm -f $${locs}; \
}
+../$(am__dirstamp):
+ @$(MKDIR_P) ..
+ @: > ../$(am__dirstamp)
+../$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) ../$(DEPDIR)
+ @: > ../$(DEPDIR)/$(am__dirstamp)
+../libxmlsec1_mscrypto_la-strings.lo: ../$(am__dirstamp) \
+ ../$(DEPDIR)/$(am__dirstamp)
libxmlsec1-mscrypto.la: $(libxmlsec1_mscrypto_la_OBJECTS) $(libxmlsec1_mscrypto_la_DEPENDENCIES) $(EXTRA_libxmlsec1_mscrypto_la_DEPENDENCIES)
$(AM_V_CCLD)$(libxmlsec1_mscrypto_la_LINK) -rpath $(libdir) $(libxmlsec1_mscrypto_la_OBJECTS) $(libxmlsec1_mscrypto_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
+ -rm -f ../*.$(OBJEXT)
+ -rm -f ../*.lo
distclean-compile:
-rm -f *.tab.c
+ at AMDEP_TRUE@@am__include@ @am__quote at ../$(DEPDIR)/libxmlsec1_mscrypto_la-strings.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_mscrypto_la-app.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_mscrypto_la-certkeys.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_mscrypto_la-ciphers.Plo at am__quote@
@@ -561,28 +588,30 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_mscrypto_la-kw_aes.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_mscrypto_la-kw_des.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_mscrypto_la-signatures.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_mscrypto_la-strings.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_mscrypto_la-symkeys.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_mscrypto_la-x509.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_mscrypto_la-x509vfy.Plo at am__quote@
.c.o:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+ at am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
@@ -685,18 +714,19 @@ libxmlsec1_mscrypto_la-x509vfy.lo: x509vfy.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_mscrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_mscrypto_la-x509vfy.lo `test -f 'x509vfy.c' || echo '$(srcdir)/'`x509vfy.c
-libxmlsec1_mscrypto_la-strings.lo: ../strings.c
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_mscrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libxmlsec1_mscrypto_la-strings.lo -MD -MP -MF $(DEPDIR)/libxmlsec1_mscrypto_la-strings.Tpo -c -o libxmlsec1_mscrypto_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libxmlsec1_mscrypto_la-strings.Tpo $(DEPDIR)/libxmlsec1_mscrypto_la-strings.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../strings.c' object='libxmlsec1_mscrypto_la-strings.lo' libtool=yes @AMDEPBACKSLASH@
+../libxmlsec1_mscrypto_la-strings.lo: ../strings.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_mscrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libxmlsec1_mscrypto_la-strings.lo -MD -MP -MF ../$(DEPDIR)/libxmlsec1_mscrypto_la-strings.Tpo -c -o ../libxmlsec1_mscrypto_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../$(DEPDIR)/libxmlsec1_mscrypto_la-strings.Tpo ../$(DEPDIR)/libxmlsec1_mscrypto_la-strings.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../strings.c' object='../libxmlsec1_mscrypto_la-strings.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_mscrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_mscrypto_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_mscrypto_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libxmlsec1_mscrypto_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
+ -rm -rf ../.libs ../_libs
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
@@ -813,6 +843,8 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -rm -f ../$(DEPDIR)/$(am__dirstamp)
+ -rm -f ../$(am__dirstamp)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -823,7 +855,7 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-am
- -rm -rf ./$(DEPDIR)
+ -rm -rf ../$(DEPDIR) ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
@@ -869,7 +901,7 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
+ -rm -rf ../$(DEPDIR) ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -904,6 +936,8 @@ uninstall-am: uninstall-libLTLIBRARIES
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
+.PRECIOUS: Makefile
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/src/mscrypto/app.c b/src/mscrypto/app.c
index 8240983..bcb0ea1 100644
--- a/src/mscrypto/app.c
+++ b/src/mscrypto/app.c
@@ -5,7 +5,7 @@
* distribution for preciese wording.
*
* Copyright (C) 2003 Cordys R&D BV, All rights reserved.
- * Copyright (C) 2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2003-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/mscrypto/certkeys.c b/src/mscrypto/certkeys.c
index 12c2e40..8a3b324 100644
--- a/src/mscrypto/certkeys.c
+++ b/src/mscrypto/certkeys.c
@@ -5,7 +5,7 @@
* distribution for preciese wording.
*
* Copyright (C) 2003 Cordys R&D BV, All rights reserved.
- * Copyright (C) 2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2003-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -2612,4 +2612,41 @@ xmlSecMSCryptoKeyDataGost2001DebugXmlDump(xmlSecKeyDataPtr data, FILE* output) {
xmlSecMSCryptoKeyDataGost2001GetSize(data));
}
+PCRYPT_KEY_PROV_INFO xmlSecMSCryptoKeyDataGetMSCryptoProviderInfo(xmlSecKeyDataPtr data) {
+ xmlSecMSCryptoKeyDataCtxPtr ctx;
+ LPBYTE pInfoData = NULL;
+ DWORD dwInfoDataLength = 0;
+
+ xmlSecAssert2(data != NULL, NULL);
+
+ ctx = xmlSecMSCryptoKeyDataGetCtx(data);
+ xmlSecAssert2(ctx != NULL, NULL);
+ xmlSecAssert2(ctx->pCert != NULL, NULL);
+
+ if(!CertGetCertificateContextProperty(ctx->pCert, CERT_KEY_PROV_INFO_PROP_ID, NULL, &dwInfoDataLength)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "CertGetCertificateContextProperty",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return NULL;
+ }
+
+ if(dwInfoDataLength > 0) {
+ pInfoData = malloc(dwInfoDataLength * sizeof(BYTE));
+
+ if(!CertGetCertificateContextProperty(ctx->pCert, CERT_KEY_PROV_INFO_PROP_ID, pInfoData, &dwInfoDataLength)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "CertGetCertificateContextProperty",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ free(pInfoData);
+ return NULL;
+ }
+ }
+
+ return (PCRYPT_KEY_PROV_INFO)pInfoData;
+}
+
#endif /* XMLSEC_NO_GOST*/
diff --git a/src/mscrypto/ciphers.c b/src/mscrypto/ciphers.c
index ea2edcd..2ac3da0 100644
--- a/src/mscrypto/ciphers.c
+++ b/src/mscrypto/ciphers.c
@@ -5,7 +5,7 @@
* distribution for preciese wording.
*
* Copyright (C) 2003 Cordys R&D BV, All rights reserved.
- * Copyright (C) 2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2003-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/mscrypto/crypto.c b/src/mscrypto/crypto.c
index 82ab101..aea9685 100644
--- a/src/mscrypto/crypto.c
+++ b/src/mscrypto/crypto.c
@@ -5,7 +5,7 @@
* distribution for preciese wording.
*
* Copyright (C) 2003 Cordys R&D BV, All rights reserved.
- * Copyright (C) 2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2003-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
* Copyright (c) 2005-2006 Cryptocom LTD (http://www.cryptocom.ru).
*/
#include "globals.h"
diff --git a/src/mscrypto/globals.h b/src/mscrypto/globals.h
index 2b88d5d..35cbf24 100644
--- a/src/mscrypto/globals.h
+++ b/src/mscrypto/globals.h
@@ -22,18 +22,5 @@
#define IN_XMLSEC_CRYPTO
#define XMLSEC_PRIVATE
-/* OpenSSL 0.9.6 and 0.9.7 do not have SHA 224/256/384/512 */
-#if defined(XMLSEC_OPENSSL_096) || defined(XMLSEC_OPENSSL_097)
-#define XMLSEC_NO_SHA224 1
-#define XMLSEC_NO_SHA256 1
-#define XMLSEC_NO_SHA384 1
-#define XMLSEC_NO_SHA512 1
-#endif /* defined(XMLSEC_OPENSSL_096) || defined(XMLSEC_OPENSSL_097) */
-
-/* OpenSSL 0.9.6 does not have AES */
-#if defined(XMLSEC_OPENSSL_096)
-#define XMLSEC_NO_AES 1
-#endif /* XMLSEC_OPENSSL_096 */
-
#endif /* ! __XMLSEC_GLOBALS_H__ */
diff --git a/src/mscrypto/hmac.c b/src/mscrypto/hmac.c
index e870983..3637024 100644
--- a/src/mscrypto/hmac.c
+++ b/src/mscrypto/hmac.c
@@ -13,7 +13,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef XMLSEC_NO_HMAC
#include "globals.h"
diff --git a/src/mscrypto/keysstore.c b/src/mscrypto/keysstore.c
index 33f0cd2..8ead554 100644
--- a/src/mscrypto/keysstore.c
+++ b/src/mscrypto/keysstore.c
@@ -13,7 +13,7 @@
* distribution for precise wording.
*
* Copyright (C) 2003 Cordys R&D BV, All rights reserved.
- * Copyright (C) 2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2003-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/mscrypto/kw_aes.c b/src/mscrypto/kw_aes.c
index 14e96d5..71ac447 100644
--- a/src/mscrypto/kw_aes.c
+++ b/src/mscrypto/kw_aes.c
@@ -5,7 +5,7 @@
* distribution for preciese wording.
*
* Copyright (C) 2003 Cordys R&D BV, All rights reserved.
- * Copyright (C) 2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2003-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/mscrypto/kw_des.c b/src/mscrypto/kw_des.c
index 6ef356d..227e76d 100644
--- a/src/mscrypto/kw_des.c
+++ b/src/mscrypto/kw_des.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef XMLSEC_NO_DES
#include "globals.h"
diff --git a/src/mscrypto/private.h b/src/mscrypto/private.h
index 11479bf..37e7b9a 100644
--- a/src/mscrypto/private.h
+++ b/src/mscrypto/private.h
@@ -7,13 +7,13 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2010 Aleksey Sanin, All rights reserved.
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_MSCRYPTO_PRIVATE_H__
#define __XMLSEC_MSCRYPTO_PRIVATE_H__
#ifndef XMLSEC_PRIVATE
-#error "private.h file contains private xmlsec definitions and should not be used outside xmlsec or xmlsec-<crypto> libraries"
+#error "private.h file contains private xmlsec definitions and should not be used outside xmlsec or xmlsec-$crypto libraries"
#endif /* XMLSEC_PRIVATE */
#if defined(__MINGW32__)
diff --git a/src/mscrypto/signatures.c b/src/mscrypto/signatures.c
index 2c51f09..342b652 100644
--- a/src/mscrypto/signatures.c
+++ b/src/mscrypto/signatures.c
@@ -5,7 +5,7 @@
* distribution for preciese wording.
*
* Copyright (C) 2003 Cordys R&D BV, All rights reserved.
- * Copyright (C) 2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2003-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
* Copyright (c) 2005-2006 Cryptocom LTD (http://www.cryptocom.ru).
*/
#include "globals.h"
@@ -430,6 +430,11 @@ xmlSecMSCryptoSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecTra
int ret;
DWORD dwSigLen;
BYTE *tmpBuf, *outBuf;
+ int bOk;
+ PCRYPT_KEY_PROV_INFO pProviderInfo = NULL;
+ char strContName[1000];
+ char strProvName[1000];
+ size_t size;
xmlSecAssert2(xmlSecMSCryptoSignatureCheckId(transform), -1);
xmlSecAssert2((transform->operation == xmlSecTransformOperationSign) || (transform->operation == xmlSecTransformOperationVerify), -1);
@@ -460,7 +465,101 @@ xmlSecMSCryptoSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecTra
return (-1);
}
- if (!CryptCreateHash(hProv, ctx->digestAlgId, 0, 0, &(ctx->mscHash))) {
+ //First try create hash with provider acquired in function xmlSecMSCryptoKeyDataAdoptCert.
+ bOk = CryptCreateHash(hProv, ctx->digestAlgId, 0, 0, &(ctx->mscHash));
+
+ //Then try it with container name, provider name and type acquired from certificate context.
+ if(!bOk) {
+ pProviderInfo = xmlSecMSCryptoKeyDataGetMSCryptoProviderInfo(ctx->data);
+
+ if(pProviderInfo == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlSecMSCryptoKeyDataGetMSCryptoProviderInfo",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ ret = wcstombs_s(&size, strContName, 1000, pProviderInfo->pwszContainerName, _TRUNCATE);
+ if(ret != 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "wcstombs_s",
+ XMLSEC_ERRORS_R_INVALID_DATA,
+ "ret=%d", ret);
+ return(-1);
+ }
+
+ ret = wcstombs_s(&size, strProvName, 1000, pProviderInfo->pwszProvName, _TRUNCATE);
+ if(ret != 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "wcstombs_s",
+ XMLSEC_ERRORS_R_INVALID_DATA,
+ "ret=%d", ret);
+ return(-1);
+ }
+
+ if(!CryptReleaseContext(hProv, 0)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "CryptReleaseContext",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ hProv = NULL;
+
+ if(!CryptAcquireContext(&hProv,
+ strContName,
+ strProvName,
+ pProviderInfo->dwProvType,
+ 0)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "CryptAcquireContext",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ bOk = CryptCreateHash(hProv, ctx->digestAlgId, 0, 0, &(ctx->mscHash));
+ }
+
+ //Last try it with PROV_RSA_AES provider type.
+ if(!bOk) {
+ if (!CryptReleaseContext(hProv, 0)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "CryptReleaseContext",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ hProv = NULL;
+
+ if(!CryptAcquireContext(&hProv,
+ strContName,
+ NULL,
+ PROV_RSA_AES,
+ 0)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "CryptAcquireContext",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ bOk = CryptCreateHash(hProv, ctx->digestAlgId, 0, 0, &(ctx->mscHash));
+ }
+
+ if(pProviderInfo != NULL) {
+ free(pProviderInfo);
+ }
+
+ if(!bOk) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
"CryptCreateHash",
diff --git a/src/mscrypto/x509.c b/src/mscrypto/x509.c
index 09aab7f..f35a8b9 100644
--- a/src/mscrypto/x509.c
+++ b/src/mscrypto/x509.c
@@ -8,7 +8,7 @@
* distribution for preciese wording.
*
* Copyright (C) 2003 Cordys R&D BV, All rights reserved.
- * Copyright (C) 2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2003-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -728,7 +728,7 @@ xmlSecMSCryptoKeyDataX509XmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlSecAssert2(node != NULL, -1);
xmlSecAssert2(keyInfoCtx != NULL, -1);
- content = xmlSecX509DataGetNodeContent (node, 1, keyInfoCtx);
+ content = xmlSecX509DataGetNodeContent (node, keyInfoCtx);
if (content < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
@@ -1043,11 +1043,11 @@ xmlSecMSCryptoX509CertificateNodeWrite(PCCERT_CONTEXT cert, xmlNodePtr node,
return(-1);
}
- cur = xmlSecAddChild(node, xmlSecNodeX509Certificate, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509Certificate, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509Certificate));
@@ -1151,11 +1151,11 @@ xmlSecMSCryptoX509SubjectNameNodeWrite(PCCERT_CONTEXT cert, xmlNodePtr node, xml
return(-1);
}
- cur = xmlSecAddChild(node, xmlSecNodeX509SubjectName, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509SubjectName, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509SubjectName));
@@ -1314,33 +1314,33 @@ xmlSecMSCryptoX509IssuerSerialNodeWrite(PCCERT_CONTEXT cert,
xmlSecAssert2(node != NULL, -1);
/* create xml nodes */
- cur = xmlSecAddChild(node, xmlSecNodeX509IssuerSerial, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509IssuerSerial, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509IssuerSerial));
return(-1);
}
- issuerNameNode = xmlSecAddChild(cur, xmlSecNodeX509IssuerName, xmlSecDSigNs);
+ issuerNameNode = xmlSecEnsureEmptyChild(cur, xmlSecNodeX509IssuerName, xmlSecDSigNs);
if(issuerNameNode == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509IssuerName));
return(-1);
}
- issuerNumberNode = xmlSecAddChild(cur, xmlSecNodeX509SerialNumber, xmlSecDSigNs);
+ issuerNumberNode = xmlSecEnsureEmptyChild(cur, xmlSecNodeX509SerialNumber, xmlSecDSigNs);
if(issuerNumberNode == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509SerialNumber));
@@ -1461,11 +1461,11 @@ xmlSecMSCryptoX509SKINodeWrite(PCCERT_CONTEXT cert, xmlNodePtr node, xmlSecKeyIn
return(-1);
}
- cur = xmlSecAddChild(node, xmlSecNodeX509SKI, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509SKI, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"new_node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509SKI));
@@ -1549,11 +1549,11 @@ xmlSecMSCryptoX509CRLNodeWrite(PCCRL_CONTEXT crl, xmlNodePtr node, xmlSecKeyInfo
return(-1);
}
- cur = xmlSecAddChild(node, xmlSecNodeX509CRL, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509CRL, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"new_node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509CRL));
diff --git a/src/mscrypto/x509vfy.c b/src/mscrypto/x509vfy.c
index 16b63db..899cb6e 100644
--- a/src/mscrypto/x509vfy.c
+++ b/src/mscrypto/x509vfy.c
@@ -8,7 +8,7 @@
* distribution for preciese wording.
*
* Copyright (C) 2003 Cordys R&D BV, All rights reserved.
- * Copyright (C) 2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2003-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -1183,7 +1183,7 @@ xmlSecMSCryptoX509GetCertName(const xmlChar * name) {
"xmlSecMSCryptoConvertUtf8ToTstr",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
- xmlFree(name2);
+ xmlFree(name2);
return(NULL);
}
diff --git a/src/mscrypto/xmlsec-mingw.h b/src/mscrypto/xmlsec-mingw.h
index ef5d2ae..da7d1d0 100644
--- a/src/mscrypto/xmlsec-mingw.h
+++ b/src/mscrypto/xmlsec-mingw.h
@@ -11,7 +11,7 @@
#define __XMLSEC_MSCRYPTO_XMLSEC_MINGW_H__
#ifndef XMLSEC_PRIVATE
-#error "xmlsec-mingw.h file contains private xmlsec definitions for mingw build and should not be used outside xmlsec or xmlsec-<crypto> libraries"
+#error "xmlsec-mingw.h file contains private xmlsec definitions for mingw build and should not be used outside xmlsec or xmlsec-$crypto libraries"
#endif /* XMLSEC_PRIVATE */
diff --git a/src/nodeset.c b/src/nodeset.c
index 04ae810..800f150 100644
--- a/src/nodeset.c
+++ b/src/nodeset.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -57,7 +57,7 @@ xmlSecNodeSetCreate(xmlDocPtr doc, xmlNodeSetPtr nodes, xmlSecNodeSetType type)
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
"sizeof(xmlSecNodeSet)=%d",
- sizeof(xmlSecNodeSet));
+ (int)sizeof(xmlSecNodeSet));
return(NULL);
}
memset(nset, 0, sizeof(xmlSecNodeSet));
diff --git a/src/nss/Makefile.in b/src/nss/Makefile.in
index e43ac73..0e9c5b7 100644
--- a/src/nss/Makefile.in
+++ b/src/nss/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -80,15 +90,14 @@ build_triplet = @build@
host_triplet = @host@
@SHAREDLIB_HACK_TRUE at am__append_1 = ../strings.c
subdir = src/nss
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/depcomp README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -128,7 +137,8 @@ am__libxmlsec1_nss_la_SOURCES_DIST = app.c bignum.c ciphers.c crypto.c \
x509vfy.c keysstore.c keytrans.c kw_des.c kw_aes.c globals.h \
../strings.c
am__objects_1 =
- at SHAREDLIB_HACK_TRUE@am__objects_2 = libxmlsec1_nss_la-strings.lo
+am__dirstamp = $(am__leading_dot)dirstamp
+ at SHAREDLIB_HACK_TRUE@am__objects_2 = ../libxmlsec1_nss_la-strings.lo
am_libxmlsec1_nss_la_OBJECTS = libxmlsec1_nss_la-app.lo \
libxmlsec1_nss_la-bignum.lo libxmlsec1_nss_la-ciphers.lo \
libxmlsec1_nss_la-crypto.lo libxmlsec1_nss_la-digests.lo \
@@ -207,6 +217,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -243,6 +254,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -262,6 +277,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -300,7 +316,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -316,7 +332,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -324,6 +339,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -343,6 +359,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -357,7 +374,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -372,6 +388,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -478,7 +495,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/nss/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu src/nss/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -531,16 +547,27 @@ clean-libLTLIBRARIES:
echo rm -f $${locs}; \
rm -f $${locs}; \
}
+../$(am__dirstamp):
+ @$(MKDIR_P) ..
+ @: > ../$(am__dirstamp)
+../$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) ../$(DEPDIR)
+ @: > ../$(DEPDIR)/$(am__dirstamp)
+../libxmlsec1_nss_la-strings.lo: ../$(am__dirstamp) \
+ ../$(DEPDIR)/$(am__dirstamp)
libxmlsec1-nss.la: $(libxmlsec1_nss_la_OBJECTS) $(libxmlsec1_nss_la_DEPENDENCIES) $(EXTRA_libxmlsec1_nss_la_DEPENDENCIES)
$(AM_V_CCLD)$(libxmlsec1_nss_la_LINK) -rpath $(libdir) $(libxmlsec1_nss_la_OBJECTS) $(libxmlsec1_nss_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
+ -rm -f ../*.$(OBJEXT)
+ -rm -f ../*.lo
distclean-compile:
-rm -f *.tab.c
+ at AMDEP_TRUE@@am__include@ @am__quote at ../$(DEPDIR)/libxmlsec1_nss_la-strings.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_nss_la-app.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_nss_la-bignum.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_nss_la-ciphers.Plo at am__quote@
@@ -553,28 +580,30 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_nss_la-kw_des.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_nss_la-pkikeys.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_nss_la-signatures.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_nss_la-strings.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_nss_la-symkeys.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_nss_la-x509.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_nss_la-x509vfy.Plo at am__quote@
.c.o:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+ at am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
@@ -684,18 +713,19 @@ libxmlsec1_nss_la-kw_aes.lo: kw_aes.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_nss_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_nss_la-kw_aes.lo `test -f 'kw_aes.c' || echo '$(srcdir)/'`kw_aes.c
-libxmlsec1_nss_la-strings.lo: ../strings.c
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_nss_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libxmlsec1_nss_la-strings.lo -MD -MP -MF $(DEPDIR)/libxmlsec1_nss_la-strings.Tpo -c -o libxmlsec1_nss_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libxmlsec1_nss_la-strings.Tpo $(DEPDIR)/libxmlsec1_nss_la-strings.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../strings.c' object='libxmlsec1_nss_la-strings.lo' libtool=yes @AMDEPBACKSLASH@
+../libxmlsec1_nss_la-strings.lo: ../strings.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_nss_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libxmlsec1_nss_la-strings.lo -MD -MP -MF ../$(DEPDIR)/libxmlsec1_nss_la-strings.Tpo -c -o ../libxmlsec1_nss_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../$(DEPDIR)/libxmlsec1_nss_la-strings.Tpo ../$(DEPDIR)/libxmlsec1_nss_la-strings.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../strings.c' object='../libxmlsec1_nss_la-strings.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_nss_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_nss_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_nss_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libxmlsec1_nss_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
+ -rm -rf ../.libs ../_libs
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
@@ -812,6 +842,8 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -rm -f ../$(DEPDIR)/$(am__dirstamp)
+ -rm -f ../$(am__dirstamp)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -822,7 +854,7 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-am
- -rm -rf ./$(DEPDIR)
+ -rm -rf ../$(DEPDIR) ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
@@ -868,7 +900,7 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
+ -rm -rf ../$(DEPDIR) ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -903,6 +935,8 @@ uninstall-am: uninstall-libLTLIBRARIES
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
+.PRECIOUS: Makefile
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/src/nss/app.c b/src/nss/app.c
index dabe36d..0a9046f 100644
--- a/src/nss/app.c
+++ b/src/nss/app.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
* Copyright (c) 2003 America Online, Inc. All rights reserved.
*/
#include "globals.h"
diff --git a/src/nss/ciphers.c b/src/nss/ciphers.c
index 54bd2af..cf67936 100644
--- a/src/nss/ciphers.c
+++ b/src/nss/ciphers.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
* Copyright (c) 2003 America Online, Inc. All rights reserved.
*/
#include "globals.h"
diff --git a/src/nss/crypto.c b/src/nss/crypto.c
index 7137f1c..ea79519 100644
--- a/src/nss/crypto.c
+++ b/src/nss/crypto.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
* Copyright (c) 2003 America Online, Inc. All rights reserved.
*/
#include "globals.h"
diff --git a/src/nss/digests.c b/src/nss/digests.c
index 8063b44..2a81375 100644
--- a/src/nss/digests.c
+++ b/src/nss/digests.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
* Copyright (c) 2003 America Online, Inc. All rights reserved.
*/
#include "globals.h"
diff --git a/src/nss/globals.h b/src/nss/globals.h
index 770b6db..065c3e8 100644
--- a/src/nss/globals.h
+++ b/src/nss/globals.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GLOBALS_H__
#define __XMLSEC_GLOBALS_H__
diff --git a/src/nss/hmac.c b/src/nss/hmac.c
index ae7e67e..79fbf40 100644
--- a/src/nss/hmac.c
+++ b/src/nss/hmac.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
* Copyright (c) 2003 America Online, Inc. All rights reserved.
*/
#ifndef XMLSEC_NO_HMAC
diff --git a/src/nss/keysstore.c b/src/nss/keysstore.c
index f07e44b..057fc45 100644
--- a/src/nss/keysstore.c
+++ b/src/nss/keysstore.c
@@ -271,7 +271,7 @@ xmlSecNssKeysStoreInitialize(xmlSecKeyStorePtr store) {
xmlSecAssert2(xmlSecKeyStoreCheckId(store, xmlSecNssKeysStoreId), -1);
ss = xmlSecNssKeysStoreGetSS(store);
- xmlSecAssert2((*ss == NULL), -1);
+ xmlSecAssert2(((ss == NULL) || (*ss == NULL)), -1);
*ss = xmlSecKeyStoreCreate(xmlSecSimpleKeysStoreId);
if(*ss == NULL) {
diff --git a/src/nss/kw_aes.c b/src/nss/kw_aes.c
index 0438e30..cea884e 100644
--- a/src/nss/kw_aes.c
+++ b/src/nss/kw_aes.c
@@ -8,7 +8,7 @@
* distribution for preciese wording.
*
* Copyright (c) 2003 America Online, Inc. All rights reserved.
- * Copyright (C) 2010 Aleksey Sanin, All rights reserved.
+ * Copyright (C) 2010-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef XMLSEC_NO_AES
diff --git a/src/nss/kw_des.c b/src/nss/kw_des.c
index e75f69c..4025d35 100644
--- a/src/nss/kw_des.c
+++ b/src/nss/kw_des.c
@@ -8,7 +8,7 @@
* distribution for preciese wording.
*
* Copyright (c) 2003 America Online, Inc. All rights reserved.
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef XMLSEC_NO_DES
#include "globals.h"
diff --git a/src/nss/pkikeys.c b/src/nss/pkikeys.c
index ae9e29b..5ede4cc 100644
--- a/src/nss/pkikeys.c
+++ b/src/nss/pkikeys.c
@@ -752,6 +752,15 @@ xmlSecNssKeyDataDsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
}
handle = PK11_ImportPublicKey(slot, pubkey, PR_FALSE);
+ if(handle == CK_INVALID_HANDLE) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
+ "PK11_ImportPublicKey",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ ret = -1;
+ goto done;
+ }
data = xmlSecKeyDataCreate(id);
if(data == NULL ) {
diff --git a/src/nss/symkeys.c b/src/nss/symkeys.c
index 3da7a69..b98dd49 100644
--- a/src/nss/symkeys.c
+++ b/src/nss/symkeys.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/nss/x509.c b/src/nss/x509.c
index 887c77c..1bb0fed 100644
--- a/src/nss/x509.c
+++ b/src/nss/x509.c
@@ -759,7 +759,7 @@ xmlSecNssKeyDataX509XmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlSecAssert2(node != NULL, -1);
xmlSecAssert2(keyInfoCtx != NULL, -1);
- content = xmlSecX509DataGetNodeContent (node, 1, keyInfoCtx);
+ content = xmlSecX509DataGetNodeContent (node, keyInfoCtx);
if (content < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
@@ -1073,11 +1073,11 @@ xmlSecNssX509CertificateNodeWrite(CERTCertificate* cert, xmlNodePtr node, xmlSec
return(-1);
}
- cur = xmlSecAddChild(node, xmlSecNodeX509Certificate, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509Certificate, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509Certificate));
@@ -1183,11 +1183,11 @@ xmlSecNssX509SubjectNameNodeWrite(CERTCertificate* cert, xmlNodePtr node, xmlSec
return(-1);
}
- cur = xmlSecAddChild(node, xmlSecNodeX509SubjectName, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509SubjectName, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509SubjectName));
@@ -1343,33 +1343,33 @@ xmlSecNssX509IssuerSerialNodeWrite(CERTCertificate* cert, xmlNodePtr node, xmlSe
xmlSecAssert2(node != NULL, -1);
/* create xml nodes */
- cur = xmlSecAddChild(node, xmlSecNodeX509IssuerSerial, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509IssuerSerial, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509IssuerSerial));
return(-1);
}
- issuerNameNode = xmlSecAddChild(cur, xmlSecNodeX509IssuerName, xmlSecDSigNs);
+ issuerNameNode = xmlSecEnsureEmptyChild(cur, xmlSecNodeX509IssuerName, xmlSecDSigNs);
if(issuerNameNode == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509IssuerName));
return(-1);
}
- issuerNumberNode = xmlSecAddChild(cur, xmlSecNodeX509SerialNumber, xmlSecDSigNs);
+ issuerNumberNode = xmlSecEnsureEmptyChild(cur, xmlSecNodeX509SerialNumber, xmlSecDSigNs);
if(issuerNumberNode == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509SerialNumber));
@@ -1493,11 +1493,11 @@ xmlSecNssX509SKINodeWrite(CERTCertificate* cert, xmlNodePtr node, xmlSecKeyInfoC
return(-1);
}
- cur = xmlSecAddChild(node, xmlSecNodeX509SKI, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509SKI, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"new_node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509SKI));
@@ -1571,11 +1571,11 @@ xmlSecNssX509CRLNodeWrite(CERTSignedCrl* crl, xmlNodePtr node, xmlSecKeyInfoCtxP
return(-1);
}
- cur = xmlSecAddChild(node, xmlSecNodeX509CRL, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509CRL, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"new_node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509CRL));
diff --git a/src/nss/x509vfy.c b/src/nss/x509vfy.c
index fdb866f..9e957fe 100644
--- a/src/nss/x509vfy.c
+++ b/src/nss/x509vfy.c
@@ -233,7 +233,8 @@ xmlSecNssX509StoreVerify(xmlSecKeyDataStorePtr store, CERTCertList* certs,
NULL,
XMLSEC_ERRORS_R_CERT_ISSUER_FAILED,
"cert with subject name %s could not be verified because the issuer's cert is expired/invalid or not found",
- cert->subjectName);
+ (cert != NULL) ? cert->subjectName : "(NULL)"
+ );
break;
case SEC_ERROR_EXPIRED_CERTIFICATE:
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -241,7 +242,8 @@ xmlSecNssX509StoreVerify(xmlSecKeyDataStorePtr store, CERTCertList* certs,
NULL,
XMLSEC_ERRORS_R_CERT_HAS_EXPIRED,
"cert with subject name %s has expired",
- cert->subjectName);
+ (cert != NULL) ? cert->subjectName : "(NULL)"
+ );
break;
case SEC_ERROR_REVOKED_CERTIFICATE:
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -249,15 +251,16 @@ xmlSecNssX509StoreVerify(xmlSecKeyDataStorePtr store, CERTCertList* certs,
NULL,
XMLSEC_ERRORS_R_CERT_REVOKED,
"cert with subject name %s has been revoked",
- cert->subjectName);
+ (cert != NULL) ? cert->subjectName : "(NULL)"
+ );
break;
default:
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataStoreGetName(store)),
NULL,
XMLSEC_ERRORS_R_CERT_VERIFY_FAILED,
- "cert with subject name %s could not be verified, errcode %d",
- cert->subjectName,
+ "cert with subject name %s could not be verified, errcode %d",
+ (cert != NULL) ? cert->subjectName : "(NULL)",
PORT_GetError());
break;
}
@@ -690,11 +693,10 @@ xmlSecNssX509NameRead(xmlSecByte *str, int len) {
}
memcpy(p, value, valueLen);
p+=valueLen;
- if (len > 0)
+ if (len > 0) {
*p++=',';
+ }
}
- } else {
- valueLen = 0;
}
if(len > 0) {
++str; --len;
diff --git a/src/openssl/Makefile.am b/src/openssl/Makefile.am
index 23c225a..edd82b9 100644
--- a/src/openssl/Makefile.am
+++ b/src/openssl/Makefile.am
@@ -25,6 +25,7 @@ libxmlsec1_openssl_la_SOURCES =\
crypto.c \
digests.c \
evp.c \
+ evp_signatures.c \
hmac.c \
kw_aes.c \
kw_des.c \
@@ -34,6 +35,7 @@ libxmlsec1_openssl_la_SOURCES =\
x509.c \
x509vfy.c \
globals.h \
+ openssl11_wrapper.h \
$(NULL)
if SHAREDLIB_HACK
diff --git a/src/openssl/Makefile.in b/src/openssl/Makefile.in
index f915619..8f2fa4f 100644
--- a/src/openssl/Makefile.in
+++ b/src/openssl/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13.3 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
@SET_MAKE@
VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
@@ -80,15 +90,14 @@ build_triplet = @build@
host_triplet = @host@
@SHAREDLIB_HACK_TRUE at am__append_1 = ../strings.c
subdir = src/openssl
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/depcomp README
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/configure.in
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
@@ -124,14 +133,18 @@ am__installdirs = "$(DESTDIR)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
am__libxmlsec1_openssl_la_SOURCES_DIST = app.c bn.c ciphers.c crypto.c \
- digests.c evp.c hmac.c kw_aes.c kw_des.c kt_rsa.c signatures.c \
- symkeys.c x509.c x509vfy.c globals.h ../strings.c
+ digests.c evp.c evp_signatures.c hmac.c kw_aes.c kw_des.c \
+ kt_rsa.c signatures.c symkeys.c x509.c x509vfy.c globals.h \
+ openssl11_wrapper.h ../strings.c
am__objects_1 =
- at SHAREDLIB_HACK_TRUE@am__objects_2 = libxmlsec1_openssl_la-strings.lo
+am__dirstamp = $(am__leading_dot)dirstamp
+ at SHAREDLIB_HACK_TRUE@am__objects_2 = \
+ at SHAREDLIB_HACK_TRUE@ ../libxmlsec1_openssl_la-strings.lo
am_libxmlsec1_openssl_la_OBJECTS = libxmlsec1_openssl_la-app.lo \
libxmlsec1_openssl_la-bn.lo libxmlsec1_openssl_la-ciphers.lo \
libxmlsec1_openssl_la-crypto.lo \
libxmlsec1_openssl_la-digests.lo libxmlsec1_openssl_la-evp.lo \
+ libxmlsec1_openssl_la-evp_signatures.lo \
libxmlsec1_openssl_la-hmac.lo libxmlsec1_openssl_la-kw_aes.lo \
libxmlsec1_openssl_la-kw_des.lo \
libxmlsec1_openssl_la-kt_rsa.lo \
@@ -208,6 +221,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
@@ -244,6 +258,10 @@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@
GNUTLS_LIBS = @GNUTLS_LIBS@
GNUTLS_MIN_VERSION = @GNUTLS_MIN_VERSION@
GREP = @GREP@
+GTKDOC_MKDB = @GTKDOC_MKDB@
+GTKDOC_MKHTML = @GTKDOC_MKHTML@
+GTKDOC_MKTMPL = @GTKDOC_MKTMPL@
+GTKDOC_SCAN = @GTKDOC_SCAN@
HELP2MAN = @HELP2MAN@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
@@ -263,6 +281,7 @@ LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
LIBXSLT_LIBS = @LIBXSLT_LIBS@
LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PC_FILE_COND = @LIBXSLT_PC_FILE_COND@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
@@ -301,7 +320,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
-PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@
+PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
@@ -317,7 +336,6 @@ XMLSEC_APP_DEFINES = @XMLSEC_APP_DEFINES@
XMLSEC_CFLAGS = @XMLSEC_CFLAGS@
XMLSEC_CORE_CFLAGS = @XMLSEC_CORE_CFLAGS@
XMLSEC_CORE_LIBS = @XMLSEC_CORE_LIBS@
-XMLSEC_CRYPTO = @XMLSEC_CRYPTO@
XMLSEC_CRYPTO_CFLAGS = @XMLSEC_CRYPTO_CFLAGS@
XMLSEC_CRYPTO_DISABLED_LIST = @XMLSEC_CRYPTO_DISABLED_LIST@
XMLSEC_CRYPTO_EXTRA_LDFLAGS = @XMLSEC_CRYPTO_EXTRA_LDFLAGS@
@@ -325,6 +343,7 @@ XMLSEC_CRYPTO_LIB = @XMLSEC_CRYPTO_LIB@
XMLSEC_CRYPTO_LIBS = @XMLSEC_CRYPTO_LIBS@
XMLSEC_CRYPTO_LIST = @XMLSEC_CRYPTO_LIST@
XMLSEC_CRYPTO_PC_FILES_LIST = @XMLSEC_CRYPTO_PC_FILES_LIST@
+XMLSEC_DEFAULT_CRYPTO = @XMLSEC_DEFAULT_CRYPTO@
XMLSEC_DEFINES = @XMLSEC_DEFINES@
XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@
XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@
@@ -344,6 +363,7 @@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@
XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@
XMLSEC_NO_GOST = @XMLSEC_NO_GOST@
+XMLSEC_NO_GOST2012 = @XMLSEC_NO_GOST2012@
XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
XMLSEC_NO_LIBXSLT = @XMLSEC_NO_LIBXSLT@
XMLSEC_NO_MD5 = @XMLSEC_NO_MD5@
@@ -358,7 +378,6 @@ XMLSEC_NO_SHA256 = @XMLSEC_NO_SHA256@
XMLSEC_NO_SHA384 = @XMLSEC_NO_SHA384@
XMLSEC_NO_SHA512 = @XMLSEC_NO_SHA512@
XMLSEC_NO_X509 = @XMLSEC_NO_X509@
-XMLSEC_NO_XKMS = @XMLSEC_NO_XKMS@
XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
XMLSEC_NSS_CFLAGS = @XMLSEC_NSS_CFLAGS@
@@ -373,6 +392,7 @@ XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
XMLSEC_VERSION_SAFE = @XMLSEC_VERSION_SAFE@
XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+XSLTPROC = @XSLTPROC@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -445,8 +465,9 @@ libxmlsec1_openssl_la_CPPFLAGS = \
$(NULL)
libxmlsec1_openssl_la_SOURCES = app.c bn.c ciphers.c crypto.c \
- digests.c evp.c hmac.c kw_aes.c kw_des.c kt_rsa.c signatures.c \
- symkeys.c x509.c x509vfy.c globals.h $(NULL) $(am__append_1)
+ digests.c evp.c evp_signatures.c hmac.c kw_aes.c kw_des.c \
+ kt_rsa.c signatures.c symkeys.c x509.c x509vfy.c globals.h \
+ openssl11_wrapper.h $(NULL) $(am__append_1)
libxmlsec1_openssl_la_LIBADD = \
$(OPENSSL_LIBS) \
$(LIBXSLT_LIBS) \
@@ -478,7 +499,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/openssl/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu src/openssl/Makefile
-.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
@@ -531,49 +551,63 @@ clean-libLTLIBRARIES:
echo rm -f $${locs}; \
rm -f $${locs}; \
}
+../$(am__dirstamp):
+ @$(MKDIR_P) ..
+ @: > ../$(am__dirstamp)
+../$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) ../$(DEPDIR)
+ @: > ../$(DEPDIR)/$(am__dirstamp)
+../libxmlsec1_openssl_la-strings.lo: ../$(am__dirstamp) \
+ ../$(DEPDIR)/$(am__dirstamp)
libxmlsec1-openssl.la: $(libxmlsec1_openssl_la_OBJECTS) $(libxmlsec1_openssl_la_DEPENDENCIES) $(EXTRA_libxmlsec1_openssl_la_DEPENDENCIES)
$(AM_V_CCLD)$(libxmlsec1_openssl_la_LINK) -rpath $(libdir) $(libxmlsec1_openssl_la_OBJECTS) $(libxmlsec1_openssl_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
+ -rm -f ../*.$(OBJEXT)
+ -rm -f ../*.lo
distclean-compile:
-rm -f *.tab.c
+ at AMDEP_TRUE@@am__include@ @am__quote at ../$(DEPDIR)/libxmlsec1_openssl_la-strings.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-app.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-bn.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-ciphers.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-crypto.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-digests.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-evp.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-evp_signatures.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-hmac.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-kt_rsa.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-kw_aes.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-kw_des.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-signatures.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-strings.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-symkeys.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-x509.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libxmlsec1_openssl_la-x509vfy.Plo at am__quote@
.c.o:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c $<
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+ at am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LTCOMPILE) -c -o $@ $<
@@ -620,6 +654,13 @@ libxmlsec1_openssl_la-evp.lo: evp.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_openssl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_openssl_la-evp.lo `test -f 'evp.c' || echo '$(srcdir)/'`evp.c
+libxmlsec1_openssl_la-evp_signatures.lo: evp_signatures.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_openssl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libxmlsec1_openssl_la-evp_signatures.lo -MD -MP -MF $(DEPDIR)/libxmlsec1_openssl_la-evp_signatures.Tpo -c -o libxmlsec1_openssl_la-evp_signatures.lo `test -f 'evp_signatures.c' || echo '$(srcdir)/'`evp_signatures.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libxmlsec1_openssl_la-evp_signatures.Tpo $(DEPDIR)/libxmlsec1_openssl_la-evp_signatures.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='evp_signatures.c' object='libxmlsec1_openssl_la-evp_signatures.lo' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_openssl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_openssl_la-evp_signatures.lo `test -f 'evp_signatures.c' || echo '$(srcdir)/'`evp_signatures.c
+
libxmlsec1_openssl_la-hmac.lo: hmac.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_openssl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libxmlsec1_openssl_la-hmac.lo -MD -MP -MF $(DEPDIR)/libxmlsec1_openssl_la-hmac.Tpo -c -o libxmlsec1_openssl_la-hmac.lo `test -f 'hmac.c' || echo '$(srcdir)/'`hmac.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libxmlsec1_openssl_la-hmac.Tpo $(DEPDIR)/libxmlsec1_openssl_la-hmac.Plo
@@ -676,18 +717,19 @@ libxmlsec1_openssl_la-x509vfy.lo: x509vfy.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_openssl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_openssl_la-x509vfy.lo `test -f 'x509vfy.c' || echo '$(srcdir)/'`x509vfy.c
-libxmlsec1_openssl_la-strings.lo: ../strings.c
- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_openssl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libxmlsec1_openssl_la-strings.lo -MD -MP -MF $(DEPDIR)/libxmlsec1_openssl_la-strings.Tpo -c -o libxmlsec1_openssl_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libxmlsec1_openssl_la-strings.Tpo $(DEPDIR)/libxmlsec1_openssl_la-strings.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../strings.c' object='libxmlsec1_openssl_la-strings.lo' libtool=yes @AMDEPBACKSLASH@
+../libxmlsec1_openssl_la-strings.lo: ../strings.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_openssl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../libxmlsec1_openssl_la-strings.lo -MD -MP -MF ../$(DEPDIR)/libxmlsec1_openssl_la-strings.Tpo -c -o ../libxmlsec1_openssl_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../$(DEPDIR)/libxmlsec1_openssl_la-strings.Tpo ../$(DEPDIR)/libxmlsec1_openssl_la-strings.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../strings.c' object='../libxmlsec1_openssl_la-strings.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_openssl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libxmlsec1_openssl_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxmlsec1_openssl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../libxmlsec1_openssl_la-strings.lo `test -f '../strings.c' || echo '$(srcdir)/'`../strings.c
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
+ -rm -rf ../.libs ../_libs
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
@@ -804,6 +846,8 @@ clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -rm -f ../$(DEPDIR)/$(am__dirstamp)
+ -rm -f ../$(am__dirstamp)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -814,7 +858,7 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-am
- -rm -rf ./$(DEPDIR)
+ -rm -rf ../$(DEPDIR) ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
@@ -860,7 +904,7 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
+ -rm -rf ../$(DEPDIR) ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -895,6 +939,8 @@ uninstall-am: uninstall-libLTLIBRARIES
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
+.PRECIOUS: Makefile
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/src/openssl/README b/src/openssl/README
index 0f1c625..e33b0b0 100644
--- a/src/openssl/README
+++ b/src/openssl/README
@@ -1,6 +1,6 @@
WHAT VERSION OF OPENSSL?
------------------------------------------------------------------------
-OpenSSL 0.9.6 is supported but some functionality requires 0.9.7 or greater.
+OpenSSL 0.9.8 or later is required
KEYS MANAGER
------------------------------------------------------------------------
@@ -9,9 +9,3 @@ OpenSSL does not have a keys or certificates storage implementation. The
default xmlsec-openssl key manager uses a simple keys store from xmlsec
core library based on plain keys list. Trusted/untrusted certificates
are stored in STACK_OF(X509) structures.
-
-KNOWN ISSUES.
-------------------------------------------------------------------------
-1) One day we might decide to drop OpenSSL 0.9.6 supprot and remove all
-these ifdef's to simplify the code.
-
diff --git a/src/openssl/app.c b/src/openssl/app.c
index 4f8f79e..67566e9 100644
--- a/src/openssl/app.c
+++ b/src/openssl/app.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -19,6 +19,7 @@
#include <openssl/pem.h>
#include <openssl/pkcs12.h>
#include <openssl/conf.h>
+#include <openssl/engine.h>
#include <xmlsec/xmlsec.h>
#include <xmlsec/keys.h>
@@ -59,9 +60,30 @@ XMLSEC_PTR_TO_FUNC_IMPL(pem_password_cb)
*/
int
xmlSecOpenSSLAppInit(const char* config) {
+
+#if (OPENSSL_VERSION_NUMBER < 0x10100000)
ERR_load_crypto_strings();
OPENSSL_config(NULL);
OpenSSL_add_all_algorithms();
+#else /* OPENSSL_VERSION_NUMBER < 0x10100000 */
+ int ret;
+
+ ret = OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS |
+ OPENSSL_INIT_ADD_ALL_CIPHERS |
+ OPENSSL_INIT_ADD_ALL_DIGESTS |
+ OPENSSL_INIT_LOAD_CONFIG |
+ OPENSSL_INIT_ASYNC |
+ OPENSSL_INIT_ENGINE_ALL_BUILTIN,
+ NULL);
+ if(ret != 1) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "OPENSSL_init_crypto",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+#endif /* OPENSSL_VERSION_NUMBER < 0x10100000 */
if((RAND_status() != 1) && (xmlSecOpenSSLAppLoadRANDFile(NULL) != 1)) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -96,6 +118,8 @@ xmlSecOpenSSLAppInit(const char* config) {
int
xmlSecOpenSSLAppShutdown(void) {
xmlSecOpenSSLAppSaveRANDFile(NULL);
+
+#if (OPENSSL_VERSION_NUMBER < 0x10100000)
RAND_cleanup();
EVP_cleanup();
@@ -103,14 +127,22 @@ xmlSecOpenSSLAppShutdown(void) {
X509_TRUST_cleanup();
#endif /* XMLSEC_NO_X509 */
-#ifndef XMLSEC_OPENSSL_096
+ ENGINE_cleanup();
+ CONF_modules_unload(1);
+
CRYPTO_cleanup_all_ex_data();
-#endif /* XMLSEC_OPENSSL_096 */
/* finally cleanup errors */
+#if (defined(XMLSEC_OPENSSL_100) || defined(XMLSEC_OPENSSL_110))
+ ERR_remove_thread_state(NULL);
+#else
ERR_remove_state(0);
+#endif /* defined(XMLSEC_OPENSSL_100) || defined(XMLSEC_OPENSSL_110) */
+
ERR_free_strings();
+#endif /* (OPENSSL_VERSION_NUMBER < 0x10100000) */
+ /* done */
return(0);
}
@@ -255,7 +287,7 @@ xmlSecOpenSSLAppKeyLoadBIO(BIO* bio, xmlSecKeyDataFormat format,
}
if(pKey == NULL) {
/* go to start of the file and try to read public key */
- BIO_reset(bio);
+ (void)BIO_reset(bio);
pKey = PEM_read_bio_PUBKEY(bio, NULL,
XMLSEC_PTR_TO_FUNC(pem_password_cb, pwdCallback),
pwdCallbackCtx);
@@ -274,7 +306,7 @@ xmlSecOpenSSLAppKeyLoadBIO(BIO* bio, xmlSecKeyDataFormat format,
pKey = d2i_PrivateKey_bio(bio, NULL);
if(pKey == NULL) {
/* go to start of the file and try to read public key */
- BIO_reset(bio);
+ (void)BIO_reset(bio);
pKey = d2i_PUBKEY_bio(bio, NULL);
if(pKey == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -1478,11 +1510,13 @@ xmlSecOpenSSLAppLoadRANDFile(const char *file) {
if(file == NULL) {
file = RAND_file_name(buffer, sizeof(buffer));
+#ifndef OPENSSL_NO_EGD
}else if(RAND_egd(file) > 0) {
/* we try if the given filename is an EGD socket.
* if it is, we don't write anything back to the file. */
egdsocket = 1;
return 1;
+#endif
}
if((file == NULL) || !RAND_load_file(file, -1)) {
diff --git a/src/openssl/bn.c b/src/openssl/bn.c
index dfeae6e..db186d1 100644
--- a/src/openssl/bn.c
+++ b/src/openssl/bn.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/openssl/ciphers.c b/src/openssl/ciphers.c
index 1b60062..c93f06b 100644
--- a/src/openssl/ciphers.c
+++ b/src/openssl/ciphers.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -21,10 +21,11 @@
#include <xmlsec/openssl/crypto.h>
#include <xmlsec/openssl/evp.h>
-/* this is not defined in OpenSSL 0.9.6 */
-#ifndef EVP_MAX_BLOCK_LENGTH
-#define EVP_MAX_BLOCK_LENGTH 32
-#endif /* EVP_MAX_BLOCK_LENGTH */
+/* new API from OpenSSL 1.1.0 */
+#if !defined(XMLSEC_OPENSSL_110)
+#define EVP_CIPHER_CTX_encrypting(x) ((x)->encrypt)
+#endif /* !defined(XMLSEC_OPENSSL_110) */
+
/**************************************************************************
*
@@ -36,25 +37,33 @@ typedef struct _xmlSecOpenSSLEvpBlockCipherCtx xmlSecOpenSSLEvpBlockCip
struct _xmlSecOpenSSLEvpBlockCipherCtx {
const EVP_CIPHER* cipher;
xmlSecKeyDataId keyId;
- EVP_CIPHER_CTX cipherCtx;
+ EVP_CIPHER_CTX* cipherCtx;
int keyInitialized;
int ctxInitialized;
xmlSecByte key[EVP_MAX_KEY_LENGTH];
xmlSecByte iv[EVP_MAX_IV_LENGTH];
- xmlSecByte pad[EVP_MAX_BLOCK_LENGTH];
+ xmlSecByte pad[2*EVP_MAX_BLOCK_LENGTH];
};
+
static int xmlSecOpenSSLEvpBlockCipherCtxInit (xmlSecOpenSSLEvpBlockCipherCtxPtr ctx,
xmlSecBufferPtr in,
xmlSecBufferPtr out,
int encrypt,
const xmlChar* cipherName,
xmlSecTransformCtxPtr transformCtx);
+static int xmlSecOpenSSLEvpBlockCipherCtxUpdateBlock(xmlSecOpenSSLEvpBlockCipherCtxPtr ctx,
+ const xmlSecByte * in,
+ int inSize,
+ xmlSecBufferPtr out,
+ const xmlChar* cipherName,
+ int final);
static int xmlSecOpenSSLEvpBlockCipherCtxUpdate (xmlSecOpenSSLEvpBlockCipherCtxPtr ctx,
xmlSecBufferPtr in,
xmlSecBufferPtr out,
const xmlChar* cipherName,
xmlSecTransformCtxPtr transformCtx);
static int xmlSecOpenSSLEvpBlockCipherCtxFinal (xmlSecOpenSSLEvpBlockCipherCtxPtr ctx,
+ xmlSecBufferPtr in,
xmlSecBufferPtr out,
const xmlChar* cipherName,
xmlSecTransformCtxPtr transformCtx);
@@ -69,6 +78,7 @@ xmlSecOpenSSLEvpBlockCipherCtxInit(xmlSecOpenSSLEvpBlockCipherCtxPtr ctx,
xmlSecAssert2(ctx != NULL, -1);
xmlSecAssert2(ctx->cipher != NULL, -1);
+ xmlSecAssert2(ctx->cipherCtx != NULL, -1);
xmlSecAssert2(ctx->keyInitialized != 0, -1);
xmlSecAssert2(ctx->ctxInitialized == 0, -1);
xmlSecAssert2(in != NULL, -1);
@@ -126,7 +136,7 @@ xmlSecOpenSSLEvpBlockCipherCtxInit(xmlSecOpenSSLEvpBlockCipherCtxPtr ctx,
}
/* set iv */
- ret = EVP_CipherInit(&(ctx->cipherCtx), ctx->cipher, ctx->key, ctx->iv, encrypt);
+ ret = EVP_CipherInit(ctx->cipherCtx, ctx->cipher, ctx->key, ctx->iv, encrypt);
if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(cipherName),
@@ -140,84 +150,59 @@ xmlSecOpenSSLEvpBlockCipherCtxInit(xmlSecOpenSSLEvpBlockCipherCtxPtr ctx,
/*
* The padding used in XML Enc does not follow RFC 1423
- * and is not supported by OpenSSL. In the case of OpenSSL 0.9.7
- * it is possible to disable padding and do it by yourself
- * For OpenSSL 0.9.6 you have interop problems
+ * and is not supported by OpenSSL. However, it is possible
+ * to disable padding and do it by yourself
+ *
+ * https://www.w3.org/TR/2002/REC-xmlenc-core-20021210/Overview.html#sec-Alg-Block
*/
-#ifndef XMLSEC_OPENSSL_096
- EVP_CIPHER_CTX_set_padding(&(ctx->cipherCtx), 0);
-#endif /* XMLSEC_OPENSSL_096 */
+ EVP_CIPHER_CTX_set_padding(ctx->cipherCtx, 0);
+
return(0);
}
static int
-xmlSecOpenSSLEvpBlockCipherCtxUpdate(xmlSecOpenSSLEvpBlockCipherCtxPtr ctx,
- xmlSecBufferPtr in, xmlSecBufferPtr out,
- const xmlChar* cipherName,
- xmlSecTransformCtxPtr transformCtx) {
- int blockLen, fixLength = 0, outLen = 0;
- xmlSecSize inSize, outSize;
+xmlSecOpenSSLEvpBlockCipherCtxUpdateBlock(xmlSecOpenSSLEvpBlockCipherCtxPtr ctx,
+ const xmlSecByte * in,
+ int inSize,
+ xmlSecBufferPtr out,
+ const xmlChar* cipherName,
+ int final) {
xmlSecByte* outBuf;
+ xmlSecSize outSize;
+ int blockLen, outLen = 0;
int ret;
xmlSecAssert2(ctx != NULL, -1);
+ xmlSecAssert2(ctx->cipher != NULL, -1);
+ xmlSecAssert2(ctx->cipherCtx != NULL, -1);
xmlSecAssert2(ctx->keyInitialized != 0, -1);
xmlSecAssert2(ctx->ctxInitialized != 0, -1);
xmlSecAssert2(in != NULL, -1);
+ xmlSecAssert2(inSize > 0, -1);
xmlSecAssert2(out != NULL, -1);
- xmlSecAssert2(transformCtx != NULL, -1);
+ /* OpenSSL docs: If the pad parameter is zero then no padding is performed, the total amount of
+ * data encrypted or decrypted must then be a multiple of the block size or an error will occur.
+ */
blockLen = EVP_CIPHER_block_size(ctx->cipher);
xmlSecAssert2(blockLen > 0, -1);
+ xmlSecAssert2((inSize % blockLen) == 0, -1);
- inSize = xmlSecBufferGetSize(in);
+ /* prepare: ensure we have enough space (+blockLen for final) */
outSize = xmlSecBufferGetSize(out);
-
- if(inSize == 0) {
- /* wait for more data */
- return(0);
- }
-
- /* OpenSSL docs: The amount of data written depends on the block
- * alignment of the encrypted data: as a result the amount of data
- * written may be anything from zero bytes to (inl + cipher_block_size - 1).
- */
ret = xmlSecBufferSetMaxSize(out, outSize + inSize + blockLen);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(cipherName),
"xmlSecBufferSetMaxSize",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "size=%d", outSize + inSize + blockLen);
+ "size=%d", (int)(outSize + inSize + blockLen));
return(-1);
}
- outBuf = xmlSecBufferGetData(out) + outSize;
-
- /*
- * The padding used in XML Enc does not follow RFC 1423
- * and is not supported by OpenSSL. In the case of OpenSSL 0.9.7
- * it is possible to disable padding and do it by yourself
- * For OpenSSL 0.9.6 you have interop problems.
- *
- * The logic below is copied from EVP_DecryptUpdate() function.
- * This is a hack but it's the only way I can provide binary
- * compatibility with previous versions of xmlsec.
- * This needs to be fixed in the next XMLSEC API refresh.
- */
-#ifndef XMLSEC_OPENSSL_096
- if(!ctx->cipherCtx.encrypt) {
- if(ctx->cipherCtx.final_used) {
- memcpy(outBuf, ctx->cipherCtx.final, blockLen);
- outBuf += blockLen;
- fixLength = 1;
- } else {
- fixLength = 0;
- }
- }
-#endif /* XMLSEC_OPENSSL_096 */
+ outBuf = xmlSecBufferGetData(out) + outSize;
/* encrypt/decrypt */
- ret = EVP_CipherUpdate(&(ctx->cipherCtx), outBuf, &outLen, xmlSecBufferGetData(in), inSize);
+ ret = EVP_CipherUpdate(ctx->cipherCtx, outBuf, &outLen, in, inSize);
if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(cipherName),
@@ -226,27 +211,24 @@ xmlSecOpenSSLEvpBlockCipherCtxUpdate(xmlSecOpenSSLEvpBlockCipherCtxPtr ctx,
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
+ xmlSecAssert2(outLen == inSize, -1);
-#ifndef XMLSEC_OPENSSL_096
- if(!ctx->cipherCtx.encrypt) {
- /*
- * The logic below is copied from EVP_DecryptUpdate() function.
- * This is a hack but it's the only way I can provide binary
- * compatibility with previous versions of xmlsec.
- * This needs to be fixed in the next XMLSEC API refresh.
- */
- if (blockLen > 1 && !ctx->cipherCtx.buf_len) {
- outLen -= blockLen;
- ctx->cipherCtx.final_used = 1;
- memcpy(ctx->cipherCtx.final, &outBuf[outLen], blockLen);
- } else {
- ctx->cipherCtx.final_used = 0;
- }
- if (fixLength) {
- outLen += blockLen;
+ /* finalize transform if needed */
+ if(final != 0) {
+ int outLen2 = 0;
+
+ ret = EVP_CipherFinal(ctx->cipherCtx, outBuf + outLen, &outLen2);
+ if(ret != 1) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(cipherName),
+ "EVP_CipherFinal",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
}
+
+ outLen += outLen2;
}
-#endif /* XMLSEC_OPENSSL_096 */
/* set correct output buffer size */
ret = xmlSecBufferSetSize(out, outSize + outLen);
@@ -255,166 +237,226 @@ xmlSecOpenSSLEvpBlockCipherCtxUpdate(xmlSecOpenSSLEvpBlockCipherCtxPtr ctx,
xmlSecErrorsSafeString(cipherName),
"xmlSecBufferSetSize",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "size=%d", outSize + outLen);
+ "size=%d", (int)(outSize + outLen));
+ return(-1);
+ }
+
+ /* done */
+ return (0);
+}
+
+static int
+xmlSecOpenSSLEvpBlockCipherCtxUpdate(xmlSecOpenSSLEvpBlockCipherCtxPtr ctx,
+ xmlSecBufferPtr in, xmlSecBufferPtr out,
+ const xmlChar* cipherName,
+ xmlSecTransformCtxPtr transformCtx) {
+ xmlSecSize inSize, blockLen, inBlocksLen;
+ xmlSecByte* inBuf;
+ int ret;
+
+ xmlSecAssert2(ctx != NULL, -1);
+ xmlSecAssert2(ctx->cipherCtx != NULL, -1);
+ xmlSecAssert2(ctx->keyInitialized != 0, -1);
+ xmlSecAssert2(ctx->ctxInitialized != 0, -1);
+ xmlSecAssert2(in != NULL, -1);
+ xmlSecAssert2(out != NULL, -1);
+ xmlSecAssert2(transformCtx != NULL, -1);
+
+ blockLen = EVP_CIPHER_block_size(ctx->cipher);
+ xmlSecAssert2(blockLen > 0, -1);
+
+ inSize = xmlSecBufferGetSize(in);
+ if(inSize <= blockLen) {
+ /* wait for more data: we want to make sure we keep the last chunk in tmp buffer for
+ * padding check/removal on decryption
+ */
+ return(0);
+ }
+
+ /* OpenSSL docs: If the pad parameter is zero then no padding is performed, the total amount of
+ * data encrypted or decrypted must then be a multiple of the block size or an error will occur.
+ *
+ * We process all complete blocks from the input
+ */
+ inBlocksLen = blockLen * (inSize / blockLen);
+ if(inBlocksLen == inSize) {
+ inBlocksLen -= blockLen; /* ensure we keep the last block around for Final() call to add/check/remove padding */
+ }
+ xmlSecAssert2(inBlocksLen > 0, -1);
+
+ inBuf = xmlSecBufferGetData(in);
+ ret = xmlSecOpenSSLEvpBlockCipherCtxUpdateBlock(ctx, inBuf, inBlocksLen, out, cipherName, 0); /* not final */
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(cipherName),
+ "xmlSecOpenSSLEvpBlockCipherCtxUpdateBlock",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ NULL);
return(-1);
}
/* remove the processed block from input */
- ret = xmlSecBufferRemoveHead(in, inSize);
+ ret = xmlSecBufferRemoveHead(in, inBlocksLen);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(cipherName),
"xmlSecBufferRemoveHead",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "size=%d", inSize);
+ "size=%d", (int)inSize);
return(-1);
}
+
+ /* just a double check */
+ inSize = xmlSecBufferGetSize(in);
+ xmlSecAssert2(inSize > 0, -1);
+ xmlSecAssert2(inSize <= blockLen, -1);
+
+ /* done */
return(0);
}
static int
xmlSecOpenSSLEvpBlockCipherCtxFinal(xmlSecOpenSSLEvpBlockCipherCtxPtr ctx,
+ xmlSecBufferPtr in,
xmlSecBufferPtr out,
const xmlChar* cipherName,
xmlSecTransformCtxPtr transformCtx) {
- int blockLen, outLen = 0, outLen2 = 0;
- xmlSecSize outSize;
+ xmlSecSize inSize, outSize, blockLen;
+ xmlSecByte* inBuf;
xmlSecByte* outBuf;
int ret;
xmlSecAssert2(ctx != NULL, -1);
+ xmlSecAssert2(ctx->cipher != NULL, -1);
+ xmlSecAssert2(ctx->cipherCtx != NULL, -1);
xmlSecAssert2(ctx->keyInitialized != 0, -1);
xmlSecAssert2(ctx->ctxInitialized != 0, -1);
+ xmlSecAssert2(in != NULL, -1);
xmlSecAssert2(out != NULL, -1);
xmlSecAssert2(transformCtx != NULL, -1);
blockLen = EVP_CIPHER_block_size(ctx->cipher);
xmlSecAssert2(blockLen > 0, -1);
+ xmlSecAssert2(blockLen <= EVP_MAX_BLOCK_LENGTH, -1);
- outSize = xmlSecBufferGetSize(out);
-
- /* OpenSSL docs: The encrypted final data is written to out which should
- * have sufficient space for one cipher block. We might have to write
- * one more block with padding
- */
- ret = xmlSecBufferSetMaxSize(out, outSize + 2 * blockLen);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(cipherName),
- "xmlSecBufferSetMaxSize",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "size=%d", outSize + 2 * blockLen);
- return(-1);
- }
- outBuf = xmlSecBufferGetData(out) + outSize;
+ /* not more than one block left */
+ inSize = xmlSecBufferGetSize(in);
+ inBuf = xmlSecBufferGetData(in);
+ xmlSecAssert2(inSize <= blockLen, -1);
/*
* The padding used in XML Enc does not follow RFC 1423
- * and is not supported by OpenSSL. In the case of OpenSSL 0.9.7
- * it is possible to disable padding and do it by yourself
- * For OpenSSL 0.9.6 you have interop problems.
+ * and is not supported by OpenSSL. However, it is possible
+ * to disable padding and do it by yourself
*
- * The logic below is copied from EVP_DecryptFinal() function.
- * This is a hack but it's the only way I can provide binary
- * compatibility with previous versions of xmlsec.
- * This needs to be fixed in the next XMLSEC API refresh.
+ * https://www.w3.org/TR/2002/REC-xmlenc-core-20021210/Overview.html#sec-Alg-Block
*/
-#ifndef XMLSEC_OPENSSL_096
- if(ctx->cipherCtx.encrypt) {
- int padLen;
-
- xmlSecAssert2(blockLen <= EVP_MAX_BLOCK_LENGTH, -1);
+ if(EVP_CIPHER_CTX_encrypting(ctx->cipherCtx)) {
+ xmlSecSize padLen;
- padLen = blockLen - ctx->cipherCtx.buf_len;
+ /* figure out pad length, if it is 0 (i.e. inSize == blockLen) then set it to blockLen */
+ padLen = blockLen - inSize;
+ if(padLen == 0) {
+ padLen = blockLen;
+ }
xmlSecAssert2(padLen > 0, -1);
+ xmlSecAssert2(inSize + padLen <= sizeof(ctx->pad), -1);
+
+ /* we can have inSize == 0 if there were no data at all, otherwise -- copy the data */
+ if(inSize > 0) {
+ memcpy(ctx->pad, inBuf, inSize);
+ }
/* generate random padding */
if(padLen > 1) {
- ret = RAND_bytes(ctx->pad, padLen - 1);
+ ret = RAND_bytes(ctx->pad + inSize, padLen - 1);
if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(cipherName),
"RAND_bytes",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
- "size=%d", padLen - 1);
+ "size=%d", (int)(padLen - 1));
return(-1);
}
}
- ctx->pad[padLen - 1] = padLen;
- /* write padding */
- ret = EVP_CipherUpdate(&(ctx->cipherCtx), outBuf, &outLen, ctx->pad, padLen);
- if(ret != 1) {
+ /* set the last byte to the pad length */
+ ctx->pad[inSize + padLen - 1] = padLen;
+
+ /* update the last 1 or 2 blocks with padding */
+ ret = xmlSecOpenSSLEvpBlockCipherCtxUpdateBlock(ctx, ctx->pad, inSize + padLen, out, cipherName, 1); /* final */
+ if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(cipherName),
- "EVP_CipherUpdate",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
+ "xmlSecOpenSSLEvpBlockCipherCtxUpdateBlock",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ NULL);
return(-1);
}
- outBuf += outLen;
- }
-#endif /* XMLSEC_OPENSSL_096 */
+ } else {
+ xmlSecSize padLen;
- /* finalize transform */
- ret = EVP_CipherFinal(&(ctx->cipherCtx), outBuf, &outLen2);
- if(ret != 1) {
- xmlSecError(XMLSEC_ERRORS_HERE,
+ /* update the last one block with padding */
+ ret = xmlSecOpenSSLEvpBlockCipherCtxUpdateBlock(ctx, inBuf, inSize, out, cipherName, 1); /* final */
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(cipherName),
+ "xmlSecOpenSSLEvpBlockCipherCtxUpdateBlock",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ NULL);
+ return(-1);
+ }
+
+ /* we expect at least one block in the output -- the one we just decrypted */
+ outBuf = xmlSecBufferGetData(out);
+ outSize = xmlSecBufferGetSize(out);
+ if(outSize < blockLen) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(cipherName),
- "EVP_CipherFinal",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
+ NULL,
+ XMLSEC_ERRORS_R_INVALID_DATA,
+ "outSize=%d;blockLen=%d",
+ (int)outSize, (int)blockLen);
+ return(-1);
+ }
- /*
- * The padding used in XML Enc does not follow RFC 1423
- * and is not supported by OpenSSL. In the case of OpenSSL 0.9.7
- * it is possible to disable padding and do it by yourself
- * For OpenSSL 0.9.6 you have interop problems.
- *
- * The logic below is copied from EVP_DecryptFinal() function.
- * This is a hack but it's the only way I can provide binary
- * compatibility with previous versions of xmlsec.
- * This needs to be fixed in the next XMLSEC API refresh.
- */
-#ifndef XMLSEC_OPENSSL_096
- if(!ctx->cipherCtx.encrypt) {
- /* we instructed openssl to do not use padding so there
- * should be no final block
- */
- xmlSecAssert2(outLen2 == 0, -1);
- xmlSecAssert2(ctx->cipherCtx.buf_len == 0, -1);
- xmlSecAssert2(ctx->cipherCtx.final_used, -1);
-
- if(blockLen > 1) {
- outLen2 = blockLen - ctx->cipherCtx.final[blockLen - 1];
- if(outLen2 > 0) {
- memcpy(outBuf, ctx->cipherCtx.final, outLen2);
- } else if(outLen2 < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(cipherName),
- NULL,
- XMLSEC_ERRORS_R_INVALID_DATA,
- "padding=%d;buffer=%d",
- ctx->cipherCtx.final[blockLen - 1], blockLen);
- return(-1);
- }
+ /* get the pad length from the last byte */
+ padLen = (xmlSecSize)(outBuf[outSize - 1]);
+ if(padLen > blockLen) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(cipherName),
+ NULL,
+ XMLSEC_ERRORS_R_INVALID_DATA,
+ "padLen=%d;blockLen=%d",
+ (int)padLen, (int)blockLen);
+ return(-1);
+ }
+ xmlSecAssert2(padLen <= outSize, -1);
+
+ /* remove the padding */
+ ret = xmlSecBufferRemoveTail(out, padLen);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(cipherName),
+ "xmlSecBufferRemoveTail",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ "size=%d", (int)padLen);
+ return(-1);
}
}
-#endif /* XMLSEC_OPENSSL_096 */
- /* set correct output buffer size */
- ret = xmlSecBufferSetSize(out, outSize + outLen + outLen2);
+ /* remove the processed block from input */
+ ret = xmlSecBufferRemoveHead(in, inSize);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(cipherName),
- "xmlSecBufferSetSize",
+ "xmlSecBufferRemoveHead",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "size=%d", outSize + outLen + outLen2);
+ "size=%d", (int)inSize);
return(-1);
}
+ /* done */
return(0);
}
@@ -505,7 +547,18 @@ xmlSecOpenSSLEvpBlockCipherInitialize(xmlSecTransformPtr transform) {
return(-1);
}
- EVP_CIPHER_CTX_init(&(ctx->cipherCtx));
+ /* create cipher ctx */
+ ctx->cipherCtx = EVP_CIPHER_CTX_new();
+ if(ctx->cipherCtx == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "EVP_CIPHER_CTX_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ /* done */
return(0);
}
@@ -519,7 +572,10 @@ xmlSecOpenSSLEvpBlockCipherFinalize(xmlSecTransformPtr transform) {
ctx = xmlSecOpenSSLEvpBlockCipherGetCtx(transform);
xmlSecAssert(ctx != NULL);
- EVP_CIPHER_CTX_cleanup(&(ctx->cipherCtx));
+ if(ctx->cipherCtx != NULL) {
+ EVP_CIPHER_CTX_free(ctx->cipherCtx);
+ }
+
memset(ctx, 0, sizeof(xmlSecOpenSSLEvpBlockCipherCtx));
}
@@ -584,7 +640,7 @@ xmlSecOpenSSLEvpBlockCipherSetKey(xmlSecTransformPtr transform, xmlSecKeyPtr key
NULL,
XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE,
"keySize=%d;expected=%d",
- xmlSecBufferGetSize(buffer), cipherKeyLen);
+ (int)xmlSecBufferGetSize(buffer), (int)cipherKeyLen);
return(-1);
}
@@ -654,9 +710,7 @@ xmlSecOpenSSLEvpBlockCipherExecute(xmlSecTransformPtr transform, int last, xmlSe
}
if(last != 0) {
- /* by now there should be no input */
- xmlSecAssert2(xmlSecBufferGetSize(in) == 0, -1);
- ret = xmlSecOpenSSLEvpBlockCipherCtxFinal(ctx, out,
+ ret = xmlSecOpenSSLEvpBlockCipherCtxFinal(ctx, in, out,
xmlSecTransformGetName(transform),
transformCtx);
if(ret < 0) {
@@ -668,6 +722,9 @@ xmlSecOpenSSLEvpBlockCipherExecute(xmlSecTransformPtr transform, int last, xmlSe
return(-1);
}
transform->status = xmlSecTransformStatusFinished;
+
+ /* by now there should be no input */
+ xmlSecAssert2(xmlSecBufferGetSize(in) == 0, -1);
}
} else if(transform->status == xmlSecTransformStatusFinished) {
/* the only way we can get here is if there is no input */
@@ -680,7 +737,7 @@ xmlSecOpenSSLEvpBlockCipherExecute(xmlSecTransformPtr transform, int last, xmlSe
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
NULL,
XMLSEC_ERRORS_R_INVALID_STATUS,
- "status=%d", transform->status);
+ "status=%d", (int)(transform->status));
return(-1);
}
diff --git a/src/openssl/crypto.c b/src/openssl/crypto.c
index eba1a32..b70eb73 100644
--- a/src/openssl/crypto.c
+++ b/src/openssl/crypto.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -80,7 +80,12 @@ xmlSecCryptoGetFunctions_openssl(void) {
#ifndef XMLSEC_NO_GOST
gXmlSecOpenSSLFunctions->keyDataGost2001GetKlass = xmlSecOpenSSLKeyDataGost2001GetKlass;
-#endif /* XMLSEC_NO_GOST*/
+#endif /* XMLSEC_NO_GOST */
+
+#ifndef XMLSEC_NO_GOST2012
+ gXmlSecOpenSSLFunctions->keyDataGostR3410_2012_256GetKlass = xmlSecOpenSSLKeyDataGostR3410_2012_256GetKlass;
+ gXmlSecOpenSSLFunctions->keyDataGostR3410_2012_512GetKlass = xmlSecOpenSSLKeyDataGostR3410_2012_512GetKlass;
+#endif /* XMLSEC_NO_GOST2012 */
#ifndef XMLSEC_NO_HMAC
gXmlSecOpenSSLFunctions->keyDataHmacGetKlass = xmlSecOpenSSLKeyDataHmacGetKlass;
@@ -166,13 +171,17 @@ xmlSecCryptoGetFunctions_openssl(void) {
/******************************* GOST ********************************/
#ifndef XMLSEC_NO_GOST
- gXmlSecOpenSSLFunctions->transformGost2001GostR3411_94GetKlass = xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass;
-#endif /* XMLSEC_NO_GOST */
-
-#ifndef XMLSEC_NO_GOST
+ gXmlSecOpenSSLFunctions->transformGost2001GostR3411_94GetKlass = xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass;
gXmlSecOpenSSLFunctions->transformGostR3411_94GetKlass = xmlSecOpenSSLTransformGostR3411_94GetKlass;
#endif /* XMLSEC_NO_GOST */
+#ifndef XMLSEC_NO_GOST2012
+ gXmlSecOpenSSLFunctions->transformGostR3410_2012GostR3411_2012_256GetKlass = xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256GetKlass;
+ gXmlSecOpenSSLFunctions->transformGostR3410_2012GostR3411_2012_512GetKlass = xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512GetKlass;
+ gXmlSecOpenSSLFunctions->transformGostR3411_2012_256GetKlass = xmlSecOpenSSLTransformGostR3411_2012_256GetKlass;
+ gXmlSecOpenSSLFunctions->transformGostR3411_2012_512GetKlass = xmlSecOpenSSLTransformGostR3411_2012_512GetKlass;
+#endif /* XMLSEC_NO_GOST2012 */
+
/******************************* HMAC ********************************/
#ifndef XMLSEC_NO_HMAC
diff --git a/src/openssl/digests.c b/src/openssl/digests.c
index fa26fa6..1d00a1b 100644
--- a/src/openssl/digests.c
+++ b/src/openssl/digests.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -20,6 +20,16 @@
#include <xmlsec/openssl/crypto.h>
#include <xmlsec/openssl/evp.h>
+/* new API from OpenSSL 1.1.0 (https://www.openssl.org/docs/manmaster/crypto/EVP_DigestInit.html):
+ *
+ * EVP_MD_CTX_create() and EVP_MD_CTX_destroy() were renamed to EVP_MD_CTX_new() and EVP_MD_CTX_free() in OpenSSL 1.1.
+ */
+#if !defined(XMLSEC_OPENSSL_110)
+#define EVP_MD_CTX_new() EVP_MD_CTX_create()
+#define EVP_MD_CTX_free(x) EVP_MD_CTX_destroy((x))
+#endif /* !defined(XMLSEC_OPENSSL_110) */
+
+
/**************************************************************************
*
* Internal OpenSSL Digest CTX
@@ -28,7 +38,7 @@
typedef struct _xmlSecOpenSSLDigestCtx xmlSecOpenSSLDigestCtx, *xmlSecOpenSSLDigestCtxPtr;
struct _xmlSecOpenSSLDigestCtx {
const EVP_MD* digest;
- EVP_MD_CTX digestCtx;
+ EVP_MD_CTX* digestCtx;
xmlSecByte dgst[EVP_MAX_MD_SIZE];
xmlSecSize dgstSize; /* dgst size in bytes */
};
@@ -108,6 +118,15 @@ xmlSecOpenSSLEvpDigestCheckId(xmlSecTransformPtr transform) {
} else
#endif /* XMLSEC_NO_GOST*/
+#ifndef XMLSEC_NO_GOST2012
+ if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformGostR3411_2012_256Id)) {
+ return(1);
+ } else
+
+ if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformGostR3411_2012_512Id)) {
+ return(1);
+ } else
+#endif /* XMLSEC_NO_GOST2012 */
{
return(0);
@@ -174,6 +193,20 @@ xmlSecOpenSSLEvpDigestInitialize(xmlSecTransformPtr transform) {
#ifndef XMLSEC_NO_GOST
if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformGostR3411_94Id)) {
ctx->digest = EVP_get_digestbyname("md_gost94");
+ if (!ctx->digest) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ NULL,
+ XMLSEC_ERRORS_R_INVALID_TRANSFORM,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ } else
+#endif /* XMLSEC_NO_GOST */
+
+#ifndef XMLSEC_NO_GOST2012
+ if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformGostR3411_2012_256Id)) {
+ ctx->digest = EVP_get_digestbyname("md_gost12_256");
if (!ctx->digest)
{
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -184,7 +217,20 @@ xmlSecOpenSSLEvpDigestInitialize(xmlSecTransformPtr transform) {
return(-1);
}
} else
-#endif /* XMLSEC_NO_GOST*/
+
+ if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformGostR3411_2012_512Id)) {
+ ctx->digest = EVP_get_digestbyname("md_gost12_512");
+ if (!ctx->digest)
+ {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ NULL,
+ XMLSEC_ERRORS_R_INVALID_TRANSFORM,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ } else
+#endif /* XMLSEC_NO_GOST2012 */
{
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -195,10 +241,18 @@ xmlSecOpenSSLEvpDigestInitialize(xmlSecTransformPtr transform) {
return(-1);
}
-#ifndef XMLSEC_OPENSSL_096
- EVP_MD_CTX_init(&(ctx->digestCtx));
-#endif /* XMLSEC_OPENSSL_096 */
+ /* create digest CTX */
+ ctx->digestCtx = EVP_MD_CTX_new();
+ if(ctx->digestCtx == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "EVP_MD_CTX_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ /* done */
return(0);
}
@@ -212,9 +266,10 @@ xmlSecOpenSSLEvpDigestFinalize(xmlSecTransformPtr transform) {
ctx = xmlSecOpenSSLEvpDigestGetCtx(transform);
xmlSecAssert(ctx != NULL);
-#ifndef XMLSEC_OPENSSL_096
- EVP_MD_CTX_cleanup(&(ctx->digestCtx));
-#endif /* XMLSEC_OPENSSL_096 */
+ if(ctx->digestCtx != NULL) {
+ EVP_MD_CTX_free(ctx->digestCtx);
+ }
+
memset(ctx, 0, sizeof(xmlSecOpenSSLDigestCtx));
}
@@ -280,10 +335,10 @@ xmlSecOpenSSLEvpDigestExecute(xmlSecTransformPtr transform, int last, xmlSecTran
ctx = xmlSecOpenSSLEvpDigestGetCtx(transform);
xmlSecAssert2(ctx != NULL, -1);
xmlSecAssert2(ctx->digest != NULL, -1);
+ xmlSecAssert2(ctx->digestCtx != NULL, -1);
if(transform->status == xmlSecTransformStatusNone) {
-#ifndef XMLSEC_OPENSSL_096
- ret = EVP_DigestInit(&(ctx->digestCtx), ctx->digest);
+ ret = EVP_DigestInit(ctx->digestCtx, ctx->digest);
if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
@@ -292,9 +347,6 @@ xmlSecOpenSSLEvpDigestExecute(xmlSecTransformPtr transform, int last, xmlSecTran
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
-#else /* XMLSEC_OPENSSL_096 */
- EVP_DigestInit(&(ctx->digestCtx), ctx->digest);
-#endif /* XMLSEC_OPENSSL_096 */
transform->status = xmlSecTransformStatusWorking;
}
@@ -303,8 +355,7 @@ xmlSecOpenSSLEvpDigestExecute(xmlSecTransformPtr transform, int last, xmlSecTran
inSize = xmlSecBufferGetSize(in);
if(inSize > 0) {
-#ifndef XMLSEC_OPENSSL_096
- ret = EVP_DigestUpdate(&(ctx->digestCtx), xmlSecBufferGetData(in), inSize);
+ ret = EVP_DigestUpdate(ctx->digestCtx, xmlSecBufferGetData(in), inSize);
if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
@@ -313,9 +364,6 @@ xmlSecOpenSSLEvpDigestExecute(xmlSecTransformPtr transform, int last, xmlSecTran
"size=%d", inSize);
return(-1);
}
-#else /* XMLSEC_OPENSSL_096 */
- EVP_DigestUpdate(&(ctx->digestCtx), xmlSecBufferGetData(in), inSize);
-#endif /* XMLSEC_OPENSSL_096 */
ret = xmlSecBufferRemoveHead(in, inSize);
if(ret < 0) {
@@ -332,8 +380,7 @@ xmlSecOpenSSLEvpDigestExecute(xmlSecTransformPtr transform, int last, xmlSecTran
xmlSecAssert2((xmlSecSize)EVP_MD_size(ctx->digest) <= sizeof(ctx->dgst), -1);
-#ifndef XMLSEC_OPENSSL_096
- ret = EVP_DigestFinal(&(ctx->digestCtx), ctx->dgst, &dgstSize);
+ ret = EVP_DigestFinal(ctx->digestCtx, ctx->dgst, &dgstSize);
if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
@@ -342,9 +389,6 @@ xmlSecOpenSSLEvpDigestExecute(xmlSecTransformPtr transform, int last, xmlSecTran
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
-#else /* XMLSEC_OPENSSL_096 */
- EVP_DigestFinal(&(ctx->digestCtx), ctx->dgst, &dgstSize);
-#endif /* XMLSEC_OPENSSL_096 */
xmlSecAssert2(dgstSize > 0, -1);
ctx->dgstSize = XMLSEC_SIZE_BAD_CAST(dgstSize);
@@ -745,3 +789,91 @@ xmlSecOpenSSLTransformGostR3411_94GetKlass(void) {
}
#endif /* XMLSEC_NO_GOST*/
+#ifndef XMLSEC_NO_GOST2012
+
+/******************************************************************************
+ *
+ * GOST R 34.11-2012 256 bit
+ *
+ *****************************************************************************/
+static xmlSecTransformKlass xmlSecOpenSSLGostR3411_2012_256Klass = {
+ /* klass/object sizes */
+ sizeof(xmlSecTransformKlass), /* size_t klassSize */
+ xmlSecOpenSSLEvpDigestSize, /* size_t objSize */
+
+ xmlSecNameGostR3411_2012_256, /* const xmlChar* name; */
+ xmlSecHrefGostR3411_2012_256, /* const xmlChar* href; */
+ xmlSecTransformUsageDigestMethod, /* xmlSecTransformUsage usage; */
+ xmlSecOpenSSLEvpDigestInitialize, /* xmlSecTransformInitializeMethod initialize; */
+ xmlSecOpenSSLEvpDigestFinalize, /* xmlSecTransformFinalizeMethod finalize; */
+ NULL, /* xmlSecTransformNodeReadMethod readNode; */
+ NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
+ NULL, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
+ NULL, /* xmlSecTransformSetKeyMethod setKey; */
+ xmlSecOpenSSLEvpDigestVerify, /* xmlSecTransformVerifyMethod verify; */
+ xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
+ xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
+ xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
+ NULL, /* xmlSecTransformPushXmlMethod pushXml; */
+ NULL, /* xmlSecTransformPopXmlMethod popXml; */
+ xmlSecOpenSSLEvpDigestExecute, /* xmlSecTransformExecuteMethod execute; */
+ NULL, /* void* reserved0; */
+ NULL, /* void* reserved1; */
+};
+
+/**
+ * xmlSecOpenSSLTransformGostR3411_2012_256GetKlass:
+ *
+ * GOST R 34.11-2012 256 bit digest transform klass.
+ *
+ * Returns: pointer to GOST R 34.11-2012 256 bit digest transform klass.
+ */
+xmlSecTransformId
+xmlSecOpenSSLTransformGostR3411_2012_256GetKlass(void) {
+ return(&xmlSecOpenSSLGostR3411_2012_256Klass);
+}
+
+/******************************************************************************
+ *
+ * GOST R 34.11-2012 512 bit
+ *
+ *****************************************************************************/
+static xmlSecTransformKlass xmlSecOpenSSLGostR3411_2012_512Klass = {
+ /* klass/object sizes */
+ sizeof(xmlSecTransformKlass), /* size_t klassSize */
+ xmlSecOpenSSLEvpDigestSize, /* size_t objSize */
+
+ xmlSecNameGostR3411_2012_512, /* const xmlChar* name; */
+ xmlSecHrefGostR3411_2012_512, /* const xmlChar* href; */
+ xmlSecTransformUsageDigestMethod, /* xmlSecTransformUsage usage; */
+ xmlSecOpenSSLEvpDigestInitialize, /* xmlSecTransformInitializeMethod initialize; */
+ xmlSecOpenSSLEvpDigestFinalize, /* xmlSecTransformFinalizeMethod finalize; */
+ NULL, /* xmlSecTransformNodeReadMethod readNode; */
+ NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
+ NULL, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
+ NULL, /* xmlSecTransformSetKeyMethod setKey; */
+ xmlSecOpenSSLEvpDigestVerify, /* xmlSecTransformVerifyMethod verify; */
+ xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
+ xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
+ xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
+ NULL, /* xmlSecTransformPushXmlMethod pushXml; */
+ NULL, /* xmlSecTransformPopXmlMethod popXml; */
+ xmlSecOpenSSLEvpDigestExecute, /* xmlSecTransformExecuteMethod execute; */
+ NULL, /* void* reserved0; */
+ NULL, /* void* reserved1; */
+};
+
+/**
+ * xmlSecOpenSSLTransformGostR3411_2012_512GetKlass:
+ *
+ * GOST R 34.11-2012 512 bit digest transform klass.
+ *
+ * Returns: pointer to GOST R 34.11-2012 512 bit digest transform klass.
+ */
+xmlSecTransformId
+xmlSecOpenSSLTransformGostR3411_2012_512GetKlass(void) {
+ return(&xmlSecOpenSSLGostR3411_2012_512Klass);
+}
+
+#endif /* XMLSEC_NO_GOST2012 */
+
diff --git a/src/openssl/evp.c b/src/openssl/evp.c
index e042f26..cee1493 100644
--- a/src/openssl/evp.c
+++ b/src/openssl/evp.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -23,6 +23,7 @@
#include <xmlsec/openssl/crypto.h>
#include <xmlsec/openssl/bn.h>
#include <xmlsec/openssl/evp.h>
+#include "openssl11_wrapper.h"
/**************************************************************************
*
@@ -182,7 +183,7 @@ xmlSecOpenSSLEvpKeyDup(EVP_PKEY* pKey) {
xmlSecAssert2(pKey != NULL, NULL);
- ret = CRYPTO_add(&pKey->references,1,CRYPTO_LOCK_EVP_PKEY);
+ ret = EVP_PKEY_up_ref(pKey);
if(ret <= 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
@@ -210,7 +211,7 @@ xmlSecOpenSSLEvpKeyAdopt(EVP_PKEY *pKey) {
xmlSecAssert2(pKey != NULL, NULL);
- switch(pKey->type) {
+ switch(EVP_PKEY_base_id(pKey)) {
#ifndef XMLSEC_NO_RSA
case EVP_PKEY_RSA:
data = xmlSecKeyDataCreate(xmlSecOpenSSLKeyDataRsaId);
@@ -250,6 +251,7 @@ xmlSecOpenSSLEvpKeyAdopt(EVP_PKEY *pKey) {
}
break;
#endif /* XMLSEC_NO_ECDSA */
+
#ifndef XMLSEC_NO_GOST
case NID_id_GostR3410_2001:
data = xmlSecKeyDataCreate(xmlSecOpenSSLKeyDataGost2001Id);
@@ -263,12 +265,39 @@ xmlSecOpenSSLEvpKeyAdopt(EVP_PKEY *pKey) {
}
break;
#endif /* XMLSEC_NO_GOST */
+
+#ifndef XMLSEC_NO_GOST2012
+ case NID_id_GostR3410_2012_256:
+ data = xmlSecKeyDataCreate(xmlSecOpenSSLKeyDataGostR3410_2012_256Id);
+ if(data == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlSecKeyDataCreate",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ "xmlSecOpenSSLKeyDataGostR3410_2012_256Id");
+ return(NULL);
+ }
+ break;
+
+ case NID_id_GostR3410_2012_512:
+ data = xmlSecKeyDataCreate(xmlSecOpenSSLKeyDataGostR3410_2012_512Id);
+ if(data == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlSecKeyDataCreate",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ "xmlSecOpenSSLKeyDataGostR3410_2012_512Id");
+ return(NULL);
+ }
+ break;
+#endif /* XMLSEC_NO_GOST2012 */
+
default:
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
NULL,
XMLSEC_ERRORS_R_INVALID_TYPE,
- "evp key type %d not supported", pKey->type);
+ "evp key type %d not supported", EVP_PKEY_base_id(pKey));
return(NULL);
}
@@ -468,6 +497,7 @@ xmlSecOpenSSLKeyDataDsaAdoptDsa(xmlSecKeyDataPtr data, DSA* dsa) {
"EVP_PKEY_assign_DSA",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
+ EVP_PKEY_free(pKey);
return(-1);
}
}
@@ -502,9 +532,9 @@ xmlSecOpenSSLKeyDataDsaGetDsa(xmlSecKeyDataPtr data) {
xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataDsaId), NULL);
pKey = xmlSecOpenSSLKeyDataDsaGetEvp(data);
- xmlSecAssert2((pKey == NULL) || (pKey->type == EVP_PKEY_DSA), NULL);
+ xmlSecAssert2((pKey == NULL) || (EVP_PKEY_base_id(pKey) == EVP_PKEY_DSA), NULL);
- return((pKey != NULL) ? pKey->pkey.dsa : (DSA*)NULL);
+ return((pKey != NULL) ? EVP_PKEY_get0_DSA(pKey) : NULL);
}
/**
@@ -520,7 +550,7 @@ int
xmlSecOpenSSLKeyDataDsaAdoptEvp(xmlSecKeyDataPtr data, EVP_PKEY* pKey) {
xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataDsaId), -1);
xmlSecAssert2(pKey != NULL, -1);
- xmlSecAssert2(pKey->type == EVP_PKEY_DSA, -1);
+ xmlSecAssert2(EVP_PKEY_base_id(pKey) == EVP_PKEY_DSA, -1);
return(xmlSecOpenSSLEvpKeyDataAdoptEvp(data, pKey));
}
@@ -565,9 +595,11 @@ xmlSecOpenSSLKeyDataDsaFinalize(xmlSecKeyDataPtr data) {
static int
xmlSecOpenSSLKeyDataDsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlNodePtr node, xmlSecKeyInfoCtxPtr keyInfoCtx) {
- xmlSecKeyDataPtr data;
+ xmlSecKeyDataPtr data = NULL;
xmlNodePtr cur;
- DSA *dsa;
+ DSA *dsa = NULL;
+ BIGNUM *p = NULL, *q = NULL, *g = NULL;
+ BIGNUM *priv_key = NULL, *pub_key = NULL;
int ret;
xmlSecAssert2(id == xmlSecOpenSSLKeyDataDsaId, -1);
@@ -591,7 +623,7 @@ xmlSecOpenSSLKeyDataDsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
"DSA_new",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
+ goto err_cleanup;
}
cur = xmlSecGetNextElementNode(node->children);
@@ -604,18 +636,17 @@ xmlSecOpenSSLKeyDataDsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
XMLSEC_ERRORS_R_INVALID_NODE,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeDSAP));
- DSA_free(dsa);
- return(-1);
+ goto err_cleanup;
}
- if(xmlSecOpenSSLNodeGetBNValue(cur, &(dsa->p)) == NULL) {
+
+ if(xmlSecOpenSSLNodeGetBNValue(cur, &p) == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
"xmlSecOpenSSLNodeGetBNValue",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeDSAP));
- DSA_free(dsa);
- return(-1);
+ goto err_cleanup;
}
cur = xmlSecGetNextElementNode(cur->next);
@@ -627,18 +658,16 @@ xmlSecOpenSSLKeyDataDsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
XMLSEC_ERRORS_R_INVALID_NODE,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeDSAQ));
- DSA_free(dsa);
- return(-1);
+ goto err_cleanup;
}
- if(xmlSecOpenSSLNodeGetBNValue(cur, &(dsa->q)) == NULL) {
+ if(xmlSecOpenSSLNodeGetBNValue(cur, &q) == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
"xmlSecOpenSSLNodeGetBNValue",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeDSAQ));
- DSA_free(dsa);
- return(-1);
+ goto err_cleanup;
}
cur = xmlSecGetNextElementNode(cur->next);
@@ -650,33 +679,30 @@ xmlSecOpenSSLKeyDataDsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
XMLSEC_ERRORS_R_INVALID_NODE,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeDSAG));
- DSA_free(dsa);
- return(-1);
+ goto err_cleanup;
}
- if(xmlSecOpenSSLNodeGetBNValue(cur, &(dsa->g)) == NULL) {
+ if(xmlSecOpenSSLNodeGetBNValue(cur, &g) == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
"xmlSecOpenSSLNodeGetBNValue",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeDSAG));
- DSA_free(dsa);
- return(-1);
+ goto err_cleanup;
}
cur = xmlSecGetNextElementNode(cur->next);
if((cur != NULL) && (xmlSecCheckNodeName(cur, xmlSecNodeDSAX, xmlSecNs))) {
/* next is X node. It is REQUIRED for private key but
* we are not sure exactly what do we read */
- if(xmlSecOpenSSLNodeGetBNValue(cur, &(dsa->priv_key)) == NULL) {
+ if(xmlSecOpenSSLNodeGetBNValue(cur, &priv_key) == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
"xmlSecOpenSSLNodeGetBNValue",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeDSAX));
- DSA_free(dsa);
- return(-1);
+ goto err_cleanup;
}
cur = xmlSecGetNextElementNode(cur->next);
}
@@ -689,17 +715,15 @@ xmlSecOpenSSLKeyDataDsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
XMLSEC_ERRORS_R_INVALID_NODE,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeDSAY));
- DSA_free(dsa);
- return(-1);
+ goto err_cleanup;
}
- if(xmlSecOpenSSLNodeGetBNValue(cur, &(dsa->pub_key)) == NULL) {
+ if(xmlSecOpenSSLNodeGetBNValue(cur, &pub_key) == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
"xmlSecOpenSSLNodeGetBNValue",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s", xmlSecErrorsSafeString(xmlSecNodeDSAY));
- DSA_free(dsa);
- return(-1);
+ goto err_cleanup;
}
cur = xmlSecGetNextElementNode(cur->next);
@@ -724,8 +748,7 @@ xmlSecOpenSSLKeyDataDsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlSecErrorsSafeString(xmlSecNodeGetName(cur)),
XMLSEC_ERRORS_R_UNEXPECTED_NODE,
XMLSEC_ERRORS_NO_MESSAGE);
- DSA_free(dsa);
- return(-1);
+ goto err_cleanup;
}
data = xmlSecKeyDataCreate(id);
@@ -735,10 +758,34 @@ xmlSecOpenSSLKeyDataDsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
"xmlSecKeyDataCreate",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
- DSA_free(dsa);
- return(-1);
+ goto err_cleanup;
}
+ ret = DSA_set0_pqg(dsa, p, q, g);
+ if(ret != 1) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
+ "DSA_set0_pqg",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto err_cleanup;
+ }
+ p = NULL;
+ q = NULL;
+ g = NULL;
+
+ ret = DSA_set0_key(dsa, pub_key, priv_key);
+ if(ret != 1) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
+ "DSA_set0_key",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto err_cleanup;
+ }
+ pub_key = NULL;
+ priv_key = NULL;
+
ret = xmlSecOpenSSLKeyDataDsaAdoptDsa(data, dsa);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -746,10 +793,9 @@ xmlSecOpenSSLKeyDataDsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
"xmlSecOpenSSLKeyDataDsaAdoptDsa",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecKeyDataDestroy(data);
- DSA_free(dsa);
- return(-1);
+ goto err_cleanup;
}
+ dsa = NULL;
ret = xmlSecKeySetValue(key, data);
if(ret < 0) {
@@ -758,11 +804,23 @@ xmlSecOpenSSLKeyDataDsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
"xmlSecKeySetValue",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecKeyDataDestroy(data);
- return(-1);
+ data = NULL;
+ goto err_cleanup;
}
return(0);
+
+err_cleanup:
+ DSA_free(dsa);
+ BN_free(p);
+ BN_free(q);
+ BN_free(g);
+ BN_free(priv_key);
+ BN_free(pub_key);
+ if(data != NULL) {
+ xmlSecKeyDataDestroy(data);
+ }
+ return(-1);
}
static int
@@ -771,6 +829,8 @@ xmlSecOpenSSLKeyDataDsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlNodePtr cur;
DSA* dsa;
int ret;
+ const BIGNUM *p = NULL, *q = NULL, *g = NULL;
+ const BIGNUM *priv_key = NULL, *pub_key = NULL;
xmlSecAssert2(id == xmlSecOpenSSLKeyDataDsaId, -1);
xmlSecAssert2(key != NULL, -1);
@@ -786,8 +846,10 @@ xmlSecOpenSSLKeyDataDsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
return(0);
}
+ DSA_get0_pqg(dsa, &p, &q, &g);
+
/* first is P node */
- xmlSecAssert2(dsa->p != NULL, -1);
+ xmlSecAssert2(p != NULL, -1);
cur = xmlSecAddChild(node, xmlSecNodeDSAP, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -798,7 +860,7 @@ xmlSecOpenSSLKeyDataDsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlSecErrorsSafeString(xmlSecNodeDSAP));
return(-1);
}
- ret = xmlSecOpenSSLNodeSetBNValue(cur, dsa->p, 1);
+ ret = xmlSecOpenSSLNodeSetBNValue(cur, p, 1);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
@@ -810,7 +872,7 @@ xmlSecOpenSSLKeyDataDsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
}
/* next is Q node. */
- xmlSecAssert2(dsa->q != NULL, -1);
+ xmlSecAssert2(q != NULL, -1);
cur = xmlSecAddChild(node, xmlSecNodeDSAQ, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -821,7 +883,7 @@ xmlSecOpenSSLKeyDataDsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlSecErrorsSafeString(xmlSecNodeDSAQ));
return(-1);
}
- ret = xmlSecOpenSSLNodeSetBNValue(cur, dsa->q, 1);
+ ret = xmlSecOpenSSLNodeSetBNValue(cur, q, 1);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
@@ -833,7 +895,7 @@ xmlSecOpenSSLKeyDataDsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
}
/* next is G node. */
- xmlSecAssert2(dsa->g != NULL, -1);
+ xmlSecAssert2(g != NULL, -1);
cur = xmlSecAddChild(node, xmlSecNodeDSAG, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -844,7 +906,7 @@ xmlSecOpenSSLKeyDataDsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlSecErrorsSafeString(xmlSecNodeDSAG));
return(-1);
}
- ret = xmlSecOpenSSLNodeSetBNValue(cur, dsa->g, 1);
+ ret = xmlSecOpenSSLNodeSetBNValue(cur, g, 1);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
@@ -855,8 +917,10 @@ xmlSecOpenSSLKeyDataDsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
return(-1);
}
+ DSA_get0_key(dsa, &pub_key, &priv_key);
+
/* next is X node: write it ONLY for private keys and ONLY if it is requested */
- if(((keyInfoCtx->keyReq.keyType & xmlSecKeyDataTypePrivate) != 0) && (dsa->priv_key != NULL)) {
+ if(((keyInfoCtx->keyReq.keyType & xmlSecKeyDataTypePrivate) != 0) && (priv_key != NULL)) {
cur = xmlSecAddChild(node, xmlSecNodeDSAX, xmlSecNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -867,7 +931,7 @@ xmlSecOpenSSLKeyDataDsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlSecErrorsSafeString(xmlSecNodeDSAX));
return(-1);
}
- ret = xmlSecOpenSSLNodeSetBNValue(cur, dsa->priv_key, 1);
+ ret = xmlSecOpenSSLNodeSetBNValue(cur, priv_key, 1);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
@@ -880,7 +944,7 @@ xmlSecOpenSSLKeyDataDsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
}
/* next is Y node. */
- xmlSecAssert2(dsa->pub_key != NULL, -1);
+ xmlSecAssert2(pub_key != NULL, -1);
cur = xmlSecAddChild(node, xmlSecNodeDSAY, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -891,7 +955,7 @@ xmlSecOpenSSLKeyDataDsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlSecErrorsSafeString(xmlSecNodeDSAY));
return(-1);
}
- ret = xmlSecOpenSSLNodeSetBNValue(cur, dsa->pub_key, 1);
+ ret = xmlSecOpenSSLNodeSetBNValue(cur, pub_key, 1);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
@@ -914,13 +978,24 @@ xmlSecOpenSSLKeyDataDsaGenerate(xmlSecKeyDataPtr data, xmlSecSize sizeBits, xmlS
xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataDsaId), -1);
xmlSecAssert2(sizeBits > 0, -1);
- dsa = DSA_generate_parameters(sizeBits, NULL, 0, &counter_ret, &h_ret, NULL, NULL);
+ dsa = DSA_new();
if(dsa == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataGetName(data)),
- "DSA_generate_parameters",
+ "DSA_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ "size=%d", sizeBits);
+ return(-1);
+ }
+
+ ret = DSA_generate_parameters_ex(dsa, sizeBits, NULL, 0, &counter_ret, &h_ret, NULL);
+ if(ret != 1) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecKeyDataGetName(data)),
+ "DSA_generate_parameters_ex",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
"size=%d", sizeBits);
+ DSA_free(dsa);
return(-1);
}
@@ -952,16 +1027,25 @@ xmlSecOpenSSLKeyDataDsaGenerate(xmlSecKeyDataPtr data, xmlSecSize sizeBits, xmlS
static xmlSecKeyDataType
xmlSecOpenSSLKeyDataDsaGetType(xmlSecKeyDataPtr data) {
DSA* dsa;
+ const BIGNUM *p = NULL, *q = NULL, *g = NULL;
+ const BIGNUM *priv_key = NULL, *pub_key = NULL;
+ const ENGINE *dsa_eng = NULL;
xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataDsaId), xmlSecKeyDataTypeUnknown);
dsa = xmlSecOpenSSLKeyDataDsaGetDsa(data);
- if((dsa != NULL) && (dsa->p != NULL) && (dsa->q != NULL) &&
- (dsa->g != NULL) && (dsa->pub_key != NULL)) {
+ if(dsa == NULL) {
+ return(xmlSecKeyDataTypeUnknown);
+ }
+
+ DSA_get0_pqg(dsa, &p, &q, &g);
+ DSA_get0_key(dsa, &pub_key, &priv_key);
+ dsa_eng = DSA_get0_engine(dsa);
- if(dsa->priv_key != NULL) {
+ if(p != NULL && q != NULL && g != NULL && pub_key != NULL) {
+ if(priv_key != NULL) {
return(xmlSecKeyDataTypePrivate | xmlSecKeyDataTypePublic);
- } else if(dsa->engine != NULL) {
+ } else if(dsa_eng != NULL) {
/*
* !!! HACK !!! Also see RSA key
* We assume here that engine *always* has private key.
@@ -980,14 +1064,20 @@ xmlSecOpenSSLKeyDataDsaGetType(xmlSecKeyDataPtr data) {
static xmlSecSize
xmlSecOpenSSLKeyDataDsaGetSize(xmlSecKeyDataPtr data) {
DSA* dsa;
+ const BIGNUM *p;
xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataDsaId), 0);
dsa = xmlSecOpenSSLKeyDataDsaGetDsa(data);
- if((dsa != NULL) && (dsa->p != NULL)) {
- return(BN_num_bits(dsa->p));
+ if(dsa == NULL) {
+ return(0);
}
- return(0);
+
+ DSA_get0_pqg(dsa, &p, NULL, NULL);
+ if(p == NULL) {
+ return(0);
+ }
+ return(BN_num_bits(p));
}
static void
@@ -1060,8 +1150,8 @@ static xmlSecKeyDataKlass xmlSecOpenSSLKeyDataEcdsaKlass = {
NULL, /* xmlSecKeyDataGetIdentifier getIdentifier; */
/* read/write */
- NULL, /* xmlSecKeyDataXmlReadMethod xmlRead; */
- NULL, /* xmlSecKeyDataXmlWriteMethod xmlWrite; */
+ NULL, /* xmlSecKeyDataXmlReadMethod xmlRead; */
+ NULL, /* xmlSecKeyDataXmlWriteMethod xmlWrite; */
NULL, /* xmlSecKeyDataBinReadMethod binRead; */
NULL, /* xmlSecKeyDataBinWriteMethod binWrite; */
@@ -1121,6 +1211,7 @@ xmlSecOpenSSLKeyDataEcdsaAdoptEcdsa(xmlSecKeyDataPtr data, EC_KEY* ecdsa) {
"EVP_PKEY_assign_EC_KEY",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
+ EVP_PKEY_free(pKey);
return(-1);
}
}
@@ -1155,9 +1246,9 @@ xmlSecOpenSSLKeyDataEcdsaGetEcdsa(xmlSecKeyDataPtr data) {
xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataEcdsaId), NULL);
pKey = xmlSecOpenSSLKeyDataEcdsaGetEvp(data);
- xmlSecAssert2((pKey == NULL) || (pKey->type == EVP_PKEY_EC), NULL);
+ xmlSecAssert2((pKey == NULL) || (EVP_PKEY_base_id(pKey) == EVP_PKEY_EC), NULL);
- return((pKey != NULL) ? pKey->pkey.ec : (EC_KEY*)NULL);
+ return((pKey != NULL) ? EVP_PKEY_get0_EC_KEY(pKey) : NULL);
}
/**
@@ -1173,7 +1264,7 @@ int
xmlSecOpenSSLKeyDataEcdsaAdoptEvp(xmlSecKeyDataPtr data, EVP_PKEY* pKey) {
xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataEcdsaId), -1);
xmlSecAssert2(pKey != NULL, -1);
- xmlSecAssert2(pKey->type == EVP_PKEY_EC, -1);
+ xmlSecAssert2(EVP_PKEY_base_id(pKey) == EVP_PKEY_EC, -1);
return(xmlSecOpenSSLEvpKeyDataAdoptEvp(data, pKey));
}
@@ -1225,7 +1316,8 @@ static xmlSecSize
xmlSecOpenSSLKeyDataEcdsaGetSize(xmlSecKeyDataPtr data) {
const EC_GROUP *group;
const EC_KEY *ecdsa;
- BIGNUM order;
+ BIGNUM * order;
+ xmlSecSize res;
xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataEcdsaId), 0);
@@ -1244,16 +1336,30 @@ xmlSecOpenSSLKeyDataEcdsaGetSize(xmlSecKeyDataPtr data) {
return(0);
}
- if(EC_GROUP_get_order(group, &order, NULL) != 1) {
+ order = BN_new();
+ if(order == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "BN_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(0);
+ }
+
+ if(EC_GROUP_get_order(group, order, NULL) != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
"EC_GROUP_get_order",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
+ BN_free(order);
return(0);
}
- return(BN_num_bytes(&order));
+ res = BN_num_bytes(order);
+ BN_free(order);
+
+ return(res);
}
static void
@@ -1427,6 +1533,7 @@ xmlSecOpenSSLKeyDataRsaAdoptRsa(xmlSecKeyDataPtr data, RSA* rsa) {
"EVP_PKEY_assign_RSA",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
+ EVP_PKEY_free(pKey);
return(-1);
}
}
@@ -1461,9 +1568,9 @@ xmlSecOpenSSLKeyDataRsaGetRsa(xmlSecKeyDataPtr data) {
xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataRsaId), NULL);
pKey = xmlSecOpenSSLKeyDataRsaGetEvp(data);
- xmlSecAssert2((pKey == NULL) || (pKey->type == EVP_PKEY_RSA), NULL);
+ xmlSecAssert2((pKey == NULL) || (EVP_PKEY_base_id(pKey) == EVP_PKEY_RSA), NULL);
- return((pKey != NULL) ? pKey->pkey.rsa : (RSA*)NULL);
+ return((pKey != NULL) ? EVP_PKEY_get0_RSA(pKey) : NULL);
}
/**
@@ -1479,7 +1586,7 @@ int
xmlSecOpenSSLKeyDataRsaAdoptEvp(xmlSecKeyDataPtr data, EVP_PKEY* pKey) {
xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataRsaId), -1);
xmlSecAssert2(pKey != NULL, -1);
- xmlSecAssert2(pKey->type == EVP_PKEY_RSA, -1);
+ xmlSecAssert2(EVP_PKEY_base_id(pKey) == EVP_PKEY_RSA, -1);
return(xmlSecOpenSSLEvpKeyDataAdoptEvp(data, pKey));
}
@@ -1524,9 +1631,10 @@ xmlSecOpenSSLKeyDataRsaFinalize(xmlSecKeyDataPtr data) {
static int
xmlSecOpenSSLKeyDataRsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlNodePtr node, xmlSecKeyInfoCtxPtr keyInfoCtx) {
- xmlSecKeyDataPtr data;
+ xmlSecKeyDataPtr data = NULL;
xmlNodePtr cur;
- RSA *rsa;
+ RSA *rsa = NULL;
+ BIGNUM *n = NULL, *e = NULL, *d = NULL;
int ret;
xmlSecAssert2(id == xmlSecOpenSSLKeyDataRsaId, -1);
@@ -1563,18 +1671,16 @@ xmlSecOpenSSLKeyDataRsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
XMLSEC_ERRORS_R_INVALID_NODE,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeRSAModulus));
- RSA_free(rsa);
- return(-1);
+ goto err_cleanup;
}
- if(xmlSecOpenSSLNodeGetBNValue(cur, &(rsa->n)) == NULL) {
+ if(xmlSecOpenSSLNodeGetBNValue(cur, &n) == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
"xmlSecOpenSSLNodeGetBNValue",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeRSAModulus));
- RSA_free(rsa);
- return(-1);
+ goto err_cleanup;
}
cur = xmlSecGetNextElementNode(cur->next);
@@ -1586,33 +1692,30 @@ xmlSecOpenSSLKeyDataRsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
XMLSEC_ERRORS_R_INVALID_NODE,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeRSAExponent));
- RSA_free(rsa);
- return(-1);
+ goto err_cleanup;
}
- if(xmlSecOpenSSLNodeGetBNValue(cur, &(rsa->e)) == NULL) {
+ if(xmlSecOpenSSLNodeGetBNValue(cur, &e) == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
"xmlSecOpenSSLNodeGetBNValue",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeRSAExponent));
- RSA_free(rsa);
- return(-1);
+ goto err_cleanup;
}
cur = xmlSecGetNextElementNode(cur->next);
if((cur != NULL) && (xmlSecCheckNodeName(cur, xmlSecNodeRSAPrivateExponent, xmlSecNs))) {
/* next is X node. It is REQUIRED for private key but
* we are not sure exactly what do we read */
- if(xmlSecOpenSSLNodeGetBNValue(cur, &(rsa->d)) == NULL) {
+ if(xmlSecOpenSSLNodeGetBNValue(cur, &d) == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
"xmlSecOpenSSLNodeGetBNValue",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeRSAPrivateExponent));
- RSA_free(rsa);
- return(-1);
+ goto err_cleanup;
}
cur = xmlSecGetNextElementNode(cur->next);
}
@@ -1623,9 +1726,21 @@ xmlSecOpenSSLKeyDataRsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlSecErrorsSafeString(xmlSecNodeGetName(cur)),
XMLSEC_ERRORS_R_INVALID_NODE,
"no nodes expected");
- RSA_free(rsa);
- return(-1);
+ goto err_cleanup;
+ }
+
+ ret = RSA_set0_key(rsa, n, e, d);
+ if(ret == 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
+ "RSA_set0_key",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto err_cleanup;
}
+ n = NULL;
+ e = NULL;
+ d = NULL;
data = xmlSecKeyDataCreate(id);
if(data == NULL ) {
@@ -1634,8 +1749,7 @@ xmlSecOpenSSLKeyDataRsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
"xmlSecKeyDataCreate",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
- RSA_free(rsa);
- return(-1);
+ goto err_cleanup;
}
ret = xmlSecOpenSSLKeyDataRsaAdoptRsa(data, rsa);
@@ -1645,9 +1759,7 @@ xmlSecOpenSSLKeyDataRsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
"xmlSecOpenSSLKeyDataRsaAdoptRsa",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecKeyDataDestroy(data);
- RSA_free(rsa);
- return(-1);
+ goto err_cleanup;
}
ret = xmlSecKeySetValue(key, data);
@@ -1657,11 +1769,21 @@ xmlSecOpenSSLKeyDataRsaXmlRead(xmlSecKeyDataId id, xmlSecKeyPtr key,
"xmlSecKeySetValue",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecKeyDataDestroy(data);
- return(-1);
+ data = NULL;
+ goto err_cleanup;
}
return(0);
+
+err_cleanup:
+ RSA_free(rsa);
+ BN_free(n);
+ BN_free(e);
+ BN_free(d);
+ if(data != NULL) {
+ xmlSecKeyDataDestroy(data);
+ }
+ return(-1);
}
static int
@@ -1669,6 +1791,7 @@ xmlSecOpenSSLKeyDataRsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlNodePtr node, xmlSecKeyInfoCtxPtr keyInfoCtx) {
xmlNodePtr cur;
RSA* rsa;
+ const BIGNUM *n = NULL, *e = NULL, *d = NULL;
int ret;
xmlSecAssert2(id == xmlSecOpenSSLKeyDataRsaId, -1);
@@ -1684,6 +1807,7 @@ xmlSecOpenSSLKeyDataRsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
/* we can have only private key or public key */
return(0);
}
+ RSA_get0_key(rsa, &n, &e, &d);
/* first is Modulus node */
cur = xmlSecAddChild(node, xmlSecNodeRSAModulus, xmlSecDSigNs);
@@ -1696,7 +1820,8 @@ xmlSecOpenSSLKeyDataRsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlSecErrorsSafeString(xmlSecNodeRSAModulus));
return(-1);
}
- ret = xmlSecOpenSSLNodeSetBNValue(cur, rsa->n, 1);
+
+ ret = xmlSecOpenSSLNodeSetBNValue(cur, n, 1);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
@@ -1718,7 +1843,7 @@ xmlSecOpenSSLKeyDataRsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlSecErrorsSafeString(xmlSecNodeRSAExponent));
return(-1);
}
- ret = xmlSecOpenSSLNodeSetBNValue(cur, rsa->e, 1);
+ ret = xmlSecOpenSSLNodeSetBNValue(cur, e, 1);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
@@ -1730,7 +1855,7 @@ xmlSecOpenSSLKeyDataRsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
}
/* next is PrivateExponent node: write it ONLY for private keys and ONLY if it is requested */
- if(((keyInfoCtx->keyReq.keyType & xmlSecKeyDataTypePrivate) != 0) && (rsa->d != NULL)) {
+ if(((keyInfoCtx->keyReq.keyType & xmlSecKeyDataTypePrivate) != 0) && (d != NULL)) {
cur = xmlSecAddChild(node, xmlSecNodeRSAPrivateExponent, xmlSecNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -1741,7 +1866,7 @@ xmlSecOpenSSLKeyDataRsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlSecErrorsSafeString(xmlSecNodeRSAPrivateExponent));
return(-1);
}
- ret = xmlSecOpenSSLNodeSetBNValue(cur, rsa->d, 1);
+ ret = xmlSecOpenSSLNodeSetBNValue(cur, d, 1);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
@@ -1758,19 +1883,55 @@ xmlSecOpenSSLKeyDataRsaXmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
static int
xmlSecOpenSSLKeyDataRsaGenerate(xmlSecKeyDataPtr data, xmlSecSize sizeBits, xmlSecKeyDataType type ATTRIBUTE_UNUSED) {
+ BIGNUM* e;
RSA* rsa;
int ret;
xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataRsaId), -1);
xmlSecAssert2(sizeBits > 0, -1);
- rsa = RSA_generate_key(sizeBits, 3, NULL, NULL);
+ /* create exponent */
+ e = BN_new();
+ if(e == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecKeyDataGetName(data)),
+ "BN_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ "sizeBits=%d", sizeBits);
+ return(-1);
+ }
+
+ ret = BN_set_word(e, RSA_F4);
+ if(ret != 1){
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecKeyDataGetName(data)),
+ "BN_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ "sizeBits=%d", sizeBits);
+ BN_free(e);
+ return(-1);
+ }
+
+ rsa = RSA_new();
if(rsa == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataGetName(data)),
+ "RSA_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ "sizeBits=%d", sizeBits);
+ BN_free(e);
+ return(-1);
+ }
+
+ ret = RSA_generate_key_ex(rsa, sizeBits, e, NULL);
+ if(ret != 1) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecKeyDataGetName(data)),
"RSA_generate_key",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
"sizeBits=%d", sizeBits);
+ RSA_free(rsa);
+ BN_free(e);
return(-1);
}
@@ -1782,23 +1943,34 @@ xmlSecOpenSSLKeyDataRsaGenerate(xmlSecKeyDataPtr data, xmlSecSize sizeBits, xmlS
XMLSEC_ERRORS_R_XMLSEC_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
RSA_free(rsa);
+ BN_free(e);
return(-1);
}
+ /* cleanup (don't release rsa since xmlSecKeyDataPtr data owns it now */
+ BN_free(e);
+
+ /* done */
return(0);
}
static xmlSecKeyDataType
xmlSecOpenSSLKeyDataRsaGetType(xmlSecKeyDataPtr data) {
RSA* rsa;
+ const BIGNUM *n = NULL, *e = NULL, *d = NULL;
xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataRsaId), xmlSecKeyDataTypeUnknown);
rsa = xmlSecOpenSSLKeyDataRsaGetRsa(data);
- if((rsa != NULL) && (rsa->n != NULL) && (rsa->e != NULL)) {
- if(rsa->d != NULL) {
+ if(rsa == NULL) {
+ return(xmlSecKeyDataTypeUnknown);
+ }
+
+ RSA_get0_key(rsa, &n, &e, &d);
+ if(n != NULL && e != NULL) {
+ if(d != NULL) {
return(xmlSecKeyDataTypePrivate | xmlSecKeyDataTypePublic);
- } else if((rsa->flags & RSA_FLAG_EXT_PKEY) != 0) {
+ } else if(RSA_test_flags(rsa, RSA_FLAG_EXT_PKEY)) {
/*
* !!! HACK !!! Also see DSA key
* We assume here that engine *always* has private key.
@@ -1817,12 +1989,17 @@ xmlSecOpenSSLKeyDataRsaGetType(xmlSecKeyDataPtr data) {
static xmlSecSize
xmlSecOpenSSLKeyDataRsaGetSize(xmlSecKeyDataPtr data) {
RSA* rsa;
+ const BIGNUM *n;
xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataRsaId), 0);
rsa = xmlSecOpenSSLKeyDataRsaGetRsa(data);
- if((rsa != NULL) && (rsa->n != NULL)) {
- return(BN_num_bits(rsa->n));
+ if(rsa == NULL) {
+ return(0);
+ }
+ RSA_get0_key(rsa, &n, NULL, NULL);
+ if(n != NULL) {
+ return(BN_num_bits(n));
}
return(0);
}
@@ -1844,14 +2021,12 @@ xmlSecOpenSSLKeyDataRsaDebugXmlDump(xmlSecKeyDataPtr data, FILE* output) {
fprintf(output, "<RSAKeyValue size=\"%d\" />\n",
xmlSecOpenSSLKeyDataRsaGetSize(data));
}
-
#endif /* XMLSEC_NO_RSA */
-
#ifndef XMLSEC_NO_GOST
/**************************************************************************
*
- * GOST2001 xml key representation processing. Contain errors.
+ * GOST2001 xml key representation processing
*
*************************************************************************/
static int xmlSecOpenSSLKeyDataGost2001Initialize(xmlSecKeyDataPtr data);
@@ -1887,17 +2062,17 @@ static xmlSecKeyDataKlass xmlSecOpenSSLKeyDataGost2001Klass = {
/* get info */
xmlSecOpenSSLKeyDataGost2001GetType, /* xmlSecKeyDataGetTypeMethod getType; */
xmlSecOpenSSLKeyDataGost2001GetSize, /* xmlSecKeyDataGetSizeMethod getSize; */
- NULL, /* xmlSecKeyDataGetIdentifier getIdentifier; */
+ NULL, /* xmlSecKeyDataGetIdentifier getIdentifier; */
/* read/write */
- NULL, /* xmlSecKeyDataXmlReadMethod xmlRead; */
- NULL, /* xmlSecKeyDataXmlWriteMethod xmlWrite; */
- NULL, /* xmlSecKeyDataBinReadMethod binRead; */
- NULL, /* xmlSecKeyDataBinWriteMethod binWrite; */
+ NULL, /* xmlSecKeyDataXmlReadMethod xmlRead; */
+ NULL, /* xmlSecKeyDataXmlWriteMethod xmlWrite; */
+ NULL, /* xmlSecKeyDataBinReadMethod binRead; */
+ NULL, /* xmlSecKeyDataBinWriteMethod binWrite; */
/* debug */
xmlSecOpenSSLKeyDataGost2001DebugDump, /* xmlSecKeyDataDebugDumpMethod debugDump; */
- xmlSecOpenSSLKeyDataGost2001DebugXmlDump,/* xmlSecKeyDataDebugDumpMethod debugXmlDump; */
+ xmlSecOpenSSLKeyDataGost2001DebugXmlDump, /* xmlSecKeyDataDebugDumpMethod debugXmlDump; */
/* reserved for the future */
NULL, /* void* reserved0; */
@@ -1941,9 +2116,9 @@ xmlSecOpenSSLKeyDataGost2001Finalize(xmlSecKeyDataPtr data) {
static xmlSecKeyDataType
xmlSecOpenSSLKeyDataGost2001GetType(xmlSecKeyDataPtr data) {
- /* Now I don't know how to find whether we have both private and public key
- or the public only*/
- return(xmlSecKeyDataTypePublic | xmlSecKeyDataTypePrivate);
+ /* Now I don't know how to find whether we have both private and public key
+ or the public only*/
+ return(xmlSecKeyDataTypePublic | xmlSecKeyDataTypePrivate);
}
static xmlSecSize
@@ -1970,6 +2145,258 @@ xmlSecOpenSSLKeyDataGost2001DebugXmlDump(xmlSecKeyDataPtr data, FILE* output) {
fprintf(output, "<GOST2001KeyValue size=\"%d\" />\n",
xmlSecOpenSSLKeyDataGost2001GetSize(data));
}
+#endif /* XMLSEC_NO_GOST */
+
+#ifndef XMLSEC_NO_GOST2012
+
+/**************************************************************************
+ *
+ * GOST R 34.10-2012 256 bit xml key representation processing
+ *
+ *************************************************************************/
+static int xmlSecOpenSSLKeyDataGostR3410_2012_256Initialize(xmlSecKeyDataPtr data);
+static int xmlSecOpenSSLKeyDataGostR3410_2012_256Duplicate(xmlSecKeyDataPtr dst,
+ xmlSecKeyDataPtr src);
+static void xmlSecOpenSSLKeyDataGostR3410_2012_256Finalize(xmlSecKeyDataPtr data);
+
+static xmlSecKeyDataType xmlSecOpenSSLKeyDataGostR3410_2012_256GetType(xmlSecKeyDataPtr data);
+static xmlSecSize xmlSecOpenSSLKeyDataGostR3410_2012_256GetSize(xmlSecKeyDataPtr data);
+static void xmlSecOpenSSLKeyDataGostR3410_2012_256DebugDump(xmlSecKeyDataPtr data,
+ FILE* output);
+static void xmlSecOpenSSLKeyDataGostR3410_2012_256DebugXmlDump(xmlSecKeyDataPtr data,
+ FILE* output);
+
+static xmlSecKeyDataKlass xmlSecOpenSSLKeyDataGostR3410_2012_256Klass = {
+ sizeof(xmlSecKeyDataKlass),
+ xmlSecOpenSSLEvpKeyDataSize,
+
+ /* data */
+ xmlSecNameGostR3410_2012_256KeyValue,
+ xmlSecKeyDataUsageKeyValueNode | xmlSecKeyDataUsageRetrievalMethodNodeXml,
+ /* xmlSecKeyDataUsage usage; */
+ xmlSecHrefGostR3410_2012_256KeyValue, /* const xmlChar* href; */
+ xmlSecNodeGostR3410_2012_256KeyValue, /* const xmlChar* dataNodeName; */
+ xmlSecDSigNs, /* const xmlChar* dataNodeNs; */
+
+ /* constructors/destructor */
+ xmlSecOpenSSLKeyDataGostR3410_2012_256Initialize, /* xmlSecKeyDataInitializeMethod initialize; */
+ xmlSecOpenSSLKeyDataGostR3410_2012_256Duplicate, /* xmlSecKeyDataDuplicateMethod duplicate; */
+ xmlSecOpenSSLKeyDataGostR3410_2012_256Finalize, /* xmlSecKeyDataFinalizeMethod finalize; */
+ NULL, /* xmlSecOpenSSLKeyDataGostR3410_2012_256Generate,*/ /* xmlSecKeyDataGenerateMethod generate; */
+
+ /* get info */
+ xmlSecOpenSSLKeyDataGostR3410_2012_256GetType, /* xmlSecKeyDataGetTypeMethod getType; */
+ xmlSecOpenSSLKeyDataGostR3410_2012_256GetSize, /* xmlSecKeyDataGetSizeMethod getSize; */
+ NULL, /* xmlSecKeyDataGetIdentifier getIdentifier; */
+
+ /* read/write */
+ NULL, /* xmlSecKeyDataXmlReadMethod xmlRead; */
+ NULL, /* xmlSecKeyDataXmlWriteMethod xmlWrite; */
+ NULL, /* xmlSecKeyDataBinReadMethod binRead; */
+ NULL, /* xmlSecKeyDataBinWriteMethod binWrite; */
+
+ /* debug */
+ xmlSecOpenSSLKeyDataGostR3410_2012_256DebugDump, /* xmlSecKeyDataDebugDumpMethod debugDump; */
+ xmlSecOpenSSLKeyDataGostR3410_2012_256DebugXmlDump,/* xmlSecKeyDataDebugDumpMethod debugXmlDump; */
+
+ /* reserved for the future */
+ NULL, /* void* reserved0; */
+ NULL, /* void* reserved1; */
+};
+
+/**
+ * xmlSecOpenSSLKeyDataGostR3410_2012_256GetKlass:
+ *
+ * The GOST R 34.10-2012 256 bit key data klass.
+ *
+ * Returns: pointer to GOST R 34.10-2012 256 bit key data klass.
+ */
+xmlSecKeyDataId
+xmlSecOpenSSLKeyDataGostR3410_2012_256GetKlass(void) {
+ return(&xmlSecOpenSSLKeyDataGostR3410_2012_256Klass);
+}
+
+
+static int
+xmlSecOpenSSLKeyDataGostR3410_2012_256Initialize(xmlSecKeyDataPtr data) {
+ xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataGostR3410_2012_256Id), -1);
+
+ return(xmlSecOpenSSLEvpKeyDataInitialize(data));
+}
+
+static int
+xmlSecOpenSSLKeyDataGostR3410_2012_256Duplicate(xmlSecKeyDataPtr dst,
+xmlSecKeyDataPtr src) {
+ xmlSecAssert2(xmlSecKeyDataCheckId(dst, xmlSecOpenSSLKeyDataGostR3410_2012_256Id), -1);
+ xmlSecAssert2(xmlSecKeyDataCheckId(src, xmlSecOpenSSLKeyDataGostR3410_2012_256Id), -1);
+
+ return(xmlSecOpenSSLEvpKeyDataDuplicate(dst, src));
+}
+
+static void
+xmlSecOpenSSLKeyDataGostR3410_2012_256Finalize(xmlSecKeyDataPtr data) {
+ xmlSecAssert(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataGostR3410_2012_256Id));
+
+ xmlSecOpenSSLEvpKeyDataFinalize(data);
+}
+
+static xmlSecKeyDataType
+xmlSecOpenSSLKeyDataGostR3410_2012_256GetType(xmlSecKeyDataPtr data) {
+ /* Now I don't know how to find whether we have both private and public key
+ or the public only*/
+ return(xmlSecKeyDataTypePublic | xmlSecKeyDataTypePrivate);
+}
+
+static xmlSecSize
+xmlSecOpenSSLKeyDataGostR3410_2012_256GetSize(xmlSecKeyDataPtr data) {
+ xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataGostR3410_2012_256Id), 0);
+
+ return 512;
+}
+
+static void
+xmlSecOpenSSLKeyDataGostR3410_2012_256DebugDump(xmlSecKeyDataPtr data, FILE* output) {
+ xmlSecAssert(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataGostR3410_2012_256Id));
+ xmlSecAssert(output != NULL);
+
+ fprintf(output, "=== gost key: size = %d\n",
+ xmlSecOpenSSLKeyDataGostR3410_2012_256GetSize(data));
+}
+
+static void
+xmlSecOpenSSLKeyDataGostR3410_2012_256DebugXmlDump(xmlSecKeyDataPtr data, FILE* output) {
+ xmlSecAssert(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataGostR3410_2012_256Id));
+ xmlSecAssert(output != NULL);
+
+ fprintf(output, "<GOST2012_256KeyValue size=\"%d\" />\n",
+ xmlSecOpenSSLKeyDataGostR3410_2012_256GetSize(data));
+}
+
+
+
+
+/**************************************************************************
+ *
+ * GOST R 34.10-2012 512 bit xml key representation processing
+ *
+ *************************************************************************/
+static int xmlSecOpenSSLKeyDataGostR3410_2012_512Initialize(xmlSecKeyDataPtr data);
+static int xmlSecOpenSSLKeyDataGostR3410_2012_512Duplicate(xmlSecKeyDataPtr dst,
+ xmlSecKeyDataPtr src);
+static void xmlSecOpenSSLKeyDataGostR3410_2012_512Finalize(xmlSecKeyDataPtr data);
+
+static xmlSecKeyDataType xmlSecOpenSSLKeyDataGostR3410_2012_512GetType(xmlSecKeyDataPtr data);
+static xmlSecSize xmlSecOpenSSLKeyDataGostR3410_2012_512GetSize(xmlSecKeyDataPtr data);
+static void xmlSecOpenSSLKeyDataGostR3410_2012_512DebugDump(xmlSecKeyDataPtr data,
+ FILE* output);
+static void xmlSecOpenSSLKeyDataGostR3410_2012_512DebugXmlDump(xmlSecKeyDataPtr data,
+ FILE* output);
+
+static xmlSecKeyDataKlass xmlSecOpenSSLKeyDataGostR3410_2012_512Klass = {
+ sizeof(xmlSecKeyDataKlass),
+ xmlSecOpenSSLEvpKeyDataSize,
+
+ /* data */
+ xmlSecNameGostR3410_2012_512KeyValue,
+ xmlSecKeyDataUsageKeyValueNode | xmlSecKeyDataUsageRetrievalMethodNodeXml,
+ /* xmlSecKeyDataUsage usage; */
+ xmlSecHrefGostR3410_2012_512KeyValue, /* const xmlChar* href; */
+ xmlSecNodeGostR3410_2012_512KeyValue, /* const xmlChar* dataNodeName; */
+ xmlSecDSigNs, /* const xmlChar* dataNodeNs; */
+
+ /* constructors/destructor */
+ xmlSecOpenSSLKeyDataGostR3410_2012_512Initialize, /* xmlSecKeyDataInitializeMethod initialize; */
+ xmlSecOpenSSLKeyDataGostR3410_2012_512Duplicate, /* xmlSecKeyDataDuplicateMethod duplicate; */
+ xmlSecOpenSSLKeyDataGostR3410_2012_512Finalize, /* xmlSecKeyDataFinalizeMethod finalize; */
+ NULL, /* xmlSecOpenSSLKeyDataGostR3410_2012_512Generate,*/ /* xmlSecKeyDataGenerateMethod generate; */
+
+ /* get info */
+ xmlSecOpenSSLKeyDataGostR3410_2012_512GetType, /* xmlSecKeyDataGetTypeMethod getType; */
+ xmlSecOpenSSLKeyDataGostR3410_2012_512GetSize, /* xmlSecKeyDataGetSizeMethod getSize; */
+ NULL, /* xmlSecKeyDataGetIdentifier getIdentifier; */
+
+ /* read/write */
+ NULL, /* xmlSecKeyDataXmlReadMethod xmlRead; */
+ NULL, /* xmlSecKeyDataXmlWriteMethod xmlWrite; */
+ NULL, /* xmlSecKeyDataBinReadMethod binRead; */
+ NULL, /* xmlSecKeyDataBinWriteMethod binWrite; */
+
+ /* debug */
+ xmlSecOpenSSLKeyDataGostR3410_2012_512DebugDump, /* xmlSecKeyDataDebugDumpMethod debugDump; */
+ xmlSecOpenSSLKeyDataGostR3410_2012_512DebugXmlDump,/* xmlSecKeyDataDebugDumpMethod debugXmlDump; */
+
+ /* reserved for the future */
+ NULL, /* void* reserved0; */
+ NULL, /* void* reserved1; */
+};
+
+/**
+ * xmlSecOpenSSLKeyDataGostR3410_2012_512GetKlass:
+ *
+ * The GOST R 34.10-2012 512 bit key data klass.
+ *
+ * Returns: pointer to GOST R 34.10-2012 512 bit key data klass.
+ */
+xmlSecKeyDataId
+xmlSecOpenSSLKeyDataGostR3410_2012_512GetKlass(void) {
+ return(&xmlSecOpenSSLKeyDataGostR3410_2012_512Klass);
+}
+
+
+static int
+xmlSecOpenSSLKeyDataGostR3410_2012_512Initialize(xmlSecKeyDataPtr data) {
+ xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataGostR3410_2012_512Id), -1);
+
+ return(xmlSecOpenSSLEvpKeyDataInitialize(data));
+}
+
+static int
+xmlSecOpenSSLKeyDataGostR3410_2012_512Duplicate(xmlSecKeyDataPtr dst,
+xmlSecKeyDataPtr src) {
+ xmlSecAssert2(xmlSecKeyDataCheckId(dst, xmlSecOpenSSLKeyDataGostR3410_2012_512Id), -1);
+ xmlSecAssert2(xmlSecKeyDataCheckId(src, xmlSecOpenSSLKeyDataGostR3410_2012_512Id), -1);
+
+ return(xmlSecOpenSSLEvpKeyDataDuplicate(dst, src));
+}
+
+static void
+xmlSecOpenSSLKeyDataGostR3410_2012_512Finalize(xmlSecKeyDataPtr data) {
+ xmlSecAssert(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataGostR3410_2012_512Id));
+
+ xmlSecOpenSSLEvpKeyDataFinalize(data);
+}
+
+static xmlSecKeyDataType
+xmlSecOpenSSLKeyDataGostR3410_2012_512GetType(xmlSecKeyDataPtr data) {
+ /* Now I don't know how to find whether we have both private and public key
+ or the public only*/
+ return(xmlSecKeyDataTypePublic | xmlSecKeyDataTypePrivate);
+}
+
+static xmlSecSize
+xmlSecOpenSSLKeyDataGostR3410_2012_512GetSize(xmlSecKeyDataPtr data) {
+ xmlSecAssert2(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataGostR3410_2012_512Id), 0);
+
+ return 1024;
+}
+
+static void
+xmlSecOpenSSLKeyDataGostR3410_2012_512DebugDump(xmlSecKeyDataPtr data, FILE* output) {
+ xmlSecAssert(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataGostR3410_2012_512Id));
+ xmlSecAssert(output != NULL);
+
+ fprintf(output, "=== gost key: size = %d\n",
+ xmlSecOpenSSLKeyDataGostR3410_2012_512GetSize(data));
+}
+
+static void
+xmlSecOpenSSLKeyDataGostR3410_2012_512DebugXmlDump(xmlSecKeyDataPtr data, FILE* output) {
+ xmlSecAssert(xmlSecKeyDataCheckId(data, xmlSecOpenSSLKeyDataGostR3410_2012_512Id));
+ xmlSecAssert(output != NULL);
+
+ fprintf(output, "<GOST2012_512KeyValue size=\"%d\" />\n",
+ xmlSecOpenSSLKeyDataGostR3410_2012_512GetSize(data));
+}
-#endif /* XMLSEC_NO_GOST*/
+#endif /* XMLSEC_NO_GOST2012 */
diff --git a/src/openssl/signatures.c b/src/openssl/evp_signatures.c
similarity index 50%
copy from src/openssl/signatures.c
copy to src/openssl/evp_signatures.c
index 7e3dbc7..4dc493c 100644
--- a/src/openssl/signatures.c
+++ b/src/openssl/evp_signatures.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -22,47 +22,15 @@
#include <xmlsec/openssl/crypto.h>
#include <xmlsec/openssl/evp.h>
-#ifndef XMLSEC_NO_DSA
-
-#define XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE (20 * 2)
-
-#ifndef XMLSEC_NO_SHA1
-static const EVP_MD *xmlSecOpenSSLDsaSha1Evp (void);
-#endif /* XMLSEC_NO_SHA1 */
-
-#ifndef XMLSEC_NO_SHA256
-#ifdef XMLSEC_OPENSSL_100
-static const EVP_MD *xmlSecOpenSSLDsaSha256Evp (void);
-#endif /* XMLSEC_OPENSSL_100 */
-#endif /* XMLSEC_NO_SHA256 */
-
-#endif /* XMLSEC_NO_DSA */
-
-#ifndef XMLSEC_NO_ECDSA
-
-#define XMLSEC_OPENSSL_ECDSA_SIGNATURE_SIZE ((512 / 8) * 2)
-
-#ifndef XMLSEC_NO_SHA1
-static const EVP_MD *xmlSecOpenSSLEcdsaSha1Evp (void);
-#endif /* XMLSEC_NO_SHA1 */
-
-#ifndef XMLSEC_NO_SHA224
-static const EVP_MD *xmlSecOpenSSLEcdsaSha224Evp (void);
-#endif /* XMLSEC_NO_SHA224 */
-
-#ifndef XMLSEC_NO_SHA256
-static const EVP_MD *xmlSecOpenSSLEcdsaSha256Evp (void);
-#endif /* XMLSEC_NO_SHA256 */
-
-#ifndef XMLSEC_NO_SHA384
-static const EVP_MD *xmlSecOpenSSLEcdsaSha384Evp (void);
-#endif /* XMLSEC_NO_SHA384 */
-
-#ifndef XMLSEC_NO_SHA512
-static const EVP_MD *xmlSecOpenSSLEcdsaSha512Evp (void);
-#endif /* XMLSEC_NO_SHA512 */
-
-#endif /* XMLSEC_NO_ECDSA */
+/* new API from OpenSSL 1.1.0 (https://www.openssl.org/docs/manmaster/crypto/EVP_DigestInit.html):
+ *
+ * EVP_MD_CTX_create() and EVP_MD_CTX_destroy() were renamed to EVP_MD_CTX_new() and EVP_MD_CTX_free() in OpenSSL 1.1.
+ */
+#if !defined(XMLSEC_OPENSSL_110)
+#define EVP_MD_CTX_new() EVP_MD_CTX_create()
+#define EVP_MD_CTX_free(x) EVP_MD_CTX_destroy((x))
+#define EVP_MD_CTX_md_data(x) ((x)->md_data)
+#endif /* !defined(XMLSEC_OPENSSL_110) */
/**************************************************************************
@@ -74,7 +42,7 @@ typedef struct _xmlSecOpenSSLEvpSignatureCtx xmlSecOpenSSLEvpSignatureCtx,
*xmlSecOpenSSLEvpSignatureCtxPtr;
struct _xmlSecOpenSSLEvpSignatureCtx {
const EVP_MD* digest;
- EVP_MD_CTX digestCtx;
+ EVP_MD_CTX* digestCtx;
xmlSecKeyDataId keyId;
EVP_PKEY* pKey;
};
@@ -108,55 +76,6 @@ static int xmlSecOpenSSLEvpSignatureExecute (xmlSecTransform
static int
xmlSecOpenSSLEvpSignatureCheckId(xmlSecTransformPtr transform) {
-#ifndef XMLSEC_NO_DSA
-
-#ifndef XMLSEC_NO_SHA1
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformDsaSha1Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_SHA1 */
-
-#ifndef XMLSEC_NO_SHA256
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformDsaSha256Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_SHA256 */
-
-#endif /* XMLSEC_NO_DSA */
-
-#ifndef XMLSEC_NO_ECDSA
-
-#ifndef XMLSEC_NO_SHA1
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha1Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_SHA1 */
-
-#ifndef XMLSEC_NO_SHA224
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha224Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_SHA224 */
-
-#ifndef XMLSEC_NO_SHA256
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha256Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_SHA256 */
-
-#ifndef XMLSEC_NO_SHA384
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha384Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_SHA384 */
-
-#ifndef XMLSEC_NO_SHA512
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha512Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_SHA512 */
-
-#endif /* XMLSEC_NO_ECDSA */
#ifndef XMLSEC_NO_RSA
@@ -208,7 +127,16 @@ xmlSecOpenSSLEvpSignatureCheckId(xmlSecTransformPtr transform) {
if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformGost2001GostR3411_94Id)) {
return(1);
} else
-#endif /* XMLSEC_NO_GOST*/
+#endif /* XMLSEC_NO_GOST */
+
+#ifndef XMLSEC_NO_GOST2012
+ if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256Id)) {
+ return(1);
+ } else
+ if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512Id)) {
+ return(1);
+ } else
+#endif /* XMLSEC_NO_GOST2012 */
{
return(0);
@@ -229,65 +157,6 @@ xmlSecOpenSSLEvpSignatureInitialize(xmlSecTransformPtr transform) {
memset(ctx, 0, sizeof(xmlSecOpenSSLEvpSignatureCtx));
-#ifndef XMLSEC_NO_DSA
-
-#ifndef XMLSEC_NO_SHA1
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformDsaSha1Id)) {
- ctx->digest = xmlSecOpenSSLDsaSha1Evp();
- ctx->keyId = xmlSecOpenSSLKeyDataDsaId;
- } else
-#endif /* XMLSEC_NO_SHA1 */
-
-#ifndef XMLSEC_NO_SHA256
-#ifdef XMLSEC_OPENSSL_100
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformDsaSha256Id)) {
- ctx->digest = xmlSecOpenSSLDsaSha256Evp();
- ctx->keyId = xmlSecOpenSSLKeyDataDsaId;
- } else
-#endif /* XMLSEC_OPENSSL_100 */
-#endif /* XMLSEC_NO_SHA256 */
-
-#endif /* XMLSEC_NO_DSA */
-
-#ifndef XMLSEC_NO_ECDSA
-
-#ifndef XMLSEC_NO_SHA1
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha1Id)) {
- ctx->digest = xmlSecOpenSSLEcdsaSha1Evp();
- ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
- } else
-#endif /* XMLSEC_NO_SHA1 */
-
-#ifndef XMLSEC_NO_SHA224
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha224Id)) {
- ctx->digest = xmlSecOpenSSLEcdsaSha224Evp();
- ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
- } else
-#endif /* XMLSEC_NO_SHA224 */
-
-#ifndef XMLSEC_NO_SHA256
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha256Id)) {
- ctx->digest = xmlSecOpenSSLEcdsaSha256Evp();
- ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
- } else
-#endif /* XMLSEC_NO_SHA256 */
-
-#ifndef XMLSEC_NO_SHA384
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha384Id)) {
- ctx->digest = xmlSecOpenSSLEcdsaSha384Evp();
- ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
- } else
-#endif /* XMLSEC_NO_SHA384 */
-
-#ifndef XMLSEC_NO_SHA512
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha512Id)) {
- ctx->digest = xmlSecOpenSSLEcdsaSha512Evp();
- ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
- } else
-#endif /* XMLSEC_NO_SHA512 */
-
-#endif /* XMLSEC_NO_ECDSA */
-
#ifndef XMLSEC_NO_RSA
#ifndef XMLSEC_NO_MD5
@@ -343,19 +212,46 @@ xmlSecOpenSSLEvpSignatureInitialize(xmlSecTransformPtr transform) {
#ifndef XMLSEC_NO_GOST
if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformGost2001GostR3411_94Id)) {
- ctx->keyId = xmlSecOpenSSLKeyDataGost2001Id;
+ ctx->keyId = xmlSecOpenSSLKeyDataGost2001Id;
ctx->digest = EVP_get_digestbyname("md_gost94");
- if (!ctx->digest)
- {
- xmlSecError(XMLSEC_ERRORS_HERE,
+ if (!ctx->digest) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
NULL,
XMLSEC_ERRORS_R_INVALID_TRANSFORM,
XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
+ return(-1);
+ }
+ } else
+#endif /* XMLSEC_NO_GOST */
+
+#ifndef XMLSEC_NO_GOST2012
+ if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256Id)) {
+ ctx->keyId = xmlSecOpenSSLKeyDataGostR3410_2012_256Id;
+ ctx->digest = EVP_get_digestbyname("md_gost12_256");
+ if (!ctx->digest) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ NULL,
+ XMLSEC_ERRORS_R_INVALID_TRANSFORM,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ } else
+
+ if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512Id)) {
+ ctx->keyId = xmlSecOpenSSLKeyDataGostR3410_2012_512Id;
+ ctx->digest = EVP_get_digestbyname("md_gost12_512");
+ if (!ctx->digest) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ NULL,
+ XMLSEC_ERRORS_R_INVALID_TRANSFORM,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
} else
-#endif /* XMLSEC_NO_GOST*/
+#endif /* XMLSEC_NO_GOST2012 */
if(1) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -366,9 +262,18 @@ xmlSecOpenSSLEvpSignatureInitialize(xmlSecTransformPtr transform) {
return(-1);
}
-#ifndef XMLSEC_OPENSSL_096
- EVP_MD_CTX_init(&(ctx->digestCtx));
-#endif /* XMLSEC_OPENSSL_096 */
+ /* create digest CTX */
+ ctx->digestCtx = EVP_MD_CTX_new();
+ if(ctx->digestCtx == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "EVP_MD_CTX_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ /* done */
return(0);
}
@@ -386,9 +291,10 @@ xmlSecOpenSSLEvpSignatureFinalize(xmlSecTransformPtr transform) {
EVP_PKEY_free(ctx->pKey);
}
-#ifndef XMLSEC_OPENSSL_096
- EVP_MD_CTX_cleanup(&(ctx->digestCtx));
-#endif /* XMLSEC_OPENSSL_096 */
+ if(ctx->digestCtx != NULL) {
+ EVP_MD_CTX_free(ctx->digestCtx);
+ }
+
memset(ctx, 0, sizeof(xmlSecOpenSSLEvpSignatureCtx));
}
@@ -480,8 +386,9 @@ xmlSecOpenSSLEvpSignatureVerify(xmlSecTransformPtr transform,
ctx = xmlSecOpenSSLEvpSignatureGetCtx(transform);
xmlSecAssert2(ctx != NULL, -1);
+ xmlSecAssert2(ctx->digestCtx != NULL, -1);
- ret = EVP_VerifyFinal(&(ctx->digestCtx), (xmlSecByte*)data, dataSize, ctx->pKey);
+ ret = EVP_VerifyFinal(ctx->digestCtx, (xmlSecByte*)data, dataSize, ctx->pKey);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
@@ -527,14 +434,14 @@ xmlSecOpenSSLEvpSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecT
ctx = xmlSecOpenSSLEvpSignatureGetCtx(transform);
xmlSecAssert2(ctx != NULL, -1);
xmlSecAssert2(ctx->digest != NULL, -1);
+ xmlSecAssert2(ctx->digestCtx != NULL, -1);
xmlSecAssert2(ctx->pKey != NULL, -1);
if(transform->status == xmlSecTransformStatusNone) {
xmlSecAssert2(outSize == 0, -1);
if(transform->operation == xmlSecTransformOperationSign) {
-#ifndef XMLSEC_OPENSSL_096
- ret = EVP_SignInit(&(ctx->digestCtx), ctx->digest);
+ ret = EVP_SignInit(ctx->digestCtx, ctx->digest);
if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
@@ -543,12 +450,8 @@ xmlSecOpenSSLEvpSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecT
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
-#else /* XMLSEC_OPENSSL_096 */
- EVP_SignInit(&(ctx->digestCtx), ctx->digest);
-#endif /* XMLSEC_OPENSSL_096 */
} else {
-#ifndef XMLSEC_OPENSSL_096
- ret = EVP_VerifyInit(&(ctx->digestCtx), ctx->digest);
+ ret = EVP_VerifyInit(ctx->digestCtx, ctx->digest);
if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
@@ -557,9 +460,6 @@ xmlSecOpenSSLEvpSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecT
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
-#else /* XMLSEC_OPENSSL_096 */
- EVP_VerifyInit(&(ctx->digestCtx), ctx->digest);
-#endif /* XMLSEC_OPENSSL_096 */
}
transform->status = xmlSecTransformStatusWorking;
}
@@ -568,8 +468,7 @@ xmlSecOpenSSLEvpSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecT
xmlSecAssert2(outSize == 0, -1);
if(transform->operation == xmlSecTransformOperationSign) {
-#ifndef XMLSEC_OPENSSL_096
- ret = EVP_SignUpdate(&(ctx->digestCtx), xmlSecBufferGetData(in), inSize);
+ ret = EVP_SignUpdate(ctx->digestCtx, xmlSecBufferGetData(in), inSize);
if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
@@ -578,12 +477,8 @@ xmlSecOpenSSLEvpSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecT
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
-#else /* XMLSEC_OPENSSL_096 */
- EVP_SignUpdate(&(ctx->digestCtx), xmlSecBufferGetData(in), inSize);
-#endif /* XMLSEC_OPENSSL_096 */
} else {
-#ifndef XMLSEC_OPENSSL_096
- ret = EVP_VerifyUpdate(&(ctx->digestCtx), xmlSecBufferGetData(in), inSize);
+ ret = EVP_VerifyUpdate(ctx->digestCtx, xmlSecBufferGetData(in), inSize);
if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
@@ -592,9 +487,6 @@ xmlSecOpenSSLEvpSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecT
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
-#else /* XMLSEC_OPENSSL_096 */
- EVP_VerifyUpdate(&(ctx->digestCtx), xmlSecBufferGetData(in), inSize);
-#endif /* XMLSEC_OPENSSL_096 */
}
ret = xmlSecBufferRemoveHead(in, inSize);
@@ -613,21 +505,8 @@ xmlSecOpenSSLEvpSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecT
if(transform->operation == xmlSecTransformOperationSign) {
unsigned int signSize;
- /* this is a hack: for rsa signatures
- * we get size from EVP_PKEY_size(),
- * for dsa signature we use a fixed constant */
+ /* for rsa signatures we get size from EVP_PKEY_size() */
signSize = EVP_PKEY_size(ctx->pKey);
-#ifndef XMLSEC_NO_DSA
- if(signSize < XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE) {
- signSize = XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE;
- }
-#endif /* XMLSEC_NO_DSA */
-#ifndef XMLSEC_NO_ECDSA
- if(signSize < XMLSEC_OPENSSL_ECDSA_SIGNATURE_SIZE) {
- signSize = XMLSEC_OPENSSL_ECDSA_SIGNATURE_SIZE;
- }
-#endif /* XMLSEC_NO_ECDSA */
-
ret = xmlSecBufferSetMaxSize(out, signSize);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -638,7 +517,7 @@ xmlSecOpenSSLEvpSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecT
return(-1);
}
- ret = EVP_SignFinal(&(ctx->digestCtx), xmlSecBufferGetData(out), &signSize, ctx->pKey);
+ ret = EVP_SignFinal(ctx->digestCtx, xmlSecBufferGetData(out), &signSize, ctx->pKey);
if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
@@ -676,125 +555,69 @@ xmlSecOpenSSLEvpSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecT
return(0);
}
-#ifndef XMLSEC_NO_DSA
+
+#ifndef XMLSEC_NO_RSA
+
+#ifndef XMLSEC_NO_MD5
/****************************************************************************
*
- * DSA EVP
- *
- * XMLDSig specifies DSA signature packing not supported by OpenSSL so
- * we created our own EVP_MD.
- *
- * http://www.w3.org/TR/xmldsig-core/#sec-SignatureAlg:
- *
- * The output of the DSA algorithm consists of a pair of integers
- * usually referred by the pair (r, s). The signature value consists of
- * the base64 encoding of the concatenation of two octet-streams that
- * respectively result from the octet-encoding of the values r and s in
- * that order. Integer to octet-stream conversion must be done according
- * to the I2OSP operation defined in the RFC 2437 [PKCS1] specification
- * with a l parameter equal to 20. For example, the SignatureValue element
- * for a DSA signature (r, s) with values specified in hexadecimal:
- *
- * r = 8BAC1AB6 6410435C B7181F95 B16AB97C 92B341C0
- * s = 41E2345F 1F56DF24 58F426D1 55B4BA2D B6DCD8C8
- *
- * from the example in Appendix 5 of the DSS standard would be
- *
- * <SignatureValue>i6watmQQQ1y3GB+VsWq5fJKzQcBB4jRfH1bfJFj0JtFVtLotttzYyA==</SignatureValue>
+ * RSA-MD5 signature transform
*
***************************************************************************/
-static int
-xmlSecOpenSSLDsaEvpSign(int type ATTRIBUTE_UNUSED,
- const unsigned char *dgst, unsigned int dlen,
- unsigned char *sig, unsigned int *siglen, void *dsa) {
- DSA_SIG *s;
- int rSize, sSize;
-
- s = DSA_do_sign(dgst, dlen, dsa);
- if(s == NULL) {
- *siglen=0;
- return(0);
- }
-
- rSize = BN_num_bytes(s->r);
- sSize = BN_num_bytes(s->s);
- if((rSize > (XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE / 2)) ||
- (sSize > (XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE / 2))) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- NULL,
- XMLSEC_ERRORS_R_INVALID_SIZE,
- "size(r)=%d or size(s)=%d > %d",
- rSize, sSize, XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE / 2);
- DSA_SIG_free(s);
- return(0);
- }
-
- memset(sig, 0, XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE);
- BN_bn2bin(s->r, sig + (XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE / 2) - rSize);
- BN_bn2bin(s->s, sig + XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE - sSize);
- *siglen = XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE;
-
- DSA_SIG_free(s);
- return(1);
-}
-
-static int
-xmlSecOpenSSLDsaEvpVerify(int type ATTRIBUTE_UNUSED,
- const unsigned char *dgst, unsigned int dgst_len,
- const unsigned char *sigbuf, unsigned int siglen,
- void *dsa) {
- DSA_SIG *s;
- int ret = -1;
-
- s = DSA_SIG_new();
- if (s == NULL) {
- return(ret);
- }
+static xmlSecTransformKlass xmlSecOpenSSLRsaMd5Klass = {
+ /* klass/object sizes */
+ sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
+ xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
- if(siglen != XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- NULL,
- XMLSEC_ERRORS_R_INVALID_SIZE,
- "invalid length %d (%d expected)",
- siglen, XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE);
- goto done;
- }
+ xmlSecNameRsaMd5, /* const xmlChar* name; */
+ xmlSecHrefRsaMd5, /* const xmlChar* href; */
+ xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
- s->r = BN_bin2bn(sigbuf, XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE / 2, NULL);
- s->s = BN_bin2bn(sigbuf + (XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE / 2),
- XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE / 2, NULL);
- if((s->r == NULL) || (s->s == NULL)) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "BN_bin2bn",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- goto done;
- }
+ xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
+ xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
+ NULL, /* xmlSecTransformNodeReadMethod readNode; */
+ NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
+ xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
+ xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
+ xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
+ xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
+ xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
+ xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
+ NULL, /* xmlSecTransformPushXmlMethod pushXml; */
+ NULL, /* xmlSecTransformPopXmlMethod popXml; */
+ xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
- ret = DSA_do_verify(dgst, dgst_len, s, dsa);
+ NULL, /* void* reserved0; */
+ NULL, /* void* reserved1; */
+};
-done:
- DSA_SIG_free(s);
- return(ret);
+/**
+ * xmlSecOpenSSLTransformRsaMd5GetKlass:
+ *
+ * The RSA-MD5 signature transform klass.
+ *
+ * Returns: RSA-MD5 signature transform klass.
+ */
+xmlSecTransformId
+xmlSecOpenSSLTransformRsaMd5GetKlass(void) {
+ return(&xmlSecOpenSSLRsaMd5Klass);
}
-#ifndef XMLSEC_NO_SHA1
+#endif /* XMLSEC_NO_MD5 */
+
+#ifndef XMLSEC_NO_RIPEMD160
/****************************************************************************
*
- * DSA-SHA1 signature transform
+ * RSA-RIPEMD160 signature transform
*
***************************************************************************/
-
-static xmlSecTransformKlass xmlSecOpenSSLDsaSha1Klass = {
+static xmlSecTransformKlass xmlSecOpenSSLRsaRipemd160Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
- xmlSecNameDsaSha1, /* const xmlChar* name; */
- xmlSecHrefDsaSha1, /* const xmlChar* href; */
+ xmlSecNameRsaRipemd160, /* const xmlChar* name; */
+ xmlSecHrefRsaRipemd160, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
@@ -816,84 +639,32 @@ static xmlSecTransformKlass xmlSecOpenSSLDsaSha1Klass = {
};
/**
- * xmlSecOpenSSLTransformDsaSha1GetKlass:
+ * xmlSecOpenSSLTransformRsaRipemd160GetKlass:
*
- * The DSA-SHA1 signature transform klass.
+ * The RSA-RIPEMD160 signature transform klass.
*
- * Returns: DSA-SHA1 signature transform klass.
+ * Returns: RSA-RIPEMD160 signature transform klass.
*/
xmlSecTransformId
-xmlSecOpenSSLTransformDsaSha1GetKlass(void) {
- return(&xmlSecOpenSSLDsaSha1Klass);
-}
-
-#ifndef XMLSEC_OPENSSL_096
-static int
-xmlSecOpenSSLDsaSha1EvpInit(EVP_MD_CTX *ctx)
-{
- return SHA1_Init(ctx->md_data);
-}
-
-static int
-xmlSecOpenSSLDsaSha1EvpUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
- return SHA1_Update(ctx->md_data,data,count);
-}
-
-static int
-xmlSecOpenSSLDsaSha1EvpFinal(EVP_MD_CTX *ctx, unsigned char *md)
-{
- return SHA1_Final(md,ctx->md_data);
-}
-#endif /* XMLSEC_OPENSSL_096 */
-
-static const EVP_MD xmlSecOpenSSLDsaSha1MdEvp = {
- NID_dsaWithSHA,
- NID_dsaWithSHA,
- SHA_DIGEST_LENGTH,
-#ifndef XMLSEC_OPENSSL_096
- 0,
- xmlSecOpenSSLDsaSha1EvpInit,
- xmlSecOpenSSLDsaSha1EvpUpdate,
- xmlSecOpenSSLDsaSha1EvpFinal,
- NULL,
- NULL,
-#else /* XMLSEC_OPENSSL_096 */
- SHA1_Init,
- SHA1_Update,
- SHA1_Final,
-#endif /* XMLSEC_OPENSSL_096 */
- xmlSecOpenSSLDsaEvpSign,
- xmlSecOpenSSLDsaEvpVerify,
- {EVP_PKEY_DSA,EVP_PKEY_DSA2,EVP_PKEY_DSA3,EVP_PKEY_DSA4,0},
- SHA_CBLOCK,
- sizeof(EVP_MD *)+sizeof(SHA_CTX)
-#ifdef XMLSEC_OPENSSL_100
- , NULL
-#endif /* XMLSEC_OPENSSL_100 */
-};
-
-static const EVP_MD *xmlSecOpenSSLDsaSha1Evp(void)
-{
- return(&xmlSecOpenSSLDsaSha1MdEvp);
+xmlSecOpenSSLTransformRsaRipemd160GetKlass(void) {
+ return(&xmlSecOpenSSLRsaRipemd160Klass);
}
-#endif /* XMLSEC_NO_SHA1 */
+#endif /* XMLSEC_NO_RIPEMD160 */
-#ifndef XMLSEC_NO_SHA256
+#ifndef XMLSEC_NO_SHA1
/****************************************************************************
*
- * DSA-SHA256 signature transform
+ * RSA-SHA1 signature transform
*
***************************************************************************/
-
-static xmlSecTransformKlass xmlSecOpenSSLDsaSha256Klass = {
+static xmlSecTransformKlass xmlSecOpenSSLRsaSha1Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
- xmlSecNameDsaSha256, /* const xmlChar* name; */
- xmlSecHrefDsaSha256, /* const xmlChar* href; */
+ xmlSecNameRsaSha1, /* const xmlChar* name; */
+ xmlSecHrefRsaSha1, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
@@ -915,762 +686,32 @@ static xmlSecTransformKlass xmlSecOpenSSLDsaSha256Klass = {
};
/**
- * xmlSecOpenSSLTransformDsaSha256GetKlass:
+ * xmlSecOpenSSLTransformRsaSha1GetKlass:
*
- * The DSA-SHA256 signature transform klass.
+ * The RSA-SHA1 signature transform klass.
*
- * Returns: DSA-SHA256 signature transform klass.
+ * Returns: RSA-SHA1 signature transform klass.
*/
xmlSecTransformId
-xmlSecOpenSSLTransformDsaSha256GetKlass(void) {
- return(&xmlSecOpenSSLDsaSha256Klass);
-}
-
-#ifdef XMLSEC_OPENSSL_100
-static int
-xmlSecOpenSSLDsaSha256EvpInit(EVP_MD_CTX *ctx)
-{
- return SHA256_Init(ctx->md_data);
-}
-
-static int
-xmlSecOpenSSLDsaSha256EvpUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
- return SHA256_Update(ctx->md_data,data,count);
-}
-
-static int
-xmlSecOpenSSLDsaSha256EvpFinal(EVP_MD_CTX *ctx, unsigned char *md)
-{
- return SHA256_Final(md,ctx->md_data);
-}
-
-static const EVP_MD xmlSecOpenSSLDsaSha256MdEvp = {
- NID_dsa_with_SHA256,
- NID_dsa_with_SHA256,
- SHA256_DIGEST_LENGTH,
- 0,
- xmlSecOpenSSLDsaSha256EvpInit,
- xmlSecOpenSSLDsaSha256EvpUpdate,
- xmlSecOpenSSLDsaSha256EvpFinal,
- NULL,
- NULL,
- xmlSecOpenSSLDsaEvpSign,
- xmlSecOpenSSLDsaEvpVerify,
- /* XXX-MAK: This worries me, not sure that the keys are right. */
- {EVP_PKEY_DSA,EVP_PKEY_DSA2,EVP_PKEY_DSA3,EVP_PKEY_DSA4,0},
- SHA256_CBLOCK,
- sizeof(EVP_MD *)+sizeof(SHA256_CTX),
- NULL
-};
-
-static const EVP_MD *xmlSecOpenSSLDsaSha256Evp(void)
-{
- return(&xmlSecOpenSSLDsaSha256MdEvp);
+xmlSecOpenSSLTransformRsaSha1GetKlass(void) {
+ return(&xmlSecOpenSSLRsaSha1Klass);
}
-#endif /* XMLSEC_OPENSSL_100 */
-
-#endif /* XMLSEC_NO_SHA256 */
-#endif /* XMLSEC_NO_DSA */
+#endif /* XMLSEC_NO_SHA1 */
-#ifndef XMLSEC_NO_ECDSA
+#ifndef XMLSEC_NO_SHA224
/****************************************************************************
*
- * ECDSA EVP
- *
- * NIST-IR-7802 (TMSAD) specifies ECDSA signature packing not supported by
- * OpenSSL so we created our own EVP_MD.
- *
- * http://csrc.nist.gov/publications/PubsNISTIRs.html#NIST-IR-7802
- *
- * The ECDSA algorithm signature is a pair of integers referred to as (r, s).
- * The <dsig:SignatureValue> consists of the base64 [RFC2045] encoding of the
- * concatenation of two octet-streams that respectively result from the
- * octet-encoding of the values r and s, in that order. Integer to
- * octet-stream conversion MUST be done according to the I2OSP operation
- * defined in Section 4.1 of RFC 3447 [PKCS1] with the xLen parameter equal
- * to the size of the base point order of the curve in bytes (32 for the
- * P-256 curve).
- *
- ***************************************************************************/
-static int
-xmlSecOpenSSLEcdsaEvpSign(int type ATTRIBUTE_UNUSED,
- const unsigned char *dgst, unsigned int dlen,
- unsigned char *sig, unsigned int *siglen, void *ecdsa) {
- int rSize, sSize, xLen;
- const EC_GROUP *group;
- BIGNUM *order = NULL;
- ECDSA_SIG *s;
- int ret = 0;
-
- s = ECDSA_do_sign(dgst, dlen, ecdsa);
- if(s == NULL) {
- *siglen = 0;
- return(ret);
- }
-
- group = EC_KEY_get0_group(ecdsa);
- if(group == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "EC_KEY_get0_group",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- goto done;
- }
-
- order = BN_new();
- if(order == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "BN_new",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- goto done;
- }
-
- if(EC_GROUP_get_order(group, order, NULL) != 1) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "EC_GROUP_get_order",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- goto done;
- }
-
- xLen = BN_num_bytes(order);
- if(xLen > (XMLSEC_OPENSSL_ECDSA_SIGNATURE_SIZE / 2)) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- NULL,
- XMLSEC_ERRORS_R_INVALID_SIZE,
- "xLen=%d > %d",
- xLen, XMLSEC_OPENSSL_ECDSA_SIGNATURE_SIZE / 2);
- goto done;
- }
-
- rSize = BN_num_bytes(s->r);
- sSize = BN_num_bytes(s->s);
- if((rSize > xLen) || (sSize > xLen)) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- NULL,
- XMLSEC_ERRORS_R_INVALID_SIZE,
- "size(r)=%d or size(s)=%d > %d",
- rSize, sSize, xLen);
- goto done;
- }
-
- memset(sig, 0, xLen * 2);
- BN_bn2bin(s->r, sig + xLen - rSize);
- BN_bn2bin(s->s, sig + (xLen * 2) - sSize);
- *siglen = xLen * 2;
-
- ret = 1;
-
-done:
- if(order != NULL) {
- BN_clear_free(order);
- }
- ECDSA_SIG_free(s);
- return(ret);
-}
-
-static int
-xmlSecOpenSSLEcdsaEvpVerify(int type ATTRIBUTE_UNUSED,
- const unsigned char *dgst, unsigned int dgst_len,
- const unsigned char *sigbuf, unsigned int siglen,
- void *ecdsa) {
- const EC_GROUP *group;
- unsigned int xLen;
- BIGNUM *order = NULL;
- ECDSA_SIG *s;
- int ret = -1;
-
- s = ECDSA_SIG_new();
- if (s == NULL) {
- return(ret);
- }
-
- group = EC_KEY_get0_group(ecdsa);
- if(group == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "EC_KEY_get0_group",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- goto done;
- }
-
- order = BN_new();
- if(order == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "BN_new",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- goto done;
- }
-
- if(EC_GROUP_get_order(group, order, NULL) != 1) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "EC_GROUP_get_order",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- goto done;
- }
-
- xLen = BN_num_bytes(order);
- if(xLen > (XMLSEC_OPENSSL_ECDSA_SIGNATURE_SIZE / 2)) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- NULL,
- XMLSEC_ERRORS_R_INVALID_SIZE,
- "xLen=%d > %d",
- xLen, XMLSEC_OPENSSL_ECDSA_SIGNATURE_SIZE / 2);
- goto done;
- }
-
- if(siglen != xLen * 2) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- NULL,
- XMLSEC_ERRORS_R_INVALID_SIZE,
- "invalid length %d (%d expected)",
- siglen, xLen * 2);
- goto done;
- }
-
- s->r = BN_bin2bn(sigbuf, xLen, NULL);
- s->s = BN_bin2bn(sigbuf + xLen, xLen, NULL);
- if((s->r == NULL) || (s->s == NULL)) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "BN_bin2bn",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- goto done;
- }
-
- ret = ECDSA_do_verify(dgst, dgst_len, s, ecdsa);
-
-done:
- if(order != NULL) {
- BN_clear_free(order);
- }
- ECDSA_SIG_free(s);
- return(ret);
-}
-
-#ifndef XMLSEC_NO_SHA1
-/****************************************************************************
- *
- * ECDSA-SHA1 signature transform
- *
- ***************************************************************************/
-
-static xmlSecTransformKlass xmlSecOpenSSLEcdsaSha1Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
-
- xmlSecNameEcdsaSha1, /* const xmlChar* name; */
- xmlSecHrefEcdsaSha1, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
-
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
-
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-
-/**
- * xmlSecOpenSSLTransformEcdsaSha1GetKlass:
- *
- * The ECDSA-SHA1 signature transform klass.
- *
- * Returns: ECDSA-SHA1 signature transform klass.
- */
-xmlSecTransformId
-xmlSecOpenSSLTransformEcdsaSha1GetKlass(void) {
- return(&xmlSecOpenSSLEcdsaSha1Klass);
-}
-
-#ifndef XMLSEC_OPENSSL_096
-static int
-xmlSecOpenSSLEcdsaSha1EvpInit(EVP_MD_CTX *ctx)
-{
- return SHA1_Init(ctx->md_data);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha1EvpUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
- return SHA1_Update(ctx->md_data,data,count);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha1EvpFinal(EVP_MD_CTX *ctx, unsigned char *md)
-{
- return SHA1_Final(md,ctx->md_data);
-}
-#endif /* XMLSEC_OPENSSL_096 */
-
-static const EVP_MD xmlSecOpenSSLEcdsaSha1MdEvp = {
- NID_ecdsa_with_SHA1,
- NID_ecdsa_with_SHA1,
- SHA_DIGEST_LENGTH,
-#ifndef XMLSEC_OPENSSL_096
- 0,
- xmlSecOpenSSLEcdsaSha1EvpInit,
- xmlSecOpenSSLEcdsaSha1EvpUpdate,
- xmlSecOpenSSLEcdsaSha1EvpFinal,
- NULL,
- NULL,
-#else /* XMLSEC_OPENSSL_096 */
- SHA1_Init,
- SHA1_Update,
- SHA1_Final,
-#endif /* XMLSEC_OPENSSL_096 */
- xmlSecOpenSSLEcdsaEvpSign,
- xmlSecOpenSSLEcdsaEvpVerify,
- /* XXX-MAK: This worries me, not sure that the keys are right. */
- {NID_X9_62_id_ecPublicKey,NID_ecdsa_with_SHA1,0,0,0},
- SHA_CBLOCK,
- sizeof(EVP_MD *)+sizeof(SHA_CTX),
- NULL
-};
-
-static const EVP_MD *xmlSecOpenSSLEcdsaSha1Evp(void)
-{
- return(&xmlSecOpenSSLEcdsaSha1MdEvp);
-}
-
-#endif /* XMLSEC_NO_SHA1 */
-
-#ifndef XMLSEC_NO_SHA224
-/****************************************************************************
- *
- * ECDSA-SHA224 signature transform
- *
- ***************************************************************************/
-
-static xmlSecTransformKlass xmlSecOpenSSLEcdsaSha224Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
-
- xmlSecNameEcdsaSha224, /* const xmlChar* name; */
- xmlSecHrefEcdsaSha224, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
-
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
-
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-
-/**
- * xmlSecOpenSSLTransformEcdsaSha224GetKlass:
- *
- * The ECDSA-SHA224 signature transform klass.
- *
- * Returns: ECDSA-SHA224 signature transform klass.
- */
-xmlSecTransformId
-xmlSecOpenSSLTransformEcdsaSha224GetKlass(void) {
- return(&xmlSecOpenSSLEcdsaSha224Klass);
-}
-
-#ifndef XMLSEC_OPENSSL_096
-static int
-xmlSecOpenSSLEcdsaSha224EvpInit(EVP_MD_CTX *ctx)
-{
- return SHA224_Init(ctx->md_data);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha224EvpUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
- return SHA224_Update(ctx->md_data,data,count);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha224EvpFinal(EVP_MD_CTX *ctx, unsigned char *md)
-{
- return SHA224_Final(md,ctx->md_data);
-}
-#endif /* XMLSEC_OPENSSL_096 */
-
-static const EVP_MD xmlSecOpenSSLEcdsaSha224MdEvp = {
- NID_ecdsa_with_SHA224,
- NID_ecdsa_with_SHA224,
- SHA224_DIGEST_LENGTH,
-#ifndef XMLSEC_OPENSSL_096
- 0,
- xmlSecOpenSSLEcdsaSha224EvpInit,
- xmlSecOpenSSLEcdsaSha224EvpUpdate,
- xmlSecOpenSSLEcdsaSha224EvpFinal,
- NULL,
- NULL,
-#else /* XMLSEC_OPENSSL_096 */
- SHA224_Init,
- SHA224_Update,
- SHA224_Final,
-#endif /* XMLSEC_OPENSSL_096 */
- xmlSecOpenSSLEcdsaEvpSign,
- xmlSecOpenSSLEcdsaEvpVerify,
- /* XXX-MAK: This worries me, not sure that the keys are right. */
- {NID_X9_62_id_ecPublicKey,NID_ecdsa_with_SHA224,0,0,0},
- SHA256_CBLOCK,
- sizeof(EVP_MD *)+sizeof(SHA256_CTX),
- NULL
-};
-
-static const EVP_MD *xmlSecOpenSSLEcdsaSha224Evp(void)
-{
- return(&xmlSecOpenSSLEcdsaSha224MdEvp);
-}
-
-#endif /* XMLSEC_NO_SHA224 */
-
-#ifndef XMLSEC_NO_SHA256
-/****************************************************************************
- *
- * ECDSA-SHA256 signature transform
- *
- ***************************************************************************/
-
-static xmlSecTransformKlass xmlSecOpenSSLEcdsaSha256Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
-
- xmlSecNameEcdsaSha256, /* const xmlChar* name; */
- xmlSecHrefEcdsaSha256, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
-
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
-
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-
-/**
- * xmlSecOpenSSLTransformEcdsaSha256GetKlass:
- *
- * The ECDSA-SHA256 signature transform klass.
- *
- * Returns: ECDSA-SHA256 signature transform klass.
- */
-xmlSecTransformId
-xmlSecOpenSSLTransformEcdsaSha256GetKlass(void) {
- return(&xmlSecOpenSSLEcdsaSha256Klass);
-}
-
-#ifndef XMLSEC_OPENSSL_096
-static int
-xmlSecOpenSSLEcdsaSha256EvpInit(EVP_MD_CTX *ctx)
-{
- return SHA256_Init(ctx->md_data);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha256EvpUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
- return SHA256_Update(ctx->md_data,data,count);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha256EvpFinal(EVP_MD_CTX *ctx, unsigned char *md)
-{
- return SHA256_Final(md,ctx->md_data);
-}
-#endif /* XMLSEC_OPENSSL_096 */
-
-static const EVP_MD xmlSecOpenSSLEcdsaSha256MdEvp = {
- NID_ecdsa_with_SHA256,
- NID_ecdsa_with_SHA256,
- SHA256_DIGEST_LENGTH,
-#ifndef XMLSEC_OPENSSL_096
- 0,
- xmlSecOpenSSLEcdsaSha256EvpInit,
- xmlSecOpenSSLEcdsaSha256EvpUpdate,
- xmlSecOpenSSLEcdsaSha256EvpFinal,
- NULL,
- NULL,
-#else /* XMLSEC_OPENSSL_096 */
- SHA256_Init,
- SHA256_Update,
- SHA256_Final,
-#endif /* XMLSEC_OPENSSL_096 */
- xmlSecOpenSSLEcdsaEvpSign,
- xmlSecOpenSSLEcdsaEvpVerify,
- /* XXX-MAK: This worries me, not sure that the keys are right. */
- {NID_X9_62_id_ecPublicKey,NID_ecdsa_with_SHA256,0,0,0},
- SHA256_CBLOCK,
- sizeof(EVP_MD *)+sizeof(SHA256_CTX),
- NULL
-};
-
-static const EVP_MD *xmlSecOpenSSLEcdsaSha256Evp(void)
-{
- return(&xmlSecOpenSSLEcdsaSha256MdEvp);
-}
-
-#endif /* XMLSEC_NO_SHA256 */
-
-#ifndef XMLSEC_NO_SHA384
-/****************************************************************************
- *
- * ECDSA-SHA384 signature transform
- *
- ***************************************************************************/
-
-static xmlSecTransformKlass xmlSecOpenSSLEcdsaSha384Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
-
- xmlSecNameEcdsaSha384, /* const xmlChar* name; */
- xmlSecHrefEcdsaSha384, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
-
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
-
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-
-/**
- * xmlSecOpenSSLTransformEcdsaSha384GetKlass:
- *
- * The ECDSA-SHA384 signature transform klass.
- *
- * Returns: ECDSA-SHA384 signature transform klass.
- */
-xmlSecTransformId
-xmlSecOpenSSLTransformEcdsaSha384GetKlass(void) {
- return(&xmlSecOpenSSLEcdsaSha384Klass);
-}
-
-#ifndef XMLSEC_OPENSSL_096
-static int
-xmlSecOpenSSLEcdsaSha384EvpInit(EVP_MD_CTX *ctx)
-{
- return SHA384_Init(ctx->md_data);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha384EvpUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
- return SHA384_Update(ctx->md_data,data,count);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha384EvpFinal(EVP_MD_CTX *ctx, unsigned char *md)
-{
- return SHA384_Final(md,ctx->md_data);
-}
-#endif /* XMLSEC_OPENSSL_096 */
-
-static const EVP_MD xmlSecOpenSSLEcdsaSha384MdEvp = {
- NID_ecdsa_with_SHA384,
- NID_ecdsa_with_SHA384,
- SHA384_DIGEST_LENGTH,
-#ifndef XMLSEC_OPENSSL_096
- 0,
- xmlSecOpenSSLEcdsaSha384EvpInit,
- xmlSecOpenSSLEcdsaSha384EvpUpdate,
- xmlSecOpenSSLEcdsaSha384EvpFinal,
- NULL,
- NULL,
-#else /* XMLSEC_OPENSSL_096 */
- SHA384_Init,
- SHA384_Update,
- SHA384_Final,
-#endif /* XMLSEC_OPENSSL_096 */
- xmlSecOpenSSLEcdsaEvpSign,
- xmlSecOpenSSLEcdsaEvpVerify,
- /* XXX-MAK: This worries me, not sure that the keys are right. */
- {NID_X9_62_id_ecPublicKey,NID_ecdsa_with_SHA384,0,0,0},
- SHA512_CBLOCK,
- sizeof(EVP_MD *)+sizeof(SHA512_CTX),
- NULL
-};
-
-static const EVP_MD *xmlSecOpenSSLEcdsaSha384Evp(void)
-{
- return(&xmlSecOpenSSLEcdsaSha384MdEvp);
-}
-
-#endif /* XMLSEC_NO_SHA384 */
-
-#ifndef XMLSEC_NO_SHA512
-/****************************************************************************
- *
- * ECDSA-SHA512 signature transform
- *
- ***************************************************************************/
-
-static xmlSecTransformKlass xmlSecOpenSSLEcdsaSha512Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
-
- xmlSecNameEcdsaSha512, /* const xmlChar* name; */
- xmlSecHrefEcdsaSha512, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
-
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
-
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-
-/**
- * xmlSecOpenSSLTransformEcdsaSha512GetKlass:
- *
- * The ECDSA-SHA512 signature transform klass.
- *
- * Returns: ECDSA-SHA512 signature transform klass.
- */
-xmlSecTransformId
-xmlSecOpenSSLTransformEcdsaSha512GetKlass(void) {
- return(&xmlSecOpenSSLEcdsaSha512Klass);
-}
-
-#ifndef XMLSEC_OPENSSL_096
-static int
-xmlSecOpenSSLEcdsaSha512EvpInit(EVP_MD_CTX *ctx)
-{
- return SHA512_Init(ctx->md_data);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha512EvpUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
- return SHA512_Update(ctx->md_data,data,count);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha512EvpFinal(EVP_MD_CTX *ctx, unsigned char *md)
-{
- return SHA512_Final(md,ctx->md_data);
-}
-#endif /* XMLSEC_OPENSSL_096 */
-
-static const EVP_MD xmlSecOpenSSLEcdsaSha512MdEvp = {
- NID_ecdsa_with_SHA512,
- NID_ecdsa_with_SHA512,
- SHA512_DIGEST_LENGTH,
-#ifndef XMLSEC_OPENSSL_096
- 0,
- xmlSecOpenSSLEcdsaSha512EvpInit,
- xmlSecOpenSSLEcdsaSha512EvpUpdate,
- xmlSecOpenSSLEcdsaSha512EvpFinal,
- NULL,
- NULL,
-#else /* XMLSEC_OPENSSL_096 */
- SHA512_Init,
- SHA512_Update,
- SHA512_Final,
-#endif /* XMLSEC_OPENSSL_096 */
- xmlSecOpenSSLEcdsaEvpSign,
- xmlSecOpenSSLEcdsaEvpVerify,
- /* XXX-MAK: This worries me, not sure that the keys are right. */
- {NID_X9_62_id_ecPublicKey,NID_ecdsa_with_SHA512,0,0,0},
- SHA512_CBLOCK,
- sizeof(EVP_MD *)+sizeof(SHA512_CTX),
- NULL
-};
-
-static const EVP_MD *xmlSecOpenSSLEcdsaSha512Evp(void)
-{
- return(&xmlSecOpenSSLEcdsaSha512MdEvp);
-}
-
-#endif /* XMLSEC_NO_SHA512 */
-
-#endif /* XMLSEC_NO_ECDSA */
-
-#ifndef XMLSEC_NO_RSA
-
-#ifndef XMLSEC_NO_MD5
-/****************************************************************************
- *
- * RSA-MD5 signature transform
+ * RSA-SHA224 signature transform
*
***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLRsaMd5Klass = {
+static xmlSecTransformKlass xmlSecOpenSSLRsaSha224Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
- xmlSecNameRsaMd5, /* const xmlChar* name; */
- xmlSecHrefRsaMd5, /* const xmlChar* href; */
+ xmlSecNameRsaSha224, /* const xmlChar* name; */
+ xmlSecHrefRsaSha224, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
@@ -1692,32 +733,32 @@ static xmlSecTransformKlass xmlSecOpenSSLRsaMd5Klass = {
};
/**
- * xmlSecOpenSSLTransformRsaMd5GetKlass:
+ * xmlSecOpenSSLTransformRsaSha224GetKlass:
*
- * The RSA-MD5 signature transform klass.
+ * The RSA-SHA224 signature transform klass.
*
- * Returns: RSA-MD5 signature transform klass.
+ * Returns: RSA-SHA224 signature transform klass.
*/
xmlSecTransformId
-xmlSecOpenSSLTransformRsaMd5GetKlass(void) {
- return(&xmlSecOpenSSLRsaMd5Klass);
+xmlSecOpenSSLTransformRsaSha224GetKlass(void) {
+ return(&xmlSecOpenSSLRsaSha224Klass);
}
-#endif /* XMLSEC_NO_MD5 */
+#endif /* XMLSEC_NO_SHA224 */
-#ifndef XMLSEC_NO_RIPEMD160
+#ifndef XMLSEC_NO_SHA256
/****************************************************************************
*
- * RSA-RIPEMD160 signature transform
+ * RSA-SHA256 signature transform
*
***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLRsaRipemd160Klass = {
+static xmlSecTransformKlass xmlSecOpenSSLRsaSha256Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
- xmlSecNameRsaRipemd160, /* const xmlChar* name; */
- xmlSecHrefRsaRipemd160, /* const xmlChar* href; */
+ xmlSecNameRsaSha256, /* const xmlChar* name; */
+ xmlSecHrefRsaSha256, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
@@ -1739,32 +780,32 @@ static xmlSecTransformKlass xmlSecOpenSSLRsaRipemd160Klass = {
};
/**
- * xmlSecOpenSSLTransformRsaRipemd160GetKlass:
+ * xmlSecOpenSSLTransformRsaSha256GetKlass:
*
- * The RSA-RIPEMD160 signature transform klass.
+ * The RSA-SHA256 signature transform klass.
*
- * Returns: RSA-RIPEMD160 signature transform klass.
+ * Returns: RSA-SHA256 signature transform klass.
*/
xmlSecTransformId
-xmlSecOpenSSLTransformRsaRipemd160GetKlass(void) {
- return(&xmlSecOpenSSLRsaRipemd160Klass);
+xmlSecOpenSSLTransformRsaSha256GetKlass(void) {
+ return(&xmlSecOpenSSLRsaSha256Klass);
}
-#endif /* XMLSEC_NO_RIPEMD160 */
+#endif /* XMLSEC_NO_SHA256 */
-#ifndef XMLSEC_NO_SHA1
+#ifndef XMLSEC_NO_SHA384
/****************************************************************************
*
- * RSA-SHA1 signature transform
+ * RSA-SHA384 signature transform
*
***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLRsaSha1Klass = {
+static xmlSecTransformKlass xmlSecOpenSSLRsaSha384Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
- xmlSecNameRsaSha1, /* const xmlChar* name; */
- xmlSecHrefRsaSha1, /* const xmlChar* href; */
+ xmlSecNameRsaSha384, /* const xmlChar* name; */
+ xmlSecHrefRsaSha384, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
@@ -1786,32 +827,32 @@ static xmlSecTransformKlass xmlSecOpenSSLRsaSha1Klass = {
};
/**
- * xmlSecOpenSSLTransformRsaSha1GetKlass:
+ * xmlSecOpenSSLTransformRsaSha384GetKlass:
*
- * The RSA-SHA1 signature transform klass.
+ * The RSA-SHA384 signature transform klass.
*
- * Returns: RSA-SHA1 signature transform klass.
+ * Returns: RSA-SHA384 signature transform klass.
*/
xmlSecTransformId
-xmlSecOpenSSLTransformRsaSha1GetKlass(void) {
- return(&xmlSecOpenSSLRsaSha1Klass);
+xmlSecOpenSSLTransformRsaSha384GetKlass(void) {
+ return(&xmlSecOpenSSLRsaSha384Klass);
}
-#endif /* XMLSEC_NO_SHA1 */
+#endif /* XMLSEC_NO_SHA384 */
-#ifndef XMLSEC_NO_SHA224
+#ifndef XMLSEC_NO_SHA512
/****************************************************************************
*
- * RSA-SHA224 signature transform
+ * RSA-SHA512 signature transform
*
***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLRsaSha224Klass = {
+static xmlSecTransformKlass xmlSecOpenSSLRsaSha512Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
- xmlSecNameRsaSha224, /* const xmlChar* name; */
- xmlSecHrefRsaSha224, /* const xmlChar* href; */
+ xmlSecNameRsaSha512, /* const xmlChar* name; */
+ xmlSecHrefRsaSha512, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
@@ -1833,177 +874,129 @@ static xmlSecTransformKlass xmlSecOpenSSLRsaSha224Klass = {
};
/**
- * xmlSecOpenSSLTransformRsaSha224GetKlass:
+ * xmlSecOpenSSLTransformRsaSha512GetKlass:
*
- * The RSA-SHA224 signature transform klass.
+ * The RSA-SHA512 signature transform klass.
*
- * Returns: RSA-SHA224 signature transform klass.
+ * Returns: RSA-SHA512 signature transform klass.
*/
xmlSecTransformId
-xmlSecOpenSSLTransformRsaSha224GetKlass(void) {
- return(&xmlSecOpenSSLRsaSha224Klass);
+xmlSecOpenSSLTransformRsaSha512GetKlass(void) {
+ return(&xmlSecOpenSSLRsaSha512Klass);
}
-#endif /* XMLSEC_NO_SHA224 */
-
-#ifndef XMLSEC_NO_SHA256
-/****************************************************************************
- *
- * RSA-SHA256 signature transform
- *
- ***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLRsaSha256Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
-
- xmlSecNameRsaSha256, /* const xmlChar* name; */
- xmlSecHrefRsaSha256, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
-
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
-
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-
-/**
- * xmlSecOpenSSLTransformRsaSha256GetKlass:
- *
- * The RSA-SHA256 signature transform klass.
- *
- * Returns: RSA-SHA256 signature transform klass.
- */
-xmlSecTransformId
-xmlSecOpenSSLTransformRsaSha256GetKlass(void) {
- return(&xmlSecOpenSSLRsaSha256Klass);
-}
+#endif /* XMLSEC_NO_SHA512 */
-#endif /* XMLSEC_NO_SHA256 */
+#endif /* XMLSEC_NO_RSA */
-#ifndef XMLSEC_NO_SHA384
+#ifndef XMLSEC_NO_GOST
/****************************************************************************
*
- * RSA-SHA384 signature transform
+ * GOST2001-GOSTR3411_94 signature transform
*
***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLRsaSha384Klass = {
+
+static xmlSecTransformKlass xmlSecOpenSSLGost2001GostR3411_94Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
+ xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
- xmlSecNameRsaSha384, /* const xmlChar* name; */
- xmlSecHrefRsaSha384, /* const xmlChar* href; */
+ xmlSecNameGost2001GostR3411_94, /* const xmlChar* name; */
+ xmlSecHrefGost2001GostR3411_94, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
+ xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
+ xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
NULL, /* xmlSecTransformNodeReadMethod readNode; */
NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
+ xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
+ xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
+ xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
NULL, /* xmlSecTransformPushXmlMethod pushXml; */
NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
+ xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
NULL, /* void* reserved0; */
NULL, /* void* reserved1; */
};
/**
- * xmlSecOpenSSLTransformRsaSha384GetKlass:
+ * xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass:
*
- * The RSA-SHA384 signature transform klass.
+ * The GOST2001-GOSTR3411_94 signature transform klass.
*
- * Returns: RSA-SHA384 signature transform klass.
+ * Returns: GOST2001-GOSTR3411_94 signature transform klass.
*/
xmlSecTransformId
-xmlSecOpenSSLTransformRsaSha384GetKlass(void) {
- return(&xmlSecOpenSSLRsaSha384Klass);
+xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass(void) {
+ return(&xmlSecOpenSSLGost2001GostR3411_94Klass);
}
+#endif /* XMLSEC_NO_GOST */
-#endif /* XMLSEC_NO_SHA384 */
+#ifndef XMLSEC_NO_GOST2012
-#ifndef XMLSEC_NO_SHA512
/****************************************************************************
*
- * RSA-SHA512 signature transform
+ * GOST R 34.10-2012 - GOST R 34.11-2012 256 bit signature transform
*
***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLRsaSha512Klass = {
+
+static xmlSecTransformKlass xmlSecOpenSSLGostR3410_2012GostR3411_2012_256Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
+ xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
- xmlSecNameRsaSha512, /* const xmlChar* name; */
- xmlSecHrefRsaSha512, /* const xmlChar* href; */
+ xmlSecNameGostR3410_2012GostR3411_2012_256, /* const xmlChar* name; */
+ xmlSecHrefGostR3410_2012GostR3411_2012_256, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
+ xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
+ xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
NULL, /* xmlSecTransformNodeReadMethod readNode; */
NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
+ xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
+ xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
+ xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
NULL, /* xmlSecTransformPushXmlMethod pushXml; */
NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
+ xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
NULL, /* void* reserved0; */
NULL, /* void* reserved1; */
};
/**
- * xmlSecOpenSSLTransformRsaSha512GetKlass:
+ * xmlSecOpenSSLTransformGost3410_2012GostR3411_2012_256GetKlass:
*
- * The RSA-SHA512 signature transform klass.
+ * The GOST R 34.10-2012 - GOST R 34.11-2012 256 bit signature transform klass.
*
- * Returns: RSA-SHA512 signature transform klass.
+ * Returns: GOST R 34.10-2012 - GOST R 34.11-2012 256 bit signature transform klass.
*/
xmlSecTransformId
-xmlSecOpenSSLTransformRsaSha512GetKlass(void) {
- return(&xmlSecOpenSSLRsaSha512Klass);
+xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_256GetKlass(void) {
+ return(&xmlSecOpenSSLGostR3410_2012GostR3411_2012_256Klass);
}
-#endif /* XMLSEC_NO_SHA512 */
-
-#endif /* XMLSEC_NO_RSA */
-
-#ifndef XMLSEC_NO_GOST
/****************************************************************************
*
- * GOST2001-GOSTR3411_94 signature transform
+ * GOST R 34.10-2012 - GOST R 34.11-2012 512 bit signature transform
*
***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLGost2001GostR3411_94Klass = {
+static xmlSecTransformKlass xmlSecOpenSSLGostR3410_2012GostR3411_2012_512Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
- xmlSecNameGost2001GostR3411_94, /* const xmlChar* name; */
- xmlSecHrefGost2001GostR3411_94, /* const xmlChar* href; */
+ xmlSecNameGostR3410_2012GostR3411_2012_512, /* const xmlChar* name; */
+ xmlSecHrefGostR3410_2012GostR3411_2012_512, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
@@ -2025,17 +1018,17 @@ static xmlSecTransformKlass xmlSecOpenSSLGost2001GostR3411_94Klass = {
};
/**
- * xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass:
+ * xmlSecOpenSSLTransformGost3410_2012GostR3411_2012_512GetKlass:
*
- * The GOST2001-GOSTR3411_94 signature transform klass.
+ * The GOST R 34.10-2012 - GOST R 34.11-2012 512 bit signature transform klass.
*
- * Returns: GOST2001-GOSTR3411_94 signature transform klass.
+ * Returns: GOST R 34.10-2012 - GOST R 34.11-2012 512 bit signature transform klass.
*/
xmlSecTransformId
-xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass(void) {
- return(&xmlSecOpenSSLGost2001GostR3411_94Klass);
+xmlSecOpenSSLTransformGostR3410_2012GostR3411_2012_512GetKlass(void) {
+ return(&xmlSecOpenSSLGostR3410_2012GostR3411_2012_512Klass);
}
-#endif /* XMLSEC_NO_GOST*/
+#endif /* XMLSEC_NO_GOST2012 */
diff --git a/src/openssl/globals.h b/src/openssl/globals.h
index 770b6db..065c3e8 100644
--- a/src/openssl/globals.h
+++ b/src/openssl/globals.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GLOBALS_H__
#define __XMLSEC_GLOBALS_H__
diff --git a/src/openssl/hmac.c b/src/openssl/hmac.c
index bad1ac0..edfc3af 100644
--- a/src/openssl/hmac.c
+++ b/src/openssl/hmac.c
@@ -13,7 +13,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef XMLSEC_NO_HMAC
#include "globals.h"
@@ -33,6 +33,16 @@
#include <xmlsec/openssl/crypto.h>
+/* new API from OpenSSL 1.1.0 (https://www.openssl.org/docs/manmaster/crypto/hmac.html):
+ *
+ * HMAC_CTX_new() and HMAC_CTX_free() are new in OpenSSL version 1.1.
+ */
+#if !defined(XMLSEC_OPENSSL_110)
+#define HMAC_CTX_new() ((HMAC_CTX*)calloc(1, sizeof(HMAC_CTX)))
+#define HMAC_CTX_free(x) { HMAC_CTX_cleanup((x)); free((x)); }
+#endif /* !defined(XMLSEC_OPENSSL_110) */
+
+
/* sizes in bits */
#define XMLSEC_OPENSSL_MIN_HMAC_SIZE 80
#define XMLSEC_OPENSSL_MAX_HMAC_SIZE (EVP_MAX_MD_SIZE * 8)
@@ -75,7 +85,7 @@ void xmlSecOpenSSLHmacSetMinOutputLength(int min_length)
typedef struct _xmlSecOpenSSLHmacCtx xmlSecOpenSSLHmacCtx, *xmlSecOpenSSLHmacCtxPtr;
struct _xmlSecOpenSSLHmacCtx {
const EVP_MD* hmacDgst;
- HMAC_CTX hmacCtx;
+ HMAC_CTX* hmacCtx;
int ctxInitialized;
xmlSecByte dgst[XMLSEC_OPENSSL_MAX_HMAC_SIZE];
xmlSecSize dgstSize; /* dgst size in bits */
@@ -232,9 +242,18 @@ xmlSecOpenSSLHmacInitialize(xmlSecTransformPtr transform) {
return(-1);
}
-#ifndef XMLSEC_OPENSSL_096
- HMAC_CTX_init(&(ctx->hmacCtx));
-#endif /* XMLSEC_OPENSSL_096 */
+ /* create hmac CTX */
+ ctx->hmacCtx = HMAC_CTX_new();
+ if(ctx->hmacCtx == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "HMAC_CTX_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ /* done */
return(0);
}
@@ -248,9 +267,10 @@ xmlSecOpenSSLHmacFinalize(xmlSecTransformPtr transform) {
ctx = xmlSecOpenSSLHmacGetCtx(transform);
xmlSecAssert(ctx != NULL);
-#ifndef XMLSEC_OPENSSL_096
- HMAC_CTX_cleanup(&(ctx->hmacCtx));
-#endif /* XMLSEC_OPENSSL_096 */
+ if(ctx->hmacCtx != NULL) {
+ HMAC_CTX_free(ctx->hmacCtx);
+ }
+
memset(ctx, 0, sizeof(xmlSecOpenSSLHmacCtx));
}
@@ -327,6 +347,7 @@ xmlSecOpenSSLHmacSetKey(xmlSecTransformPtr transform, xmlSecKeyPtr key) {
xmlSecOpenSSLHmacCtxPtr ctx;
xmlSecKeyDataPtr value;
xmlSecBufferPtr buffer;
+ int ret;
xmlSecAssert2(xmlSecOpenSSLHmacCheckId(transform), -1);
xmlSecAssert2((transform->operation == xmlSecTransformOperationSign) || (transform->operation == xmlSecTransformOperationVerify), -1);
@@ -335,6 +356,7 @@ xmlSecOpenSSLHmacSetKey(xmlSecTransformPtr transform, xmlSecKeyPtr key) {
ctx = xmlSecOpenSSLHmacGetCtx(transform);
xmlSecAssert2(ctx != NULL, -1);
+ xmlSecAssert2(ctx->hmacCtx != NULL, -1);
xmlSecAssert2(ctx->hmacDgst != NULL, -1);
xmlSecAssert2(ctx->ctxInitialized == 0, -1);
@@ -354,10 +376,32 @@ xmlSecOpenSSLHmacSetKey(xmlSecTransformPtr transform, xmlSecKeyPtr key) {
}
xmlSecAssert2(xmlSecBufferGetData(buffer) != NULL, -1);
- HMAC_Init(&(ctx->hmacCtx),
+
+#if (defined(XMLSEC_OPENSSL_098))
+ /* no return value in 0.9.8 */
+ HMAC_Init_ex(ctx->hmacCtx,
+ xmlSecBufferGetData(buffer),
+ xmlSecBufferGetSize(buffer),
+ ctx->hmacDgst,
+ NULL);
+ ret = 1;
+#else /* (defined(XMLSEC_OPENSSL_098)) */
+ ret = HMAC_Init_ex(ctx->hmacCtx,
xmlSecBufferGetData(buffer),
xmlSecBufferGetSize(buffer),
- ctx->hmacDgst);
+ ctx->hmacDgst,
+ NULL);
+#endif /* (defined(XMLSEC_OPENSSL_098)) */
+
+ if(ret != 1) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "HMAC_Init_ex",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ NULL);
+ return(-1);
+ }
+
ctx->ctxInitialized = 1;
return(0);
}
@@ -448,6 +492,7 @@ xmlSecOpenSSLHmacExecute(xmlSecTransformPtr transform, int last, xmlSecTransform
ctx = xmlSecOpenSSLHmacGetCtx(transform);
xmlSecAssert2(ctx != NULL, -1);
xmlSecAssert2(ctx->ctxInitialized != 0, -1);
+ xmlSecAssert2(ctx->hmacCtx != NULL, -1);
if(transform->status == xmlSecTransformStatusNone) {
/* we should be already initialized when we set key */
@@ -459,7 +504,7 @@ xmlSecOpenSSLHmacExecute(xmlSecTransformPtr transform, int last, xmlSecTransform
inSize = xmlSecBufferGetSize(in);
if(inSize > 0) {
- HMAC_Update(&(ctx->hmacCtx), xmlSecBufferGetData(in), inSize);
+ HMAC_Update(ctx->hmacCtx, xmlSecBufferGetData(in), inSize);
ret = xmlSecBufferRemoveHead(in, inSize);
if(ret < 0) {
@@ -475,7 +520,7 @@ xmlSecOpenSSLHmacExecute(xmlSecTransformPtr transform, int last, xmlSecTransform
if(last) {
unsigned int dgstSize;
- HMAC_Final(&(ctx->hmacCtx), ctx->dgst, &dgstSize);
+ HMAC_Final(ctx->hmacCtx, ctx->dgst, &dgstSize);
xmlSecAssert2(dgstSize > 0, -1);
/* check/set the result digest size */
diff --git a/src/openssl/kt_rsa.c b/src/openssl/kt_rsa.c
index 1cf1aba..45cc788 100644
--- a/src/openssl/kt_rsa.c
+++ b/src/openssl/kt_rsa.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -34,6 +34,7 @@
#include <xmlsec/openssl/crypto.h>
#include <xmlsec/openssl/evp.h>
#include <xmlsec/openssl/bn.h>
+#include "openssl11_wrapper.h"
/**************************************************************************
*
@@ -166,6 +167,7 @@ static int
xmlSecOpenSSLRsaPkcs1SetKey(xmlSecTransformPtr transform, xmlSecKeyPtr key) {
xmlSecOpenSSLRsaPkcs1CtxPtr ctx;
EVP_PKEY* pKey;
+ RSA *rsa;
xmlSecAssert2(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaPkcs1Id), -1);
xmlSecAssert2((transform->operation == xmlSecTransformOperationEncrypt) || (transform->operation == xmlSecTransformOperationDecrypt), -1);
@@ -186,8 +188,9 @@ xmlSecOpenSSLRsaPkcs1SetKey(xmlSecTransformPtr transform, xmlSecKeyPtr key) {
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
- xmlSecAssert2(pKey->type == EVP_PKEY_RSA, -1);
- xmlSecAssert2(pKey->pkey.rsa != NULL, -1);
+ xmlSecAssert2(EVP_PKEY_base_id(pKey) == EVP_PKEY_RSA, -1);
+ rsa = EVP_PKEY_get0_RSA(pKey);
+ xmlSecAssert2(rsa != NULL, -1);
ctx->pKey = xmlSecOpenSSLEvpKeyDup(pKey);
if(ctx->pKey == NULL) {
@@ -253,6 +256,7 @@ xmlSecOpenSSLRsaPkcs1Process(xmlSecTransformPtr transform, xmlSecTransformCtxPtr
xmlSecBufferPtr in, out;
xmlSecSize inSize, outSize;
xmlSecSize keySize;
+ RSA *rsa;
int ret;
xmlSecAssert2(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaPkcs1Id), -1);
@@ -263,10 +267,11 @@ xmlSecOpenSSLRsaPkcs1Process(xmlSecTransformPtr transform, xmlSecTransformCtxPtr
ctx = xmlSecOpenSSLRsaPkcs1GetCtx(transform);
xmlSecAssert2(ctx != NULL, -1);
xmlSecAssert2(ctx->pKey != NULL, -1);
- xmlSecAssert2(ctx->pKey->type == EVP_PKEY_RSA, -1);
- xmlSecAssert2(ctx->pKey->pkey.rsa != NULL, -1);
+ xmlSecAssert2(EVP_PKEY_base_id(ctx->pKey) == EVP_PKEY_RSA, -1);
+ rsa = EVP_PKEY_get0_RSA(ctx->pKey);
+ xmlSecAssert2(rsa != NULL, -1);
- keySize = RSA_size(ctx->pKey->pkey.rsa);
+ keySize = RSA_size(rsa);
xmlSecAssert2(keySize > 0, -1);
in = &(transform->inBuf);
@@ -308,7 +313,7 @@ xmlSecOpenSSLRsaPkcs1Process(xmlSecTransformPtr transform, xmlSecTransformCtxPtr
if(transform->operation == xmlSecTransformOperationEncrypt) {
ret = RSA_public_encrypt(inSize, xmlSecBufferGetData(in),
xmlSecBufferGetData(out),
- ctx->pKey->pkey.rsa, RSA_PKCS1_PADDING);
+ rsa, RSA_PKCS1_PADDING);
if(ret <= 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
@@ -321,7 +326,7 @@ xmlSecOpenSSLRsaPkcs1Process(xmlSecTransformPtr transform, xmlSecTransformCtxPtr
} else {
ret = RSA_private_decrypt(inSize, xmlSecBufferGetData(in),
xmlSecBufferGetData(out),
- ctx->pKey->pkey.rsa, RSA_PKCS1_PADDING);
+ rsa, RSA_PKCS1_PADDING);
if(ret <= 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
@@ -574,6 +579,7 @@ static int
xmlSecOpenSSLRsaOaepSetKey(xmlSecTransformPtr transform, xmlSecKeyPtr key) {
xmlSecOpenSSLRsaOaepCtxPtr ctx;
EVP_PKEY* pKey;
+ RSA *rsa;
xmlSecAssert2(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaOaepId), -1);
xmlSecAssert2((transform->operation == xmlSecTransformOperationEncrypt) || (transform->operation == xmlSecTransformOperationDecrypt), -1);
@@ -594,8 +600,9 @@ xmlSecOpenSSLRsaOaepSetKey(xmlSecTransformPtr transform, xmlSecKeyPtr key) {
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
- xmlSecAssert2(pKey->type == EVP_PKEY_RSA, -1);
- xmlSecAssert2(pKey->pkey.rsa != NULL, -1);
+ xmlSecAssert2(EVP_PKEY_base_id(pKey) == EVP_PKEY_RSA, -1);
+ rsa = EVP_PKEY_get0_RSA(pKey);
+ xmlSecAssert2(rsa != NULL, -1);
ctx->pKey = xmlSecOpenSSLEvpKeyDup(pKey);
if(ctx->pKey == NULL) {
@@ -662,6 +669,7 @@ xmlSecOpenSSLRsaOaepProcess(xmlSecTransformPtr transform, xmlSecTransformCtxPtr
xmlSecBufferPtr in, out;
xmlSecSize inSize, outSize;
xmlSecSize keySize;
+ RSA *rsa;
int ret;
xmlSecAssert2(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaOaepId), -1);
@@ -672,10 +680,11 @@ xmlSecOpenSSLRsaOaepProcess(xmlSecTransformPtr transform, xmlSecTransformCtxPtr
ctx = xmlSecOpenSSLRsaOaepGetCtx(transform);
xmlSecAssert2(ctx != NULL, -1);
xmlSecAssert2(ctx->pKey != NULL, -1);
- xmlSecAssert2(ctx->pKey->type == EVP_PKEY_RSA, -1);
- xmlSecAssert2(ctx->pKey->pkey.rsa != NULL, -1);
+ xmlSecAssert2(EVP_PKEY_base_id(ctx->pKey) == EVP_PKEY_RSA, -1);
+ rsa = EVP_PKEY_get0_RSA(ctx->pKey);
+ xmlSecAssert2(rsa != NULL, -1);
- keySize = RSA_size(ctx->pKey->pkey.rsa);
+ keySize = RSA_size(rsa);
xmlSecAssert2(keySize > 0, -1);
in = &(transform->inBuf);
@@ -719,7 +728,7 @@ xmlSecOpenSSLRsaOaepProcess(xmlSecTransformPtr transform, xmlSecTransformCtxPtr
/* encode w/o OAEPParams --> simple */
ret = RSA_public_encrypt(inSize, xmlSecBufferGetData(in),
xmlSecBufferGetData(out),
- ctx->pKey->pkey.rsa, RSA_PKCS1_OAEP_PADDING);
+ rsa, RSA_PKCS1_OAEP_PADDING);
if(ret <= 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
@@ -761,7 +770,7 @@ xmlSecOpenSSLRsaOaepProcess(xmlSecTransformPtr transform, xmlSecTransformCtxPtr
/* encode with OAEPParams */
ret = RSA_public_encrypt(inSize, xmlSecBufferGetData(in),
xmlSecBufferGetData(out),
- ctx->pKey->pkey.rsa, RSA_NO_PADDING);
+ rsa, RSA_NO_PADDING);
if(ret <= 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
@@ -774,7 +783,7 @@ xmlSecOpenSSLRsaOaepProcess(xmlSecTransformPtr transform, xmlSecTransformCtxPtr
} else if((transform->operation == xmlSecTransformOperationDecrypt) && (paramsSize == 0)) {
ret = RSA_private_decrypt(inSize, xmlSecBufferGetData(in),
xmlSecBufferGetData(out),
- ctx->pKey->pkey.rsa, RSA_PKCS1_OAEP_PADDING);
+ rsa, RSA_PKCS1_OAEP_PADDING);
if(ret <= 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
@@ -785,17 +794,27 @@ xmlSecOpenSSLRsaOaepProcess(xmlSecTransformPtr transform, xmlSecTransformCtxPtr
}
outSize = ret;
} else if((transform->operation == xmlSecTransformOperationDecrypt) && (paramsSize != 0)) {
- BIGNUM bn;
+ BIGNUM * bn;
+ bn = BN_new();
+ if(bn == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "BN_new()",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
ret = RSA_private_decrypt(inSize, xmlSecBufferGetData(in),
xmlSecBufferGetData(out),
- ctx->pKey->pkey.rsa, RSA_NO_PADDING);
+ rsa, RSA_NO_PADDING);
if(ret <= 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
"RSA_private_decrypt(RSA_NO_PADDING)",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
+ BN_free(bn);
return(-1);
}
outSize = ret;
@@ -806,28 +825,27 @@ xmlSecOpenSSLRsaOaepProcess(xmlSecTransformPtr transform, xmlSecTransformCtxPtr
* beggining so I have to do decode it back to BIGNUM and dump
* buffer again
*/
- BN_init(&bn);
- if(BN_bin2bn(xmlSecBufferGetData(out), outSize, &bn) == NULL) {
+ if(BN_bin2bn(xmlSecBufferGetData(out), outSize, bn) == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
"BN_bin2bn",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
"size=%d", outSize);
- BN_clear_free(&bn);
+ BN_free(bn);
return(-1);
}
- ret = BN_bn2bin(&bn, xmlSecBufferGetData(out));
+ ret = BN_bn2bin(bn, xmlSecBufferGetData(out));
if(ret <= 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
"BN_bn2bin",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
- BN_clear_free(&bn);
+ BN_free(bn);
return(-1);
}
- BN_clear_free(&bn);
+ BN_free(bn);
outSize = ret;
ret = RSA_padding_check_PKCS1_OAEP(xmlSecBufferGetData(out), outSize,
@@ -845,7 +863,12 @@ xmlSecOpenSSLRsaOaepProcess(xmlSecTransformPtr transform, xmlSecTransformCtxPtr
}
outSize = ret;
} else {
- xmlSecAssert2("we could not be here" == NULL, -1);
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ "Unexpected trasnform operation: %d; paramsSize: %d",
+ (int)transform->operation, (int)paramsSize);
return(-1);
}
diff --git a/src/openssl/kw_aes.c b/src/openssl/kw_aes.c
index 573fb98..8e71148 100644
--- a/src/openssl/kw_aes.c
+++ b/src/openssl/kw_aes.c
@@ -7,10 +7,9 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef XMLSEC_NO_AES
-#ifndef XMLSEC_OPENSSL_096
#include "globals.h"
#include <stdlib.h>
@@ -508,6 +507,4 @@ xmlSecOpenSSLKWAesBlockDecrypt(const xmlSecByte * in, xmlSecSize inSize,
return(AES_BLOCK_SIZE);
}
-
-#endif /* XMLSEC_OPENSSL_096 */
#endif /* XMLSEC_NO_AES */
diff --git a/src/openssl/kw_des.c b/src/openssl/kw_des.c
index 9d55e10..c964257 100644
--- a/src/openssl/kw_des.c
+++ b/src/openssl/kw_des.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2010 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef XMLSEC_NO_DES
#include "globals.h"
@@ -505,7 +505,7 @@ xmlSecOpenSSLKWDes3Encrypt(const xmlSecByte *key, xmlSecSize keySize,
const xmlSecByte *in, xmlSecSize inSize,
xmlSecByte *out, xmlSecSize outSize,
int enc) {
- EVP_CIPHER_CTX cipherCtx;
+ EVP_CIPHER_CTX * cipherCtx;
int updateLen;
int finalLen;
int ret;
@@ -519,42 +519,55 @@ xmlSecOpenSSLKWDes3Encrypt(const xmlSecByte *key, xmlSecSize keySize,
xmlSecAssert2(out != NULL, -1);
xmlSecAssert2(outSize >= inSize, -1);
- EVP_CIPHER_CTX_init(&cipherCtx);
- ret = EVP_CipherInit(&cipherCtx, EVP_des_ede3_cbc(), key, iv, enc);
+ cipherCtx = EVP_CIPHER_CTX_new();
+ if(cipherCtx == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "EVP_CIPHER_CTX_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ ret = EVP_CipherInit(cipherCtx, EVP_des_ede3_cbc(), key, iv, enc);
if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
"EVP_CipherInit",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
+ EVP_CIPHER_CTX_free(cipherCtx);
return(-1);
}
-#ifndef XMLSEC_OPENSSL_096
- EVP_CIPHER_CTX_set_padding(&cipherCtx, 0);
-#endif /* XMLSEC_OPENSSL_096 */
+ EVP_CIPHER_CTX_set_padding(cipherCtx, 0);
- ret = EVP_CipherUpdate(&cipherCtx, out, &updateLen, in, inSize);
+ ret = EVP_CipherUpdate(cipherCtx, out, &updateLen, in, inSize);
if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
"EVP_CipherUpdate",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
+ EVP_CIPHER_CTX_free(cipherCtx);
return(-1);
}
- ret = EVP_CipherFinal(&cipherCtx, out + updateLen, &finalLen);
+ ret = EVP_CipherFinal(cipherCtx, out + updateLen, &finalLen);
if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
"EVP_CipherFinal",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
+ EVP_CIPHER_CTX_free(cipherCtx);
return(-1);
}
- EVP_CIPHER_CTX_cleanup(&cipherCtx);
+ /* cleanup */
+ EVP_CIPHER_CTX_free(cipherCtx);
+
+ /* done */
return(updateLen + finalLen);
}
diff --git a/src/openssl/openssl11_wrapper.h b/src/openssl/openssl11_wrapper.h
new file mode 100644
index 0000000..7f900ff
--- /dev/null
+++ b/src/openssl/openssl11_wrapper.h
@@ -0,0 +1,213 @@
+#ifndef __XMLSEC_OPENSSL_OPENSSL11_WRAPPER_H__
+#define __XMLSEC_OPENSSL_OPENSSL11_WRAPPER_H__
+/**
+ * XML Security Library (http://www.aleksey.com/xmlsec).
+ *
+ * This file provides a compatibility layer for pre-OpenSSL 1.1.0 versions.
+ * The functions here provide accessors for structs which were made opaque in
+ * 1.1.0 so they an be accessed in earlier versions of the library using the
+ * same syntax. This file won't be required once OpenSSL 1.1.0 is the minimum
+ * suported version.
+ */
+#if (OPENSSL_VERSION_NUMBER < 0x10100000)
+
+#define EVP_PKEY_up_ref(pKey) CRYPTO_add(&((pKey)->references), 1, CRYPTO_LOCK_EVP_PKEY)
+
+#ifndef XMLSEC_NO_X509
+#include <openssl/x509_vfy.h>
+
+#define ASN1_STRING_get0_data(data) ASN1_STRING_data((data))
+#define X509_CRL_get0_nextUpdate(crl) X509_CRL_get_nextUpdate((crl))
+#define X509_REVOKED_get0_serialNumber(r) (((r) != NULL) ? ((r)->serialNumber) : (const ASN1_INTEGER *)NULL)
+#define X509_OBJECT_get0_X509(x) (((x) != NULL) ? ((x)->data.x509) : (X509 *)NULL)
+
+static inline X509_OBJECT *X509_OBJECT_new() {
+ return(calloc(1, sizeof(X509_OBJECT)));
+}
+
+static inline void X509_OBJECT_free(X509_OBJECT *a) {
+ if(a == NULL) {
+ return;
+ }
+ X509_OBJECT_free_contents(a);
+ free(a);
+}
+
+#endif /* XMLSEC_NO_X509 */
+
+#ifndef XMLSEC_NO_RSA
+
+#define EVP_PKEY_get0_RSA(pKey) (((pKey) != NULL) ? ((pKey)->pkey.rsa) : (RSA*)NULL)
+
+static inline void RSA_get0_key(const RSA *r, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d) {
+ xmlSecAssert(r != NULL);
+
+ if(n != NULL) {
+ (*n) = r->n;
+ }
+ if(e != NULL) {
+ (*e) = r->e;
+ }
+ if(d != NULL) {
+ (*d) = r->d;
+ }
+}
+
+static inline int RSA_test_flags(const RSA *r, int flags) {
+ xmlSecAssert2(r != NULL, 0);
+ return(r->flags & flags);
+}
+
+static inline int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d) {
+ xmlSecAssert2(r != NULL, 0);
+
+ if(((r->n == NULL) && (n == NULL)) || ((r->e == NULL) && (e == NULL))) {
+ return(0);
+ }
+ if(n != NULL) {
+ BN_free(r->n);
+ r->n = n;
+ }
+ if(e != NULL) {
+ BN_free(r->e);
+ r->e = e;
+ }
+ if(d != NULL) {
+ BN_free(r->d);
+ r->d = d;
+ }
+ return(1);
+}
+#endif /* XMLSEC_NO_RSA */
+
+#ifndef XMLSEC_NO_ECDSA
+
+#define EVP_PKEY_get0_EC_KEY(pKey) (((pKey) != NULL) ? ((pKey)->pkey.ec) : (EC_KEY*)NULL)
+
+static inline void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps) {
+ xmlSecAssert(sig != NULL);
+
+ if(pr != NULL) {
+ (*pr) = sig->r;
+ }
+ if(ps != NULL) {
+ (*ps) = sig->s;
+ }
+}
+
+static inline int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s) {
+ xmlSecAssert2(sig != NULL, 0);
+
+ if((r == NULL) || (s == NULL)) {
+ return(0);
+ }
+ BN_clear_free(sig->r);
+ BN_clear_free(sig->s);
+ sig->r = r;
+ sig->s = s;
+ return(1);
+}
+#endif /* XMLSEC_NO_ECDSA */
+
+#ifndef XMLSEC_NO_DSA
+
+#define EVP_PKEY_get0_DSA(pKey) (((pKey) != NULL) ? ((pKey)->pkey.dsa) : (DSA*)NULL)
+
+static inline void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps) {
+ xmlSecAssert(sig != NULL);
+
+ if(pr != NULL) {
+ (*pr) = sig->r;
+ }
+ if(ps != NULL) {
+ (*ps) = sig->s;
+ }
+}
+
+static inline int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s) {
+ xmlSecAssert2(sig != NULL, 0);
+
+ if(r == NULL || s == NULL) {
+ return(0);
+ }
+ BN_clear_free(sig->r);
+ BN_clear_free(sig->s);
+
+ sig->r = r;
+ sig->s = s;
+ return(1);
+}
+
+static inline void DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g) {
+ xmlSecAssert(d != NULL);
+
+ if(p != NULL) {
+ (*p) = d->p;
+ }
+ if(q != NULL) {
+ (*q) = d->q;
+ }
+ if(g != NULL) {
+ (*g) = d->g;
+ }
+}
+
+static inline void DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key) {
+ xmlSecAssert(d != NULL);
+
+ if(pub_key != NULL) {
+ (*pub_key) = d->pub_key;
+ }
+ if(priv_key != NULL) {
+ (*priv_key) = d->priv_key;
+ }
+}
+
+static inline ENGINE *DSA_get0_engine(DSA *d) {
+ xmlSecAssert2(d != NULL, NULL);
+ return(d->engine);
+}
+
+static inline int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g) {
+ xmlSecAssert2(d != NULL, 0);
+
+ if(((d->p == NULL) && (p == NULL)) || ((d->q == NULL) && (q == NULL)) || ((d->g == NULL) && (g == NULL))) {
+ return(0);
+ }
+
+ if(p != NULL) {
+ BN_free(d->p);
+ d->p = p;
+ }
+ if(q != NULL) {
+ BN_free(d->q);
+ d->q = q;
+ }
+ if(g != NULL) {
+ BN_free(d->g);
+ d->g = g;
+ }
+ return(1);
+}
+
+static inline int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key) {
+ xmlSecAssert2(d != NULL, 0);
+
+ if((d->pub_key == NULL) && (pub_key == NULL)) {
+ return(0);
+ }
+
+ if(pub_key != NULL) {
+ BN_free(d->pub_key);
+ d->pub_key = pub_key;
+ }
+ if(priv_key != NULL) {
+ BN_free(d->priv_key);
+ d->priv_key = priv_key;
+ }
+ return(1);
+}
+#endif /* XMLSEC_NO_DSA */
+
+#endif /* (OPENSSL_VERSION_NUMBER < 0x10100000) */
+#endif /* __XMLSEC_OPENSSL_OPENSSL11_WRAPPER_H__ */
diff --git a/src/openssl/signatures.c b/src/openssl/signatures.c
index 7e3dbc7..5625f2f 100644
--- a/src/openssl/signatures.c
+++ b/src/openssl/signatures.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -21,93 +21,108 @@
#include <xmlsec/openssl/crypto.h>
#include <xmlsec/openssl/evp.h>
+#include "openssl11_wrapper.h"
-#ifndef XMLSEC_NO_DSA
+/* new API from OpenSSL 1.1.0 (https://www.openssl.org/docs/manmaster/crypto/EVP_DigestInit.html):
+ *
+ * EVP_MD_CTX_create() and EVP_MD_CTX_destroy() were renamed to EVP_MD_CTX_new() and EVP_MD_CTX_free() in OpenSSL 1.1.
+ */
+#if !defined(XMLSEC_OPENSSL_110)
+#define EVP_MD_CTX_new() EVP_MD_CTX_create()
+#define EVP_MD_CTX_free(x) EVP_MD_CTX_destroy((x))
+#define EVP_MD_CTX_md_data(x) ((x)->md_data)
-#define XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE (20 * 2)
+#endif /* !defined(XMLSEC_OPENSSL_110) */
-#ifndef XMLSEC_NO_SHA1
-static const EVP_MD *xmlSecOpenSSLDsaSha1Evp (void);
-#endif /* XMLSEC_NO_SHA1 */
+/**************************************************************************
+ *
+ * Internal OpenSSL signatures ctx: forward declarations
+ *
+ *****************************************************************************/
+typedef struct _xmlSecOpenSSLSignatureCtx xmlSecOpenSSLSignatureCtx,
+ *xmlSecOpenSSLSignatureCtxPtr;
-#ifndef XMLSEC_NO_SHA256
-#ifdef XMLSEC_OPENSSL_100
-static const EVP_MD *xmlSecOpenSSLDsaSha256Evp (void);
-#endif /* XMLSEC_OPENSSL_100 */
-#endif /* XMLSEC_NO_SHA256 */
+#ifndef XMLSEC_NO_DSA
+static int xmlSecOpenSSLSignatureDsaSign (xmlSecOpenSSLSignatureCtxPtr ctx,
+ xmlSecBufferPtr out);
+static int xmlSecOpenSSLSignatureDsaVerify (xmlSecOpenSSLSignatureCtxPtr ctx,
+ const xmlSecByte* signData,
+ xmlSecSize signSize);
#endif /* XMLSEC_NO_DSA */
#ifndef XMLSEC_NO_ECDSA
-#define XMLSEC_OPENSSL_ECDSA_SIGNATURE_SIZE ((512 / 8) * 2)
+static int xmlSecOpenSSLSignatureEcdsaSign (xmlSecOpenSSLSignatureCtxPtr ctx,
+ xmlSecBufferPtr out);
+static int xmlSecOpenSSLSignatureEcdsaVerify (xmlSecOpenSSLSignatureCtxPtr ctx,
+ const xmlSecByte* signData,
+ xmlSecSize signSize);
-#ifndef XMLSEC_NO_SHA1
-static const EVP_MD *xmlSecOpenSSLEcdsaSha1Evp (void);
-#endif /* XMLSEC_NO_SHA1 */
-
-#ifndef XMLSEC_NO_SHA224
-static const EVP_MD *xmlSecOpenSSLEcdsaSha224Evp (void);
-#endif /* XMLSEC_NO_SHA224 */
-#ifndef XMLSEC_NO_SHA256
-static const EVP_MD *xmlSecOpenSSLEcdsaSha256Evp (void);
-#endif /* XMLSEC_NO_SHA256 */
+#endif /* XMLSEC_NO_ECDSA */
-#ifndef XMLSEC_NO_SHA384
-static const EVP_MD *xmlSecOpenSSLEcdsaSha384Evp (void);
-#endif /* XMLSEC_NO_SHA384 */
-#ifndef XMLSEC_NO_SHA512
-static const EVP_MD *xmlSecOpenSSLEcdsaSha512Evp (void);
-#endif /* XMLSEC_NO_SHA512 */
-#endif /* XMLSEC_NO_ECDSA */
+/**************************************************************************
+ *
+ * Sign/verify callbacks
+ *
+ *****************************************************************************/
+typedef int (*xmlSecOpenSSLSignatureSignCallback) (xmlSecOpenSSLSignatureCtxPtr ctx,
+ xmlSecBufferPtr out);
+typedef int (*xmlSecOpenSSLSignatureVerifyCallback) (xmlSecOpenSSLSignatureCtxPtr ctx,
+ const xmlSecByte* signData,
+ xmlSecSize signSize);
/**************************************************************************
*
- * Internal OpenSSL evp signatures ctx
+ * Internal OpenSSL signatures ctx
*
*****************************************************************************/
-typedef struct _xmlSecOpenSSLEvpSignatureCtx xmlSecOpenSSLEvpSignatureCtx,
- *xmlSecOpenSSLEvpSignatureCtxPtr;
-struct _xmlSecOpenSSLEvpSignatureCtx {
- const EVP_MD* digest;
- EVP_MD_CTX digestCtx;
- xmlSecKeyDataId keyId;
- EVP_PKEY* pKey;
+struct _xmlSecOpenSSLSignatureCtx {
+ const EVP_MD* digest;
+ EVP_MD_CTX* digestCtx;
+ xmlSecKeyDataId keyId;
+ xmlSecOpenSSLSignatureSignCallback signCallback;
+ xmlSecOpenSSLSignatureVerifyCallback verifyCallback;
+ EVP_PKEY* pKey;
+ unsigned char dgst[EVP_MAX_MD_SIZE];
+ unsigned int dgstSize;
};
+
+
/******************************************************************************
*
- * EVP Signature transforms
+ * Signature transforms
*
- * xmlSecOpenSSLEvpSignatureCtx is located after xmlSecTransform
+ * xmlSecOpenSSLSignatureCtx is located after xmlSecTransform
*
*****************************************************************************/
-#define xmlSecOpenSSLEvpSignatureSize \
- (sizeof(xmlSecTransform) + sizeof(xmlSecOpenSSLEvpSignatureCtx))
-#define xmlSecOpenSSLEvpSignatureGetCtx(transform) \
- ((xmlSecOpenSSLEvpSignatureCtxPtr)(((xmlSecByte*)(transform)) + sizeof(xmlSecTransform)))
-
-static int xmlSecOpenSSLEvpSignatureCheckId (xmlSecTransformPtr transform);
-static int xmlSecOpenSSLEvpSignatureInitialize (xmlSecTransformPtr transform);
-static void xmlSecOpenSSLEvpSignatureFinalize (xmlSecTransformPtr transform);
-static int xmlSecOpenSSLEvpSignatureSetKeyReq (xmlSecTransformPtr transform,
+#define xmlSecOpenSSLSignatureSize \
+ (sizeof(xmlSecTransform) + sizeof(xmlSecOpenSSLSignatureCtx))
+#define xmlSecOpenSSLSignatureGetCtx(transform) \
+ ((xmlSecOpenSSLSignatureCtxPtr)(((xmlSecByte*)(transform)) + sizeof(xmlSecTransform)))
+
+static int xmlSecOpenSSLSignatureCheckId (xmlSecTransformPtr transform);
+static int xmlSecOpenSSLSignatureInitialize (xmlSecTransformPtr transform);
+static void xmlSecOpenSSLSignatureFinalize (xmlSecTransformPtr transform);
+static int xmlSecOpenSSLSignatureSetKeyReq (xmlSecTransformPtr transform,
xmlSecKeyReqPtr keyReq);
-static int xmlSecOpenSSLEvpSignatureSetKey (xmlSecTransformPtr transform,
+static int xmlSecOpenSSLSignatureSetKey (xmlSecTransformPtr transform,
xmlSecKeyPtr key);
-static int xmlSecOpenSSLEvpSignatureVerify (xmlSecTransformPtr transform,
+static int xmlSecOpenSSLSignatureVerify (xmlSecTransformPtr transform,
const xmlSecByte* data,
xmlSecSize dataSize,
xmlSecTransformCtxPtr transformCtx);
-static int xmlSecOpenSSLEvpSignatureExecute (xmlSecTransformPtr transform,
+static int xmlSecOpenSSLSignatureExecute (xmlSecTransformPtr transform,
int last,
xmlSecTransformCtxPtr transformCtx);
static int
-xmlSecOpenSSLEvpSignatureCheckId(xmlSecTransformPtr transform) {
+xmlSecOpenSSLSignatureCheckId(xmlSecTransformPtr transform) {
#ifndef XMLSEC_NO_DSA
#ifndef XMLSEC_NO_SHA1
@@ -158,58 +173,6 @@ xmlSecOpenSSLEvpSignatureCheckId(xmlSecTransformPtr transform) {
#endif /* XMLSEC_NO_ECDSA */
-#ifndef XMLSEC_NO_RSA
-
-#ifndef XMLSEC_NO_MD5
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaMd5Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_MD5 */
-
-#ifndef XMLSEC_NO_RIPEMD160
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaRipemd160Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_RIPEMD160 */
-
-#ifndef XMLSEC_NO_SHA1
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaSha1Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_SHA1 */
-
-#ifndef XMLSEC_NO_SHA224
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaSha224Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_SHA224 */
-
-#ifndef XMLSEC_NO_SHA256
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaSha256Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_SHA256 */
-
-#ifndef XMLSEC_NO_SHA384
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaSha384Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_SHA384 */
-
-#ifndef XMLSEC_NO_SHA512
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaSha512Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_SHA512 */
-
-#endif /* XMLSEC_NO_RSA */
-
-#ifndef XMLSEC_NO_GOST
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformGost2001GostR3411_94Id)) {
- return(1);
- } else
-#endif /* XMLSEC_NO_GOST*/
-
{
return(0);
}
@@ -218,33 +181,36 @@ xmlSecOpenSSLEvpSignatureCheckId(xmlSecTransformPtr transform) {
}
static int
-xmlSecOpenSSLEvpSignatureInitialize(xmlSecTransformPtr transform) {
- xmlSecOpenSSLEvpSignatureCtxPtr ctx;
+xmlSecOpenSSLSignatureInitialize(xmlSecTransformPtr transform) {
+ xmlSecOpenSSLSignatureCtxPtr ctx;
+ int ret;
- xmlSecAssert2(xmlSecOpenSSLEvpSignatureCheckId(transform), -1);
- xmlSecAssert2(xmlSecTransformCheckSize(transform, xmlSecOpenSSLEvpSignatureSize), -1);
+ xmlSecAssert2(xmlSecOpenSSLSignatureCheckId(transform), -1);
+ xmlSecAssert2(xmlSecTransformCheckSize(transform, xmlSecOpenSSLSignatureSize), -1);
- ctx = xmlSecOpenSSLEvpSignatureGetCtx(transform);
+ ctx = xmlSecOpenSSLSignatureGetCtx(transform);
xmlSecAssert2(ctx != NULL, -1);
- memset(ctx, 0, sizeof(xmlSecOpenSSLEvpSignatureCtx));
+ memset(ctx, 0, sizeof(xmlSecOpenSSLSignatureCtx));
#ifndef XMLSEC_NO_DSA
#ifndef XMLSEC_NO_SHA1
if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformDsaSha1Id)) {
- ctx->digest = xmlSecOpenSSLDsaSha1Evp();
- ctx->keyId = xmlSecOpenSSLKeyDataDsaId;
+ ctx->digest = EVP_sha1();
+ ctx->keyId = xmlSecOpenSSLKeyDataDsaId;
+ ctx->signCallback = xmlSecOpenSSLSignatureDsaSign;
+ ctx->verifyCallback = xmlSecOpenSSLSignatureDsaVerify;
} else
#endif /* XMLSEC_NO_SHA1 */
#ifndef XMLSEC_NO_SHA256
-#ifdef XMLSEC_OPENSSL_100
if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformDsaSha256Id)) {
- ctx->digest = xmlSecOpenSSLDsaSha256Evp();
- ctx->keyId = xmlSecOpenSSLKeyDataDsaId;
+ ctx->digest = EVP_sha256();
+ ctx->keyId = xmlSecOpenSSLKeyDataDsaId;
+ ctx->signCallback = xmlSecOpenSSLSignatureDsaSign;
+ ctx->verifyCallback = xmlSecOpenSSLSignatureDsaVerify;
} else
-#endif /* XMLSEC_OPENSSL_100 */
#endif /* XMLSEC_NO_SHA256 */
#endif /* XMLSEC_NO_DSA */
@@ -253,157 +219,118 @@ xmlSecOpenSSLEvpSignatureInitialize(xmlSecTransformPtr transform) {
#ifndef XMLSEC_NO_SHA1
if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha1Id)) {
- ctx->digest = xmlSecOpenSSLEcdsaSha1Evp();
- ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
+ ctx->digest = EVP_sha1();
+ ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
+ ctx->signCallback = xmlSecOpenSSLSignatureEcdsaSign;
+ ctx->verifyCallback = xmlSecOpenSSLSignatureEcdsaVerify;
} else
#endif /* XMLSEC_NO_SHA1 */
#ifndef XMLSEC_NO_SHA224
if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha224Id)) {
- ctx->digest = xmlSecOpenSSLEcdsaSha224Evp();
- ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
+ ctx->digest = EVP_sha224();
+ ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
+ ctx->signCallback = xmlSecOpenSSLSignatureEcdsaSign;
+ ctx->verifyCallback = xmlSecOpenSSLSignatureEcdsaVerify;
} else
#endif /* XMLSEC_NO_SHA224 */
#ifndef XMLSEC_NO_SHA256
if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha256Id)) {
- ctx->digest = xmlSecOpenSSLEcdsaSha256Evp();
- ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
+ ctx->digest = EVP_sha256();
+ ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
+ ctx->signCallback = xmlSecOpenSSLSignatureEcdsaSign;
+ ctx->verifyCallback = xmlSecOpenSSLSignatureEcdsaVerify;
} else
#endif /* XMLSEC_NO_SHA256 */
#ifndef XMLSEC_NO_SHA384
if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha384Id)) {
- ctx->digest = xmlSecOpenSSLEcdsaSha384Evp();
- ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
+ ctx->digest = EVP_sha384();
+ ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
+ ctx->signCallback = xmlSecOpenSSLSignatureEcdsaSign;
+ ctx->verifyCallback = xmlSecOpenSSLSignatureEcdsaVerify;
} else
#endif /* XMLSEC_NO_SHA384 */
#ifndef XMLSEC_NO_SHA512
if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformEcdsaSha512Id)) {
- ctx->digest = xmlSecOpenSSLEcdsaSha512Evp();
- ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
+ ctx->digest = EVP_sha512();
+ ctx->keyId = xmlSecOpenSSLKeyDataEcdsaId;
+ ctx->signCallback = xmlSecOpenSSLSignatureEcdsaSign;
+ ctx->verifyCallback = xmlSecOpenSSLSignatureEcdsaVerify;
} else
#endif /* XMLSEC_NO_SHA512 */
#endif /* XMLSEC_NO_ECDSA */
-#ifndef XMLSEC_NO_RSA
-
-#ifndef XMLSEC_NO_MD5
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaMd5Id)) {
- ctx->digest = EVP_md5();
- ctx->keyId = xmlSecOpenSSLKeyDataRsaId;
- } else
-#endif /* XMLSEC_NO_MD5 */
-
-#ifndef XMLSEC_NO_RIPEMD160
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaRipemd160Id)) {
- ctx->digest = EVP_ripemd160();
- ctx->keyId = xmlSecOpenSSLKeyDataRsaId;
- } else
-#endif /* XMLSEC_NO_RIPEMD160 */
-
-#ifndef XMLSEC_NO_SHA1
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaSha1Id)) {
- ctx->digest = EVP_sha1();
- ctx->keyId = xmlSecOpenSSLKeyDataRsaId;
- } else
-#endif /* XMLSEC_NO_SHA1 */
-
-#ifndef XMLSEC_NO_SHA224
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaSha224Id)) {
- ctx->digest = EVP_sha224();
- ctx->keyId = xmlSecOpenSSLKeyDataRsaId;
- } else
-#endif /* XMLSEC_NO_SHA224 */
-
-#ifndef XMLSEC_NO_SHA256
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaSha256Id)) {
- ctx->digest = EVP_sha256();
- ctx->keyId = xmlSecOpenSSLKeyDataRsaId;
- } else
-#endif /* XMLSEC_NO_SHA256 */
-
-#ifndef XMLSEC_NO_SHA384
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaSha384Id)) {
- ctx->digest = EVP_sha384();
- ctx->keyId = xmlSecOpenSSLKeyDataRsaId;
- } else
-#endif /* XMLSEC_NO_SHA384 */
-
-#ifndef XMLSEC_NO_SHA512
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformRsaSha512Id)) {
- ctx->digest = EVP_sha512();
- ctx->keyId = xmlSecOpenSSLKeyDataRsaId;
- } else
-#endif /* XMLSEC_NO_SHA512 */
-
-#endif /* XMLSEC_NO_RSA */
-
-#ifndef XMLSEC_NO_GOST
- if(xmlSecTransformCheckId(transform, xmlSecOpenSSLTransformGost2001GostR3411_94Id)) {
- ctx->keyId = xmlSecOpenSSLKeyDataGost2001Id;
- ctx->digest = EVP_get_digestbyname("md_gost94");
- if (!ctx->digest)
- {
+ if(1) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
NULL,
XMLSEC_ERRORS_R_INVALID_TRANSFORM,
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
- }
- } else
-#endif /* XMLSEC_NO_GOST*/
+ }
- if(1) {
+ /* create/init digest CTX */
+ ctx->digestCtx = EVP_MD_CTX_new();
+ if(ctx->digestCtx == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
- NULL,
- XMLSEC_ERRORS_R_INVALID_TRANSFORM,
+ "EVP_MD_CTX_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ ret = EVP_DigestInit(ctx->digestCtx, ctx->digest);
+ if(ret != 1) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "EVP_DigestInit",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
-#ifndef XMLSEC_OPENSSL_096
- EVP_MD_CTX_init(&(ctx->digestCtx));
-#endif /* XMLSEC_OPENSSL_096 */
+ /* done */
return(0);
}
static void
-xmlSecOpenSSLEvpSignatureFinalize(xmlSecTransformPtr transform) {
- xmlSecOpenSSLEvpSignatureCtxPtr ctx;
+xmlSecOpenSSLSignatureFinalize(xmlSecTransformPtr transform) {
+ xmlSecOpenSSLSignatureCtxPtr ctx;
- xmlSecAssert(xmlSecOpenSSLEvpSignatureCheckId(transform));
- xmlSecAssert(xmlSecTransformCheckSize(transform, xmlSecOpenSSLEvpSignatureSize));
+ xmlSecAssert(xmlSecOpenSSLSignatureCheckId(transform));
+ xmlSecAssert(xmlSecTransformCheckSize(transform, xmlSecOpenSSLSignatureSize));
- ctx = xmlSecOpenSSLEvpSignatureGetCtx(transform);
+ ctx = xmlSecOpenSSLSignatureGetCtx(transform);
xmlSecAssert(ctx != NULL);
if(ctx->pKey != NULL) {
EVP_PKEY_free(ctx->pKey);
}
-#ifndef XMLSEC_OPENSSL_096
- EVP_MD_CTX_cleanup(&(ctx->digestCtx));
-#endif /* XMLSEC_OPENSSL_096 */
- memset(ctx, 0, sizeof(xmlSecOpenSSLEvpSignatureCtx));
+ if(ctx->digestCtx != NULL) {
+ EVP_MD_CTX_free(ctx->digestCtx);
+ }
+
+ memset(ctx, 0, sizeof(xmlSecOpenSSLSignatureCtx));
}
static int
-xmlSecOpenSSLEvpSignatureSetKey(xmlSecTransformPtr transform, xmlSecKeyPtr key) {
- xmlSecOpenSSLEvpSignatureCtxPtr ctx;
+xmlSecOpenSSLSignatureSetKey(xmlSecTransformPtr transform, xmlSecKeyPtr key) {
+ xmlSecOpenSSLSignatureCtxPtr ctx;
xmlSecKeyDataPtr value;
EVP_PKEY* pKey;
- xmlSecAssert2(xmlSecOpenSSLEvpSignatureCheckId(transform), -1);
+ xmlSecAssert2(xmlSecOpenSSLSignatureCheckId(transform), -1);
xmlSecAssert2((transform->operation == xmlSecTransformOperationSign) || (transform->operation == xmlSecTransformOperationVerify), -1);
- xmlSecAssert2(xmlSecTransformCheckSize(transform, xmlSecOpenSSLEvpSignatureSize), -1);
+ xmlSecAssert2(xmlSecTransformCheckSize(transform, xmlSecOpenSSLSignatureSize), -1);
xmlSecAssert2(key != NULL, -1);
- ctx = xmlSecOpenSSLEvpSignatureGetCtx(transform);
+ ctx = xmlSecOpenSSLSignatureGetCtx(transform);
xmlSecAssert2(ctx != NULL, -1);
xmlSecAssert2(ctx->digest != NULL, -1);
xmlSecAssert2(ctx->keyId != NULL, -1);
@@ -440,15 +367,15 @@ xmlSecOpenSSLEvpSignatureSetKey(xmlSecTransformPtr transform, xmlSecKeyPtr key)
}
static int
-xmlSecOpenSSLEvpSignatureSetKeyReq(xmlSecTransformPtr transform, xmlSecKeyReqPtr keyReq) {
- xmlSecOpenSSLEvpSignatureCtxPtr ctx;
+xmlSecOpenSSLSignatureSetKeyReq(xmlSecTransformPtr transform, xmlSecKeyReqPtr keyReq) {
+ xmlSecOpenSSLSignatureCtxPtr ctx;
- xmlSecAssert2(xmlSecOpenSSLEvpSignatureCheckId(transform), -1);
+ xmlSecAssert2(xmlSecOpenSSLSignatureCheckId(transform), -1);
xmlSecAssert2((transform->operation == xmlSecTransformOperationSign) || (transform->operation == xmlSecTransformOperationVerify), -1);
- xmlSecAssert2(xmlSecTransformCheckSize(transform, xmlSecOpenSSLEvpSignatureSize), -1);
+ xmlSecAssert2(xmlSecTransformCheckSize(transform, xmlSecOpenSSLSignatureSize), -1);
xmlSecAssert2(keyReq != NULL, -1);
- ctx = xmlSecOpenSSLEvpSignatureGetCtx(transform);
+ ctx = xmlSecOpenSSLSignatureGetCtx(transform);
xmlSecAssert2(ctx != NULL, -1);
xmlSecAssert2(ctx->keyId != NULL, -1);
@@ -465,136 +392,95 @@ xmlSecOpenSSLEvpSignatureSetKeyReq(xmlSecTransformPtr transform, xmlSecKeyReqPt
static int
-xmlSecOpenSSLEvpSignatureVerify(xmlSecTransformPtr transform,
+xmlSecOpenSSLSignatureVerify(xmlSecTransformPtr transform,
const xmlSecByte* data, xmlSecSize dataSize,
xmlSecTransformCtxPtr transformCtx) {
- xmlSecOpenSSLEvpSignatureCtxPtr ctx;
+ xmlSecOpenSSLSignatureCtxPtr ctx;
int ret;
- xmlSecAssert2(xmlSecOpenSSLEvpSignatureCheckId(transform), -1);
+ xmlSecAssert2(xmlSecOpenSSLSignatureCheckId(transform), -1);
xmlSecAssert2(transform->operation == xmlSecTransformOperationVerify, -1);
- xmlSecAssert2(xmlSecTransformCheckSize(transform, xmlSecOpenSSLEvpSignatureSize), -1);
+ xmlSecAssert2(xmlSecTransformCheckSize(transform, xmlSecOpenSSLSignatureSize), -1);
xmlSecAssert2(transform->status == xmlSecTransformStatusFinished, -1);
xmlSecAssert2(data != NULL, -1);
xmlSecAssert2(transformCtx != NULL, -1);
- ctx = xmlSecOpenSSLEvpSignatureGetCtx(transform);
+ ctx = xmlSecOpenSSLSignatureGetCtx(transform);
xmlSecAssert2(ctx != NULL, -1);
+ xmlSecAssert2(ctx->verifyCallback != NULL, -1);
+ xmlSecAssert2(ctx->dgstSize > 0, -1);
- ret = EVP_VerifyFinal(&(ctx->digestCtx), (xmlSecByte*)data, dataSize, ctx->pKey);
+ ret = (ctx->verifyCallback)(ctx, data, dataSize);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
- "EVP_VerifyFinal",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ "verifyCallback",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
- } else if(ret != 1) {
+ }
+
+ /* check signature results */
+ if(ret == 1) {
+ transform->status = xmlSecTransformStatusOk;
+ } else {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
- "EVP_VerifyFinal",
+ "verifyCallback",
XMLSEC_ERRORS_R_DATA_NOT_MATCH,
"signature do not match");
transform->status = xmlSecTransformStatusFail;
- return(0);
}
- transform->status = xmlSecTransformStatusOk;
+ /* done */
return(0);
}
static int
-xmlSecOpenSSLEvpSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecTransformCtxPtr transformCtx) {
- xmlSecOpenSSLEvpSignatureCtxPtr ctx;
+xmlSecOpenSSLSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecTransformCtxPtr transformCtx) {
+ xmlSecOpenSSLSignatureCtxPtr ctx;
xmlSecBufferPtr in, out;
xmlSecSize inSize;
xmlSecSize outSize;
int ret;
- xmlSecAssert2(xmlSecOpenSSLEvpSignatureCheckId(transform), -1);
+ xmlSecAssert2(xmlSecOpenSSLSignatureCheckId(transform), -1);
xmlSecAssert2((transform->operation == xmlSecTransformOperationSign) || (transform->operation == xmlSecTransformOperationVerify), -1);
- xmlSecAssert2(xmlSecTransformCheckSize(transform, xmlSecOpenSSLEvpSignatureSize), -1);
+ xmlSecAssert2(xmlSecTransformCheckSize(transform, xmlSecOpenSSLSignatureSize), -1);
xmlSecAssert2(transformCtx != NULL, -1);
- ctx = xmlSecOpenSSLEvpSignatureGetCtx(transform);
+ ctx = xmlSecOpenSSLSignatureGetCtx(transform);
xmlSecAssert2(ctx != NULL, -1);
+ xmlSecAssert2(ctx->signCallback != NULL, -1);
+ xmlSecAssert2(ctx->verifyCallback != NULL, -1);
in = &(transform->inBuf);
out = &(transform->outBuf);
inSize = xmlSecBufferGetSize(in);
outSize = xmlSecBufferGetSize(out);
- ctx = xmlSecOpenSSLEvpSignatureGetCtx(transform);
+ ctx = xmlSecOpenSSLSignatureGetCtx(transform);
xmlSecAssert2(ctx != NULL, -1);
xmlSecAssert2(ctx->digest != NULL, -1);
+ xmlSecAssert2(ctx->digestCtx != NULL, -1);
xmlSecAssert2(ctx->pKey != NULL, -1);
if(transform->status == xmlSecTransformStatusNone) {
xmlSecAssert2(outSize == 0, -1);
-
- if(transform->operation == xmlSecTransformOperationSign) {
-#ifndef XMLSEC_OPENSSL_096
- ret = EVP_SignInit(&(ctx->digestCtx), ctx->digest);
- if(ret != 1) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
- "EVP_SignInit",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-#else /* XMLSEC_OPENSSL_096 */
- EVP_SignInit(&(ctx->digestCtx), ctx->digest);
-#endif /* XMLSEC_OPENSSL_096 */
- } else {
-#ifndef XMLSEC_OPENSSL_096
- ret = EVP_VerifyInit(&(ctx->digestCtx), ctx->digest);
- if(ret != 1) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
- "EVP_VerifyInit",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-#else /* XMLSEC_OPENSSL_096 */
- EVP_VerifyInit(&(ctx->digestCtx), ctx->digest);
-#endif /* XMLSEC_OPENSSL_096 */
- }
transform->status = xmlSecTransformStatusWorking;
}
if((transform->status == xmlSecTransformStatusWorking) && (inSize > 0)) {
xmlSecAssert2(outSize == 0, -1);
- if(transform->operation == xmlSecTransformOperationSign) {
-#ifndef XMLSEC_OPENSSL_096
- ret = EVP_SignUpdate(&(ctx->digestCtx), xmlSecBufferGetData(in), inSize);
- if(ret != 1) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
- "EVP_SignUpdate",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-#else /* XMLSEC_OPENSSL_096 */
- EVP_SignUpdate(&(ctx->digestCtx), xmlSecBufferGetData(in), inSize);
-#endif /* XMLSEC_OPENSSL_096 */
- } else {
-#ifndef XMLSEC_OPENSSL_096
- ret = EVP_VerifyUpdate(&(ctx->digestCtx), xmlSecBufferGetData(in), inSize);
- if(ret != 1) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
- "EVP_VerifyUpdate",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-#else /* XMLSEC_OPENSSL_096 */
- EVP_VerifyUpdate(&(ctx->digestCtx), xmlSecBufferGetData(in), inSize);
-#endif /* XMLSEC_OPENSSL_096 */
+ ret = EVP_DigestUpdate(ctx->digestCtx, xmlSecBufferGetData(in), inSize);
+ if(ret != 1) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "EVP_DigestUpdate",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
}
ret = xmlSecBufferRemoveHead(in, inSize);
@@ -610,54 +496,32 @@ xmlSecOpenSSLEvpSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecT
if((transform->status == xmlSecTransformStatusWorking) && (last != 0)) {
xmlSecAssert2(outSize == 0, -1);
- if(transform->operation == xmlSecTransformOperationSign) {
- unsigned int signSize;
- /* this is a hack: for rsa signatures
- * we get size from EVP_PKEY_size(),
- * for dsa signature we use a fixed constant */
- signSize = EVP_PKEY_size(ctx->pKey);
-#ifndef XMLSEC_NO_DSA
- if(signSize < XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE) {
- signSize = XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE;
- }
-#endif /* XMLSEC_NO_DSA */
-#ifndef XMLSEC_NO_ECDSA
- if(signSize < XMLSEC_OPENSSL_ECDSA_SIGNATURE_SIZE) {
- signSize = XMLSEC_OPENSSL_ECDSA_SIGNATURE_SIZE;
- }
-#endif /* XMLSEC_NO_ECDSA */
+ ret = EVP_DigestFinal(ctx->digestCtx, ctx->dgst, &ctx->dgstSize);
+ if(ret != 1) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "EVP_DigestFinal",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ xmlSecAssert2(ctx->dgstSize > 0, -1);
- ret = xmlSecBufferSetMaxSize(out, signSize);
+ /* sign right away, verify will wait till separate call */
+ if(transform->operation == xmlSecTransformOperationSign) {
+ ret = (ctx->signCallback)(ctx, out);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
- "xmlSecBufferSetMaxSize",
+ "signCallback",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "size=%u", signSize);
- return(-1);
- }
-
- ret = EVP_SignFinal(&(ctx->digestCtx), xmlSecBufferGetData(out), &signSize, ctx->pKey);
- if(ret != 1) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
- "EVP_SignFinal",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
-
- ret = xmlSecBufferSetSize(out, signSize);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
- "xmlSecBufferSetSize",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "size=%u", signSize);
- return(-1);
- }
}
+
+ /* done! */
transform->status = xmlSecTransformStatusFinished;
}
@@ -677,6 +541,7 @@ xmlSecOpenSSLEvpSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecT
}
#ifndef XMLSEC_NO_DSA
+
/****************************************************************************
*
* DSA EVP
@@ -704,116 +569,291 @@ xmlSecOpenSSLEvpSignatureExecute(xmlSecTransformPtr transform, int last, xmlSecT
*
***************************************************************************/
static int
-xmlSecOpenSSLDsaEvpSign(int type ATTRIBUTE_UNUSED,
- const unsigned char *dgst, unsigned int dlen,
- unsigned char *sig, unsigned int *siglen, void *dsa) {
- DSA_SIG *s;
- int rSize, sSize;
-
- s = DSA_do_sign(dgst, dlen, dsa);
- if(s == NULL) {
- *siglen=0;
- return(0);
- }
+xmlSecOpenSSLSignatureDsaSign(xmlSecOpenSSLSignatureCtxPtr ctx, xmlSecBufferPtr out) {
+ DSA * dsaKey = NULL;
+ DSA_SIG *sig = NULL;
+ const BIGNUM *rr = NULL, *ss = NULL;
+ xmlSecByte *outData;
+ xmlSecSize dsaSignSize, signHalfSize, rSize, sSize;
+ int res = -1;
+ int ret;
+
+ xmlSecAssert2(ctx != NULL, -1);
+ xmlSecAssert2(ctx->pKey != NULL, -1);
+ xmlSecAssert2(ctx->dgstSize > 0, -1);
+ xmlSecAssert2(ctx->dgstSize <= sizeof(ctx->dgst), -1);
+ xmlSecAssert2(out != NULL, -1);
- rSize = BN_num_bytes(s->r);
- sSize = BN_num_bytes(s->s);
- if((rSize > (XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE / 2)) ||
- (sSize > (XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE / 2))) {
+ /* get key */
+ dsaKey = EVP_PKEY_get1_DSA(ctx->pKey);
+ if(dsaKey == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
+ "EVP_PKEY_get1_DSA",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
+
+ /* signature size = r + s + 8 bytes, we just need r+s */
+ dsaSignSize = DSA_size(dsaKey);
+ if(dsaSignSize < 8) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
+ "DSA_size",
XMLSEC_ERRORS_R_INVALID_SIZE,
- "size(r)=%d or size(s)=%d > %d",
- rSize, sSize, XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE / 2);
- DSA_SIG_free(s);
- return(0);
+ "dsaSignSize=%d", (int)dsaSignSize);
+ goto done;
}
- memset(sig, 0, XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE);
- BN_bn2bin(s->r, sig + (XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE / 2) - rSize);
- BN_bn2bin(s->s, sig + XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE - sSize);
- *siglen = XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE;
-
- DSA_SIG_free(s);
- return(1);
-}
+ signHalfSize = (dsaSignSize - 8) / 2;
+ if(signHalfSize < 4) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "signHalfSize",
+ XMLSEC_ERRORS_R_INVALID_SIZE,
+ "signHalfSize=%d", (int)signHalfSize);
+ goto done;
+ }
-static int
-xmlSecOpenSSLDsaEvpVerify(int type ATTRIBUTE_UNUSED,
- const unsigned char *dgst, unsigned int dgst_len,
- const unsigned char *sigbuf, unsigned int siglen,
- void *dsa) {
- DSA_SIG *s;
- int ret = -1;
-
- s = DSA_SIG_new();
- if (s == NULL) {
- return(ret);
+ /* calculate signature */
+ sig = DSA_do_sign(ctx->dgst, ctx->dgstSize, dsaKey);
+ if(sig == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "DSA_do_sign",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
}
- if(siglen != XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE) {
+ /* get signature components */
+ DSA_SIG_get0(sig, &rr, &ss);
+ if((rr == NULL) || (ss == NULL)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "DSA_SIG_get0",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
+ rSize = BN_num_bytes(rr);
+ if(rSize > signHalfSize) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
NULL,
XMLSEC_ERRORS_R_INVALID_SIZE,
- "invalid length %d (%d expected)",
- siglen, XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE);
+ "rSize=%d > %d",
+ rSize, signHalfSize);
+ goto done;
+ }
+ sSize = BN_num_bytes(ss);
+ if(sSize > signHalfSize) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ NULL,
+ XMLSEC_ERRORS_R_INVALID_SIZE,
+ "sSize=%d > %d",
+ sSize, signHalfSize);
goto done;
}
- s->r = BN_bin2bn(sigbuf, XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE / 2, NULL);
- s->s = BN_bin2bn(sigbuf + (XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE / 2),
- XMLSEC_OPENSSL_DSA_SIGNATURE_SIZE / 2, NULL);
- if((s->r == NULL) || (s->s == NULL)) {
+ /* allocate buffer */
+ ret = xmlSecBufferSetSize(out, 2 * signHalfSize);
+ if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "BN_bin2bn",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
+ "xmlSecBufferSetSize",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ "size=%d", (int)(2 * signHalfSize));
goto done;
}
+ outData = xmlSecBufferGetData(out);
+ xmlSecAssert2(outData != NULL, -1);
+
+ /* write components */
+ xmlSecAssert2((rSize + sSize) <= 2 * signHalfSize, -1);
+ memset(outData, 0, 2 * signHalfSize);
+ BN_bn2bin(rr, outData + signHalfSize - rSize);
+ BN_bn2bin(ss, outData + 2 * signHalfSize - sSize);
- ret = DSA_do_verify(dgst, dgst_len, s, dsa);
+ /* success */
+ res = 0;
done:
- DSA_SIG_free(s);
- return(ret);
+ /* cleanup */
+ if(sig != NULL) {
+ DSA_SIG_free(sig);
+ }
+ if(dsaKey != NULL) {
+ DSA_free(dsaKey);
+ }
+
+ /* done */
+ return(res);
}
-#ifndef XMLSEC_NO_SHA1
-/****************************************************************************
- *
- * DSA-SHA1 signature transform
- *
- ***************************************************************************/
+static int
+xmlSecOpenSSLSignatureDsaVerify(xmlSecOpenSSLSignatureCtxPtr ctx, const xmlSecByte* signData, xmlSecSize signSize) {
+ DSA * dsaKey = NULL;
+ DSA_SIG *sig = NULL;
+ BIGNUM *rr = NULL, *ss = NULL;
+ xmlSecSize dsaSignSize, signHalfSize;
+ int res = -1;
+ int ret;
-static xmlSecTransformKlass xmlSecOpenSSLDsaSha1Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
+ xmlSecAssert2(ctx != NULL, -1);
+ xmlSecAssert2(ctx->pKey != NULL, -1);
+ xmlSecAssert2(ctx->dgstSize > 0, -1);
+ xmlSecAssert2(signData != NULL, -1);
- xmlSecNameDsaSha1, /* const xmlChar* name; */
- xmlSecHrefDsaSha1, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
+ /* get key */
+ dsaKey = EVP_PKEY_get1_DSA(ctx->pKey);
+ if(dsaKey == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "EVP_PKEY_get1_DSA",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
+ /* signature size = r + s + 8 bytes, we just need r+s */
+ dsaSignSize = DSA_size(dsaKey);
+ if(dsaSignSize < 8) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "DSA_size",
+ XMLSEC_ERRORS_R_INVALID_SIZE,
+ "dsaSignSize=%d", (int)dsaSignSize);
+ goto done;
+ }
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
+ signHalfSize = (dsaSignSize - 8) / 2;
+ if(signHalfSize < 4) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "signHalfSize",
+ XMLSEC_ERRORS_R_INVALID_SIZE,
+ "signHalfSize=%d", (int)signHalfSize);
+ goto done;
+ }
+
+ /* check size */
+ if(signSize != 2 * signHalfSize) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ NULL,
+ XMLSEC_ERRORS_R_INVALID_SIZE,
+ "invalid length %d (%d expected)",
+ (int)signSize, (int)(2 * signHalfSize));
+ goto done;
+ }
+
+ /* create/read signature */
+ sig = DSA_SIG_new();
+ if (sig == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "DSA_SIG_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
+
+ rr = BN_bin2bn(signData, signHalfSize, NULL);
+ if(rr == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "BN_bin2bn(sig->r)",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
+ ss = BN_bin2bn(signData + signHalfSize, signHalfSize, NULL);
+ if(ss == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "BN_bin2bn(sig->s)",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
+
+ ret = DSA_SIG_set0(sig, rr, ss);
+ if(ret == 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "DSA_SIG_set0",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
+
+ rr = NULL;
+ ss = NULL;
+
+ /* verify signature */
+ ret = DSA_do_verify(ctx->dgst, ctx->dgstSize, sig, dsaKey);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "DSA_do_verify",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
+
+ /* return 1 for good signatures and 0 for bad */
+ if(ret > 0) {
+ res = 1;
+ } else if(ret == 0) {
+ res = 0;
+ }
+
+done:
+ /* cleanup */
+ DSA_SIG_free(sig);
+ DSA_free(dsaKey);
+ BN_clear_free(rr);
+ BN_clear_free(ss);
+ /* done */
+ return(res);
+}
+
+#ifndef XMLSEC_NO_SHA1
+/****************************************************************************
+ *
+ * DSA-SHA1 signature transform
+ *
+ ***************************************************************************/
+
+static xmlSecTransformKlass xmlSecOpenSSLDsaSha1Klass = {
+ /* klass/object sizes */
+ sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
+ xmlSecOpenSSLSignatureSize, /* xmlSecSize objSize */
+
+ xmlSecNameDsaSha1, /* const xmlChar* name; */
+ xmlSecHrefDsaSha1, /* const xmlChar* href; */
+ xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
+
+ xmlSecOpenSSLSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
+ xmlSecOpenSSLSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
+ NULL, /* xmlSecTransformNodeReadMethod readNode; */
+ NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
+ xmlSecOpenSSLSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
+ xmlSecOpenSSLSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
+ xmlSecOpenSSLSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
+ xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
+ xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
+ xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
+ NULL, /* xmlSecTransformPushXmlMethod pushXml; */
+ NULL, /* xmlSecTransformPopXmlMethod popXml; */
+ xmlSecOpenSSLSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
+
+ NULL, /* void* reserved0; */
+ NULL, /* void* reserved1; */
+};
/**
* xmlSecOpenSSLTransformDsaSha1GetKlass:
@@ -827,57 +867,6 @@ xmlSecOpenSSLTransformDsaSha1GetKlass(void) {
return(&xmlSecOpenSSLDsaSha1Klass);
}
-#ifndef XMLSEC_OPENSSL_096
-static int
-xmlSecOpenSSLDsaSha1EvpInit(EVP_MD_CTX *ctx)
-{
- return SHA1_Init(ctx->md_data);
-}
-
-static int
-xmlSecOpenSSLDsaSha1EvpUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
- return SHA1_Update(ctx->md_data,data,count);
-}
-
-static int
-xmlSecOpenSSLDsaSha1EvpFinal(EVP_MD_CTX *ctx, unsigned char *md)
-{
- return SHA1_Final(md,ctx->md_data);
-}
-#endif /* XMLSEC_OPENSSL_096 */
-
-static const EVP_MD xmlSecOpenSSLDsaSha1MdEvp = {
- NID_dsaWithSHA,
- NID_dsaWithSHA,
- SHA_DIGEST_LENGTH,
-#ifndef XMLSEC_OPENSSL_096
- 0,
- xmlSecOpenSSLDsaSha1EvpInit,
- xmlSecOpenSSLDsaSha1EvpUpdate,
- xmlSecOpenSSLDsaSha1EvpFinal,
- NULL,
- NULL,
-#else /* XMLSEC_OPENSSL_096 */
- SHA1_Init,
- SHA1_Update,
- SHA1_Final,
-#endif /* XMLSEC_OPENSSL_096 */
- xmlSecOpenSSLDsaEvpSign,
- xmlSecOpenSSLDsaEvpVerify,
- {EVP_PKEY_DSA,EVP_PKEY_DSA2,EVP_PKEY_DSA3,EVP_PKEY_DSA4,0},
- SHA_CBLOCK,
- sizeof(EVP_MD *)+sizeof(SHA_CTX)
-#ifdef XMLSEC_OPENSSL_100
- , NULL
-#endif /* XMLSEC_OPENSSL_100 */
-};
-
-static const EVP_MD *xmlSecOpenSSLDsaSha1Evp(void)
-{
- return(&xmlSecOpenSSLDsaSha1MdEvp);
-}
-
#endif /* XMLSEC_NO_SHA1 */
#ifndef XMLSEC_NO_SHA256
@@ -890,25 +879,25 @@ static const EVP_MD *xmlSecOpenSSLDsaSha1Evp(void)
static xmlSecTransformKlass xmlSecOpenSSLDsaSha256Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
+ xmlSecOpenSSLSignatureSize, /* xmlSecSize objSize */
xmlSecNameDsaSha256, /* const xmlChar* name; */
xmlSecHrefDsaSha256, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
+ xmlSecOpenSSLSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
+ xmlSecOpenSSLSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
NULL, /* xmlSecTransformNodeReadMethod readNode; */
NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
+ xmlSecOpenSSLSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
+ xmlSecOpenSSLSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
+ xmlSecOpenSSLSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
NULL, /* xmlSecTransformPushXmlMethod pushXml; */
NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
+ xmlSecOpenSSLSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
NULL, /* void* reserved0; */
NULL, /* void* reserved1; */
@@ -926,50 +915,6 @@ xmlSecOpenSSLTransformDsaSha256GetKlass(void) {
return(&xmlSecOpenSSLDsaSha256Klass);
}
-#ifdef XMLSEC_OPENSSL_100
-static int
-xmlSecOpenSSLDsaSha256EvpInit(EVP_MD_CTX *ctx)
-{
- return SHA256_Init(ctx->md_data);
-}
-
-static int
-xmlSecOpenSSLDsaSha256EvpUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
- return SHA256_Update(ctx->md_data,data,count);
-}
-
-static int
-xmlSecOpenSSLDsaSha256EvpFinal(EVP_MD_CTX *ctx, unsigned char *md)
-{
- return SHA256_Final(md,ctx->md_data);
-}
-
-static const EVP_MD xmlSecOpenSSLDsaSha256MdEvp = {
- NID_dsa_with_SHA256,
- NID_dsa_with_SHA256,
- SHA256_DIGEST_LENGTH,
- 0,
- xmlSecOpenSSLDsaSha256EvpInit,
- xmlSecOpenSSLDsaSha256EvpUpdate,
- xmlSecOpenSSLDsaSha256EvpFinal,
- NULL,
- NULL,
- xmlSecOpenSSLDsaEvpSign,
- xmlSecOpenSSLDsaEvpVerify,
- /* XXX-MAK: This worries me, not sure that the keys are right. */
- {EVP_PKEY_DSA,EVP_PKEY_DSA2,EVP_PKEY_DSA3,EVP_PKEY_DSA4,0},
- SHA256_CBLOCK,
- sizeof(EVP_MD *)+sizeof(SHA256_CTX),
- NULL
-};
-
-static const EVP_MD *xmlSecOpenSSLDsaSha256Evp(void)
-{
- return(&xmlSecOpenSSLDsaSha256MdEvp);
-}
-#endif /* XMLSEC_OPENSSL_100 */
-
#endif /* XMLSEC_NO_SHA256 */
#endif /* XMLSEC_NO_DSA */
@@ -991,26 +936,18 @@ static const EVP_MD *xmlSecOpenSSLDsaSha256Evp(void)
* octet-stream conversion MUST be done according to the I2OSP operation
* defined in Section 4.1 of RFC 3447 [PKCS1] with the xLen parameter equal
* to the size of the base point order of the curve in bytes (32 for the
- * P-256 curve).
+ * P-256 curve and 66 for the P-521 curve).
*
***************************************************************************/
-static int
-xmlSecOpenSSLEcdsaEvpSign(int type ATTRIBUTE_UNUSED,
- const unsigned char *dgst, unsigned int dlen,
- unsigned char *sig, unsigned int *siglen, void *ecdsa) {
- int rSize, sSize, xLen;
+static xmlSecSize
+xmlSecOpenSSLSignatureEcdsaSignatureHalfSize(EC_KEY * ecKey) {
const EC_GROUP *group;
BIGNUM *order = NULL;
- ECDSA_SIG *s;
- int ret = 0;
+ xmlSecSize signHalfSize = 0;
- s = ECDSA_do_sign(dgst, dlen, ecdsa);
- if(s == NULL) {
- *siglen = 0;
- return(ret);
- }
+ xmlSecAssert2(ecKey != NULL, 0);
- group = EC_KEY_get0_group(ecdsa);
+ group = EC_KEY_get0_group(ecKey);
if(group == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
@@ -1039,129 +976,254 @@ xmlSecOpenSSLEcdsaEvpSign(int type ATTRIBUTE_UNUSED,
goto done;
}
- xLen = BN_num_bytes(order);
- if(xLen > (XMLSEC_OPENSSL_ECDSA_SIGNATURE_SIZE / 2)) {
+ /* result */
+ signHalfSize = BN_num_bytes(order);
+
+done:
+ /* cleanup */
+ if(order != NULL) {
+ BN_clear_free(order);
+ }
+
+ /* done */
+ return(signHalfSize);
+}
+
+
+static int
+xmlSecOpenSSLSignatureEcdsaSign(xmlSecOpenSSLSignatureCtxPtr ctx, xmlSecBufferPtr out) {
+ EC_KEY * ecKey = NULL;
+ ECDSA_SIG *sig = NULL;
+ const BIGNUM *rr = NULL, *ss = NULL;
+ xmlSecByte *outData;
+ xmlSecSize signHalfSize, rSize, sSize;
+ int res = -1;
+ int ret;
+
+ xmlSecAssert2(ctx != NULL, -1);
+ xmlSecAssert2(ctx->pKey != NULL, -1);
+ xmlSecAssert2(ctx->dgstSize > 0, -1);
+ xmlSecAssert2(ctx->dgstSize <= sizeof(ctx->dgst), -1);
+ xmlSecAssert2(out != NULL, -1);
+
+ /* get key */
+ ecKey = EVP_PKEY_get1_EC_KEY(ctx->pKey);
+ if(ecKey == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "EVP_PKEY_get1_DSA",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
+
+ /* calculate signature size */
+ signHalfSize = xmlSecOpenSSLSignatureEcdsaSignatureHalfSize(ecKey);
+ if(signHalfSize <= 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlSecOpenSSLSignatureEcdsaSignatureHalfSize",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
+
+ /* sign */
+ sig = ECDSA_do_sign(ctx->dgst, ctx->dgstSize, ecKey);
+ if(sig == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "ECDSA_do_sign",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
+
+ /* get signature components */
+ ECDSA_SIG_get0(sig, &rr, &ss);
+ if((rr == NULL) || (ss == NULL)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "ECDSA_SIG_get0",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
+
+ /* check sizes */
+ rSize = BN_num_bytes(rr);
+ if(rSize > signHalfSize) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
NULL,
XMLSEC_ERRORS_R_INVALID_SIZE,
- "xLen=%d > %d",
- xLen, XMLSEC_OPENSSL_ECDSA_SIGNATURE_SIZE / 2);
+ "rSize=%d > %d",
+ (int)rSize, (int)signHalfSize);
goto done;
}
- rSize = BN_num_bytes(s->r);
- sSize = BN_num_bytes(s->s);
- if((rSize > xLen) || (sSize > xLen)) {
+ sSize = BN_num_bytes(ss);
+ if(sSize > signHalfSize) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
NULL,
XMLSEC_ERRORS_R_INVALID_SIZE,
- "size(r)=%d or size(s)=%d > %d",
- rSize, sSize, xLen);
+ "sSize=%d > %d",
+ (int)sSize, (int)signHalfSize);
goto done;
}
- memset(sig, 0, xLen * 2);
- BN_bn2bin(s->r, sig + xLen - rSize);
- BN_bn2bin(s->s, sig + (xLen * 2) - sSize);
- *siglen = xLen * 2;
+ /* allocate buffer */
+ ret = xmlSecBufferSetSize(out, 2 * signHalfSize);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlSecBufferSetSize",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ "size=%d", (int)(2 * signHalfSize));
+ goto done;
+ }
+ outData = xmlSecBufferGetData(out);
+ xmlSecAssert2(outData != NULL, -1);
- ret = 1;
+ /* write components */
+ xmlSecAssert2((rSize + sSize) <= 2 * signHalfSize, -1);
+ memset(outData, 0, 2 * signHalfSize);
+ BN_bn2bin(rr, outData + signHalfSize - rSize);
+ BN_bn2bin(ss, outData + 2 * signHalfSize - sSize);
+
+ /* success */
+ res = 0;
done:
- if(order != NULL) {
- BN_clear_free(order);
+ /* cleanup */
+ if(sig != NULL) {
+ ECDSA_SIG_free(sig);
+ }
+ if(ecKey != NULL) {
+ EC_KEY_free(ecKey);
}
- ECDSA_SIG_free(s);
- return(ret);
+
+ /* done */
+ return(res);
}
static int
-xmlSecOpenSSLEcdsaEvpVerify(int type ATTRIBUTE_UNUSED,
- const unsigned char *dgst, unsigned int dgst_len,
- const unsigned char *sigbuf, unsigned int siglen,
- void *ecdsa) {
- const EC_GROUP *group;
- unsigned int xLen;
- BIGNUM *order = NULL;
- ECDSA_SIG *s;
- int ret = -1;
+xmlSecOpenSSLSignatureEcdsaVerify(xmlSecOpenSSLSignatureCtxPtr ctx, const xmlSecByte* signData, xmlSecSize signSize) {
+ EC_KEY * ecKey = NULL;
+ ECDSA_SIG *sig = NULL;
+ BIGNUM *rr = NULL, *ss = NULL;
+ xmlSecSize signHalfSize;
+ int res = -1;
+ int ret;
- s = ECDSA_SIG_new();
- if (s == NULL) {
- return(ret);
- }
+ xmlSecAssert2(ctx != NULL, -1);
+ xmlSecAssert2(ctx->pKey != NULL, -1);
+ xmlSecAssert2(ctx->dgstSize > 0, -1);
+ xmlSecAssert2(ctx->dgstSize <= sizeof(ctx->dgst), -1);
+ xmlSecAssert2(signData != NULL, -1);
- group = EC_KEY_get0_group(ecdsa);
- if(group == NULL) {
+ /* get key */
+ ecKey = EVP_PKEY_get1_EC_KEY(ctx->pKey);
+ if(ecKey == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "EC_KEY_get0_group",
+ "EVP_PKEY_get1_DSA",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
goto done;
}
- order = BN_new();
- if(order == NULL) {
+ /* calculate signature size */
+ signHalfSize = xmlSecOpenSSLSignatureEcdsaSignatureHalfSize(ecKey);
+ if(signHalfSize <= 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "BN_new",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ "xmlSecOpenSSLSignatureEcdsaSignatureHalfSize",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
goto done;
}
- if(EC_GROUP_get_order(group, order, NULL) != 1) {
+ /* check size */
+ if(signSize != 2 * signHalfSize) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "EC_GROUP_get_order",
+ NULL,
+ XMLSEC_ERRORS_R_INVALID_SIZE,
+ "invalid length %d (%d expected)",
+ (int)signSize, (int)(2 * signHalfSize));
+ goto done;
+ }
+
+ /* create/read signature */
+ sig = ECDSA_SIG_new();
+ if (sig == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "DSA_SIG_new",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
goto done;
}
- xLen = BN_num_bytes(order);
- if(xLen > (XMLSEC_OPENSSL_ECDSA_SIGNATURE_SIZE / 2)) {
+ rr = BN_bin2bn(signData, signHalfSize, NULL);
+ if(rr == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
+ "BN_bin2bn(sig->r)",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
+ ss = BN_bin2bn(signData + signHalfSize, signHalfSize, NULL);
+ if(ss == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- XMLSEC_ERRORS_R_INVALID_SIZE,
- "xLen=%d > %d",
- xLen, XMLSEC_OPENSSL_ECDSA_SIGNATURE_SIZE / 2);
+ "BN_bin2bn(sig->s)",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
goto done;
}
- if(siglen != xLen * 2) {
+ ret = ECDSA_SIG_set0(sig, rr, ss);
+ if(ret == 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- NULL,
- XMLSEC_ERRORS_R_INVALID_SIZE,
- "invalid length %d (%d expected)",
- siglen, xLen * 2);
+ "ECDSA_SIG_set0()",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
goto done;
}
+ rr = NULL;
+ ss = NULL;
- s->r = BN_bin2bn(sigbuf, xLen, NULL);
- s->s = BN_bin2bn(sigbuf + xLen, xLen, NULL);
- if((s->r == NULL) || (s->s == NULL)) {
+ /* verify signature */
+ ret = ECDSA_do_verify(ctx->dgst, ctx->dgstSize, sig, ecKey);
+ if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "BN_bin2bn",
+ "ECDSA_do_verify",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
goto done;
}
- ret = ECDSA_do_verify(dgst, dgst_len, s, ecdsa);
+ /* return 1 for good signatures and 0 for bad */
+ if(ret > 0) {
+ res = 1;
+ } else if(ret == 0) {
+ res = 0;
+ }
done:
- if(order != NULL) {
- BN_clear_free(order);
- }
- ECDSA_SIG_free(s);
- return(ret);
+ /* cleanup */
+ ECDSA_SIG_free(sig);
+ EC_KEY_free(ecKey);
+ BN_clear_free(rr);
+ BN_clear_free(ss);
+ /* done */
+ return(res);
}
#ifndef XMLSEC_NO_SHA1
@@ -1174,25 +1236,25 @@ done:
static xmlSecTransformKlass xmlSecOpenSSLEcdsaSha1Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
+ xmlSecOpenSSLSignatureSize, /* xmlSecSize objSize */
xmlSecNameEcdsaSha1, /* const xmlChar* name; */
xmlSecHrefEcdsaSha1, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
+ xmlSecOpenSSLSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
+ xmlSecOpenSSLSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
NULL, /* xmlSecTransformNodeReadMethod readNode; */
NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
+ xmlSecOpenSSLSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
+ xmlSecOpenSSLSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
+ xmlSecOpenSSLSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
NULL, /* xmlSecTransformPushXmlMethod pushXml; */
NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
+ xmlSecOpenSSLSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
NULL, /* void* reserved0; */
NULL, /* void* reserved1; */
@@ -1210,56 +1272,6 @@ xmlSecOpenSSLTransformEcdsaSha1GetKlass(void) {
return(&xmlSecOpenSSLEcdsaSha1Klass);
}
-#ifndef XMLSEC_OPENSSL_096
-static int
-xmlSecOpenSSLEcdsaSha1EvpInit(EVP_MD_CTX *ctx)
-{
- return SHA1_Init(ctx->md_data);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha1EvpUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
- return SHA1_Update(ctx->md_data,data,count);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha1EvpFinal(EVP_MD_CTX *ctx, unsigned char *md)
-{
- return SHA1_Final(md,ctx->md_data);
-}
-#endif /* XMLSEC_OPENSSL_096 */
-
-static const EVP_MD xmlSecOpenSSLEcdsaSha1MdEvp = {
- NID_ecdsa_with_SHA1,
- NID_ecdsa_with_SHA1,
- SHA_DIGEST_LENGTH,
-#ifndef XMLSEC_OPENSSL_096
- 0,
- xmlSecOpenSSLEcdsaSha1EvpInit,
- xmlSecOpenSSLEcdsaSha1EvpUpdate,
- xmlSecOpenSSLEcdsaSha1EvpFinal,
- NULL,
- NULL,
-#else /* XMLSEC_OPENSSL_096 */
- SHA1_Init,
- SHA1_Update,
- SHA1_Final,
-#endif /* XMLSEC_OPENSSL_096 */
- xmlSecOpenSSLEcdsaEvpSign,
- xmlSecOpenSSLEcdsaEvpVerify,
- /* XXX-MAK: This worries me, not sure that the keys are right. */
- {NID_X9_62_id_ecPublicKey,NID_ecdsa_with_SHA1,0,0,0},
- SHA_CBLOCK,
- sizeof(EVP_MD *)+sizeof(SHA_CTX),
- NULL
-};
-
-static const EVP_MD *xmlSecOpenSSLEcdsaSha1Evp(void)
-{
- return(&xmlSecOpenSSLEcdsaSha1MdEvp);
-}
-
#endif /* XMLSEC_NO_SHA1 */
#ifndef XMLSEC_NO_SHA224
@@ -1272,25 +1284,25 @@ static const EVP_MD *xmlSecOpenSSLEcdsaSha1Evp(void)
static xmlSecTransformKlass xmlSecOpenSSLEcdsaSha224Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
+ xmlSecOpenSSLSignatureSize, /* xmlSecSize objSize */
xmlSecNameEcdsaSha224, /* const xmlChar* name; */
xmlSecHrefEcdsaSha224, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
+ xmlSecOpenSSLSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
+ xmlSecOpenSSLSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
NULL, /* xmlSecTransformNodeReadMethod readNode; */
NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
+ xmlSecOpenSSLSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
+ xmlSecOpenSSLSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
+ xmlSecOpenSSLSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
NULL, /* xmlSecTransformPushXmlMethod pushXml; */
NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
+ xmlSecOpenSSLSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
NULL, /* void* reserved0; */
NULL, /* void* reserved1; */
@@ -1308,56 +1320,6 @@ xmlSecOpenSSLTransformEcdsaSha224GetKlass(void) {
return(&xmlSecOpenSSLEcdsaSha224Klass);
}
-#ifndef XMLSEC_OPENSSL_096
-static int
-xmlSecOpenSSLEcdsaSha224EvpInit(EVP_MD_CTX *ctx)
-{
- return SHA224_Init(ctx->md_data);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha224EvpUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
- return SHA224_Update(ctx->md_data,data,count);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha224EvpFinal(EVP_MD_CTX *ctx, unsigned char *md)
-{
- return SHA224_Final(md,ctx->md_data);
-}
-#endif /* XMLSEC_OPENSSL_096 */
-
-static const EVP_MD xmlSecOpenSSLEcdsaSha224MdEvp = {
- NID_ecdsa_with_SHA224,
- NID_ecdsa_with_SHA224,
- SHA224_DIGEST_LENGTH,
-#ifndef XMLSEC_OPENSSL_096
- 0,
- xmlSecOpenSSLEcdsaSha224EvpInit,
- xmlSecOpenSSLEcdsaSha224EvpUpdate,
- xmlSecOpenSSLEcdsaSha224EvpFinal,
- NULL,
- NULL,
-#else /* XMLSEC_OPENSSL_096 */
- SHA224_Init,
- SHA224_Update,
- SHA224_Final,
-#endif /* XMLSEC_OPENSSL_096 */
- xmlSecOpenSSLEcdsaEvpSign,
- xmlSecOpenSSLEcdsaEvpVerify,
- /* XXX-MAK: This worries me, not sure that the keys are right. */
- {NID_X9_62_id_ecPublicKey,NID_ecdsa_with_SHA224,0,0,0},
- SHA256_CBLOCK,
- sizeof(EVP_MD *)+sizeof(SHA256_CTX),
- NULL
-};
-
-static const EVP_MD *xmlSecOpenSSLEcdsaSha224Evp(void)
-{
- return(&xmlSecOpenSSLEcdsaSha224MdEvp);
-}
-
#endif /* XMLSEC_NO_SHA224 */
#ifndef XMLSEC_NO_SHA256
@@ -1370,25 +1332,25 @@ static const EVP_MD *xmlSecOpenSSLEcdsaSha224Evp(void)
static xmlSecTransformKlass xmlSecOpenSSLEcdsaSha256Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
+ xmlSecOpenSSLSignatureSize, /* xmlSecSize objSize */
xmlSecNameEcdsaSha256, /* const xmlChar* name; */
xmlSecHrefEcdsaSha256, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
+ xmlSecOpenSSLSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
+ xmlSecOpenSSLSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
NULL, /* xmlSecTransformNodeReadMethod readNode; */
NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
+ xmlSecOpenSSLSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
+ xmlSecOpenSSLSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
+ xmlSecOpenSSLSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
NULL, /* xmlSecTransformPushXmlMethod pushXml; */
NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
+ xmlSecOpenSSLSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
NULL, /* void* reserved0; */
NULL, /* void* reserved1; */
@@ -1406,56 +1368,6 @@ xmlSecOpenSSLTransformEcdsaSha256GetKlass(void) {
return(&xmlSecOpenSSLEcdsaSha256Klass);
}
-#ifndef XMLSEC_OPENSSL_096
-static int
-xmlSecOpenSSLEcdsaSha256EvpInit(EVP_MD_CTX *ctx)
-{
- return SHA256_Init(ctx->md_data);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha256EvpUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
- return SHA256_Update(ctx->md_data,data,count);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha256EvpFinal(EVP_MD_CTX *ctx, unsigned char *md)
-{
- return SHA256_Final(md,ctx->md_data);
-}
-#endif /* XMLSEC_OPENSSL_096 */
-
-static const EVP_MD xmlSecOpenSSLEcdsaSha256MdEvp = {
- NID_ecdsa_with_SHA256,
- NID_ecdsa_with_SHA256,
- SHA256_DIGEST_LENGTH,
-#ifndef XMLSEC_OPENSSL_096
- 0,
- xmlSecOpenSSLEcdsaSha256EvpInit,
- xmlSecOpenSSLEcdsaSha256EvpUpdate,
- xmlSecOpenSSLEcdsaSha256EvpFinal,
- NULL,
- NULL,
-#else /* XMLSEC_OPENSSL_096 */
- SHA256_Init,
- SHA256_Update,
- SHA256_Final,
-#endif /* XMLSEC_OPENSSL_096 */
- xmlSecOpenSSLEcdsaEvpSign,
- xmlSecOpenSSLEcdsaEvpVerify,
- /* XXX-MAK: This worries me, not sure that the keys are right. */
- {NID_X9_62_id_ecPublicKey,NID_ecdsa_with_SHA256,0,0,0},
- SHA256_CBLOCK,
- sizeof(EVP_MD *)+sizeof(SHA256_CTX),
- NULL
-};
-
-static const EVP_MD *xmlSecOpenSSLEcdsaSha256Evp(void)
-{
- return(&xmlSecOpenSSLEcdsaSha256MdEvp);
-}
-
#endif /* XMLSEC_NO_SHA256 */
#ifndef XMLSEC_NO_SHA384
@@ -1468,25 +1380,25 @@ static const EVP_MD *xmlSecOpenSSLEcdsaSha256Evp(void)
static xmlSecTransformKlass xmlSecOpenSSLEcdsaSha384Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
+ xmlSecOpenSSLSignatureSize, /* xmlSecSize objSize */
xmlSecNameEcdsaSha384, /* const xmlChar* name; */
xmlSecHrefEcdsaSha384, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
+ xmlSecOpenSSLSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
+ xmlSecOpenSSLSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
NULL, /* xmlSecTransformNodeReadMethod readNode; */
NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
+ xmlSecOpenSSLSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
+ xmlSecOpenSSLSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
+ xmlSecOpenSSLSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
NULL, /* xmlSecTransformPushXmlMethod pushXml; */
NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
+ xmlSecOpenSSLSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
NULL, /* void* reserved0; */
NULL, /* void* reserved1; */
@@ -1504,56 +1416,6 @@ xmlSecOpenSSLTransformEcdsaSha384GetKlass(void) {
return(&xmlSecOpenSSLEcdsaSha384Klass);
}
-#ifndef XMLSEC_OPENSSL_096
-static int
-xmlSecOpenSSLEcdsaSha384EvpInit(EVP_MD_CTX *ctx)
-{
- return SHA384_Init(ctx->md_data);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha384EvpUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
- return SHA384_Update(ctx->md_data,data,count);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha384EvpFinal(EVP_MD_CTX *ctx, unsigned char *md)
-{
- return SHA384_Final(md,ctx->md_data);
-}
-#endif /* XMLSEC_OPENSSL_096 */
-
-static const EVP_MD xmlSecOpenSSLEcdsaSha384MdEvp = {
- NID_ecdsa_with_SHA384,
- NID_ecdsa_with_SHA384,
- SHA384_DIGEST_LENGTH,
-#ifndef XMLSEC_OPENSSL_096
- 0,
- xmlSecOpenSSLEcdsaSha384EvpInit,
- xmlSecOpenSSLEcdsaSha384EvpUpdate,
- xmlSecOpenSSLEcdsaSha384EvpFinal,
- NULL,
- NULL,
-#else /* XMLSEC_OPENSSL_096 */
- SHA384_Init,
- SHA384_Update,
- SHA384_Final,
-#endif /* XMLSEC_OPENSSL_096 */
- xmlSecOpenSSLEcdsaEvpSign,
- xmlSecOpenSSLEcdsaEvpVerify,
- /* XXX-MAK: This worries me, not sure that the keys are right. */
- {NID_X9_62_id_ecPublicKey,NID_ecdsa_with_SHA384,0,0,0},
- SHA512_CBLOCK,
- sizeof(EVP_MD *)+sizeof(SHA512_CTX),
- NULL
-};
-
-static const EVP_MD *xmlSecOpenSSLEcdsaSha384Evp(void)
-{
- return(&xmlSecOpenSSLEcdsaSha384MdEvp);
-}
-
#endif /* XMLSEC_NO_SHA384 */
#ifndef XMLSEC_NO_SHA512
@@ -1566,25 +1428,25 @@ static const EVP_MD *xmlSecOpenSSLEcdsaSha384Evp(void)
static xmlSecTransformKlass xmlSecOpenSSLEcdsaSha512Klass = {
/* klass/object sizes */
sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
+ xmlSecOpenSSLSignatureSize, /* xmlSecSize objSize */
xmlSecNameEcdsaSha512, /* const xmlChar* name; */
xmlSecHrefEcdsaSha512, /* const xmlChar* href; */
xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
+ xmlSecOpenSSLSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
+ xmlSecOpenSSLSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
NULL, /* xmlSecTransformNodeReadMethod readNode; */
NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
+ xmlSecOpenSSLSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
+ xmlSecOpenSSLSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
+ xmlSecOpenSSLSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
NULL, /* xmlSecTransformPushXmlMethod pushXml; */
NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
+ xmlSecOpenSSLSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
NULL, /* void* reserved0; */
NULL, /* void* reserved1; */
@@ -1602,440 +1464,10 @@ xmlSecOpenSSLTransformEcdsaSha512GetKlass(void) {
return(&xmlSecOpenSSLEcdsaSha512Klass);
}
-#ifndef XMLSEC_OPENSSL_096
-static int
-xmlSecOpenSSLEcdsaSha512EvpInit(EVP_MD_CTX *ctx)
-{
- return SHA512_Init(ctx->md_data);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha512EvpUpdate(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
- return SHA512_Update(ctx->md_data,data,count);
-}
-
-static int
-xmlSecOpenSSLEcdsaSha512EvpFinal(EVP_MD_CTX *ctx, unsigned char *md)
-{
- return SHA512_Final(md,ctx->md_data);
-}
-#endif /* XMLSEC_OPENSSL_096 */
-
-static const EVP_MD xmlSecOpenSSLEcdsaSha512MdEvp = {
- NID_ecdsa_with_SHA512,
- NID_ecdsa_with_SHA512,
- SHA512_DIGEST_LENGTH,
-#ifndef XMLSEC_OPENSSL_096
- 0,
- xmlSecOpenSSLEcdsaSha512EvpInit,
- xmlSecOpenSSLEcdsaSha512EvpUpdate,
- xmlSecOpenSSLEcdsaSha512EvpFinal,
- NULL,
- NULL,
-#else /* XMLSEC_OPENSSL_096 */
- SHA512_Init,
- SHA512_Update,
- SHA512_Final,
-#endif /* XMLSEC_OPENSSL_096 */
- xmlSecOpenSSLEcdsaEvpSign,
- xmlSecOpenSSLEcdsaEvpVerify,
- /* XXX-MAK: This worries me, not sure that the keys are right. */
- {NID_X9_62_id_ecPublicKey,NID_ecdsa_with_SHA512,0,0,0},
- SHA512_CBLOCK,
- sizeof(EVP_MD *)+sizeof(SHA512_CTX),
- NULL
-};
-
-static const EVP_MD *xmlSecOpenSSLEcdsaSha512Evp(void)
-{
- return(&xmlSecOpenSSLEcdsaSha512MdEvp);
-}
-
#endif /* XMLSEC_NO_SHA512 */
#endif /* XMLSEC_NO_ECDSA */
-#ifndef XMLSEC_NO_RSA
-
-#ifndef XMLSEC_NO_MD5
-/****************************************************************************
- *
- * RSA-MD5 signature transform
- *
- ***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLRsaMd5Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
-
- xmlSecNameRsaMd5, /* const xmlChar* name; */
- xmlSecHrefRsaMd5, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
-
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
-
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-
-/**
- * xmlSecOpenSSLTransformRsaMd5GetKlass:
- *
- * The RSA-MD5 signature transform klass.
- *
- * Returns: RSA-MD5 signature transform klass.
- */
-xmlSecTransformId
-xmlSecOpenSSLTransformRsaMd5GetKlass(void) {
- return(&xmlSecOpenSSLRsaMd5Klass);
-}
-
-#endif /* XMLSEC_NO_MD5 */
-
-#ifndef XMLSEC_NO_RIPEMD160
-/****************************************************************************
- *
- * RSA-RIPEMD160 signature transform
- *
- ***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLRsaRipemd160Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
-
- xmlSecNameRsaRipemd160, /* const xmlChar* name; */
- xmlSecHrefRsaRipemd160, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
-
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
-
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-
-/**
- * xmlSecOpenSSLTransformRsaRipemd160GetKlass:
- *
- * The RSA-RIPEMD160 signature transform klass.
- *
- * Returns: RSA-RIPEMD160 signature transform klass.
- */
-xmlSecTransformId
-xmlSecOpenSSLTransformRsaRipemd160GetKlass(void) {
- return(&xmlSecOpenSSLRsaRipemd160Klass);
-}
-
-#endif /* XMLSEC_NO_RIPEMD160 */
-
-#ifndef XMLSEC_NO_SHA1
-/****************************************************************************
- *
- * RSA-SHA1 signature transform
- *
- ***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLRsaSha1Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
-
- xmlSecNameRsaSha1, /* const xmlChar* name; */
- xmlSecHrefRsaSha1, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
-
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
-
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-
-/**
- * xmlSecOpenSSLTransformRsaSha1GetKlass:
- *
- * The RSA-SHA1 signature transform klass.
- *
- * Returns: RSA-SHA1 signature transform klass.
- */
-xmlSecTransformId
-xmlSecOpenSSLTransformRsaSha1GetKlass(void) {
- return(&xmlSecOpenSSLRsaSha1Klass);
-}
-
-#endif /* XMLSEC_NO_SHA1 */
-
-#ifndef XMLSEC_NO_SHA224
-/****************************************************************************
- *
- * RSA-SHA224 signature transform
- *
- ***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLRsaSha224Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
-
- xmlSecNameRsaSha224, /* const xmlChar* name; */
- xmlSecHrefRsaSha224, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
-
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
-
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-
-/**
- * xmlSecOpenSSLTransformRsaSha224GetKlass:
- *
- * The RSA-SHA224 signature transform klass.
- *
- * Returns: RSA-SHA224 signature transform klass.
- */
-xmlSecTransformId
-xmlSecOpenSSLTransformRsaSha224GetKlass(void) {
- return(&xmlSecOpenSSLRsaSha224Klass);
-}
-
-#endif /* XMLSEC_NO_SHA224 */
-
-#ifndef XMLSEC_NO_SHA256
-/****************************************************************************
- *
- * RSA-SHA256 signature transform
- *
- ***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLRsaSha256Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
-
- xmlSecNameRsaSha256, /* const xmlChar* name; */
- xmlSecHrefRsaSha256, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
-
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
-
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-
-/**
- * xmlSecOpenSSLTransformRsaSha256GetKlass:
- *
- * The RSA-SHA256 signature transform klass.
- *
- * Returns: RSA-SHA256 signature transform klass.
- */
-xmlSecTransformId
-xmlSecOpenSSLTransformRsaSha256GetKlass(void) {
- return(&xmlSecOpenSSLRsaSha256Klass);
-}
-
-#endif /* XMLSEC_NO_SHA256 */
-
-#ifndef XMLSEC_NO_SHA384
-/****************************************************************************
- *
- * RSA-SHA384 signature transform
- *
- ***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLRsaSha384Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
-
- xmlSecNameRsaSha384, /* const xmlChar* name; */
- xmlSecHrefRsaSha384, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
-
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
-
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-
-/**
- * xmlSecOpenSSLTransformRsaSha384GetKlass:
- *
- * The RSA-SHA384 signature transform klass.
- *
- * Returns: RSA-SHA384 signature transform klass.
- */
-xmlSecTransformId
-xmlSecOpenSSLTransformRsaSha384GetKlass(void) {
- return(&xmlSecOpenSSLRsaSha384Klass);
-}
-
-#endif /* XMLSEC_NO_SHA384 */
-
-#ifndef XMLSEC_NO_SHA512
-/****************************************************************************
- *
- * RSA-SHA512 signature transform
- *
- ***************************************************************************/
-static xmlSecTransformKlass xmlSecOpenSSLRsaSha512Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
-
- xmlSecNameRsaSha512, /* const xmlChar* name; */
- xmlSecHrefRsaSha512, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
-
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
-
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-
-/**
- * xmlSecOpenSSLTransformRsaSha512GetKlass:
- *
- * The RSA-SHA512 signature transform klass.
- *
- * Returns: RSA-SHA512 signature transform klass.
- */
-xmlSecTransformId
-xmlSecOpenSSLTransformRsaSha512GetKlass(void) {
- return(&xmlSecOpenSSLRsaSha512Klass);
-}
-
-#endif /* XMLSEC_NO_SHA512 */
-
-#endif /* XMLSEC_NO_RSA */
-
-
-#ifndef XMLSEC_NO_GOST
-/****************************************************************************
- *
- * GOST2001-GOSTR3411_94 signature transform
- *
- ***************************************************************************/
-
-static xmlSecTransformKlass xmlSecOpenSSLGost2001GostR3411_94Klass = {
- /* klass/object sizes */
- sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
- xmlSecOpenSSLEvpSignatureSize, /* xmlSecSize objSize */
-
- xmlSecNameGost2001GostR3411_94, /* const xmlChar* name; */
- xmlSecHrefGost2001GostR3411_94, /* const xmlChar* href; */
- xmlSecTransformUsageSignatureMethod, /* xmlSecTransformUsage usage; */
-
- xmlSecOpenSSLEvpSignatureInitialize, /* xmlSecTransformInitializeMethod initialize; */
- xmlSecOpenSSLEvpSignatureFinalize, /* xmlSecTransformFinalizeMethod finalize; */
- NULL, /* xmlSecTransformNodeReadMethod readNode; */
- NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
- xmlSecOpenSSLEvpSignatureSetKeyReq, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
- xmlSecOpenSSLEvpSignatureSetKey, /* xmlSecTransformSetKeyMethod setKey; */
- xmlSecOpenSSLEvpSignatureVerify, /* xmlSecTransformVerifyMethod verify; */
- xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
- xmlSecTransformDefaultPushBin, /* xmlSecTransformPushBinMethod pushBin; */
- xmlSecTransformDefaultPopBin, /* xmlSecTransformPopBinMethod popBin; */
- NULL, /* xmlSecTransformPushXmlMethod pushXml; */
- NULL, /* xmlSecTransformPopXmlMethod popXml; */
- xmlSecOpenSSLEvpSignatureExecute, /* xmlSecTransformExecuteMethod execute; */
-
- NULL, /* void* reserved0; */
- NULL, /* void* reserved1; */
-};
-
-/**
- * xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass:
- *
- * The GOST2001-GOSTR3411_94 signature transform klass.
- *
- * Returns: GOST2001-GOSTR3411_94 signature transform klass.
- */
-xmlSecTransformId
-xmlSecOpenSSLTransformGost2001GostR3411_94GetKlass(void) {
- return(&xmlSecOpenSSLGost2001GostR3411_94Klass);
-}
-#endif /* XMLSEC_NO_GOST*/
diff --git a/src/openssl/symkeys.c b/src/openssl/symkeys.c
index 6195ed6..78d29e2 100644
--- a/src/openssl/symkeys.c
+++ b/src/openssl/symkeys.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -181,11 +181,9 @@ xmlSecOpenSSLSymKeyDataKlassCheck(xmlSecKeyDataKlass* klass) {
#endif /* XMLSEC_NO_DES */
#ifndef XMLSEC_NO_AES
-#ifndef XMLSEC_OPENSSL_096
if(klass == xmlSecOpenSSLKeyDataAesId) {
return(1);
}
-#endif /* XMLSEC_OPENSSL_096 */
#endif /* XMLSEC_NO_AES */
#ifndef XMLSEC_NO_HMAC
@@ -198,7 +196,6 @@ xmlSecOpenSSLSymKeyDataKlassCheck(xmlSecKeyDataKlass* klass) {
}
#ifndef XMLSEC_NO_AES
-#ifndef XMLSEC_OPENSSL_096
/**************************************************************************
*
* <xmlsec:AESKeyValue> processing
@@ -277,8 +274,6 @@ xmlSecOpenSSLKeyDataAesSet(xmlSecKeyDataPtr data, const xmlSecByte* buf, xmlSecS
return(xmlSecBufferSetData(buffer, buf, bufSize));
}
-
-#endif /* XMLSEC_OPENSSL_096 */
#endif /* XMLSEC_NO_AES */
#ifndef XMLSEC_NO_DES
diff --git a/src/openssl/x509.c b/src/openssl/x509.c
index 459a312..4b486cf 100644
--- a/src/openssl/x509.c
+++ b/src/openssl/x509.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -39,6 +39,7 @@
#include <xmlsec/openssl/crypto.h>
#include <xmlsec/openssl/evp.h>
#include <xmlsec/openssl/x509.h>
+#include "openssl11_wrapper.h"
/*************************************************************************
*
@@ -708,7 +709,7 @@ xmlSecOpenSSLKeyDataX509XmlWrite(xmlSecKeyDataId id, xmlSecKeyPtr key,
xmlSecAssert2(node != NULL, -1);
xmlSecAssert2(keyInfoCtx != NULL, -1);
- content = xmlSecX509DataGetNodeContent (node, 1, keyInfoCtx);
+ content = xmlSecX509DataGetNodeContent (node, keyInfoCtx);
if (content < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataKlassGetName(id)),
@@ -1023,11 +1024,11 @@ xmlSecOpenSSLX509CertificateNodeWrite(X509* cert, xmlNodePtr node, xmlSecKeyInfo
return(-1);
}
- cur = xmlSecAddChild(node, xmlSecNodeX509Certificate, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509Certificate, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509Certificate));
@@ -1146,11 +1147,11 @@ xmlSecOpenSSLX509SubjectNameNodeWrite(X509* cert, xmlNodePtr node, xmlSecKeyInfo
return(-1);
}
- cur = xmlSecAddChild(node, xmlSecNodeX509SubjectName, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509SubjectName, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509SubjectName));
@@ -1319,33 +1320,33 @@ xmlSecOpenSSLX509IssuerSerialNodeWrite(X509* cert, xmlNodePtr node, xmlSecKeyInf
xmlSecAssert2(node != NULL, -1);
/* create xml nodes */
- cur = xmlSecAddChild(node, xmlSecNodeX509IssuerSerial, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509IssuerSerial, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509IssuerSerial));
return(-1);
}
- issuerNameNode = xmlSecAddChild(cur, xmlSecNodeX509IssuerName, xmlSecDSigNs);
+ issuerNameNode = xmlSecEnsureEmptyChild(cur, xmlSecNodeX509IssuerName, xmlSecDSigNs);
if(issuerNameNode == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509IssuerName));
return(-1);
}
- issuerNumberNode = xmlSecAddChild(cur, xmlSecNodeX509SerialNumber, xmlSecDSigNs);
+ issuerNumberNode = xmlSecEnsureEmptyChild(cur, xmlSecNodeX509SerialNumber, xmlSecDSigNs);
if(issuerNumberNode == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509SerialNumber));
@@ -1482,11 +1483,11 @@ xmlSecOpenSSLX509SKINodeWrite(X509* cert, xmlNodePtr node, xmlSecKeyInfoCtxPtr k
return(-1);
}
- cur = xmlSecAddChild(node, xmlSecNodeX509SKI, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509SKI, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"new_node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509SKI));
@@ -1572,11 +1573,11 @@ xmlSecOpenSSLX509CRLNodeWrite(X509_CRL* crl, xmlNodePtr node, xmlSecKeyInfoCtxPt
return(-1);
}
- cur = xmlSecAddChild(node, xmlSecNodeX509CRL, xmlSecDSigNs);
+ cur = xmlSecEnsureEmptyChild(node, xmlSecNodeX509CRL, xmlSecDSigNs);
if(cur == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "xmlSecAddChild",
+ "xmlSecEnsureEmptyChild",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"new_node=%s",
xmlSecErrorsSafeString(xmlSecNodeX509CRL));
@@ -1751,7 +1752,6 @@ xmlSecOpenSSLX509CertGetTime(ASN1_TIME* t, time_t* res) {
xmlSecAssert2(res != NULL, -1);
(*res) = 0;
-#ifndef XMLSEC_OPENSSL_096
if(!ASN1_TIME_check(t)) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
@@ -1760,7 +1760,6 @@ xmlSecOpenSSLX509CertGetTime(ASN1_TIME* t, time_t* res) {
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
-#endif /* XMLSEC_OPENSSL_096 */
memset(&tm, 0, sizeof(tm));
@@ -1941,7 +1940,7 @@ xmlSecOpenSSLX509CertBase64DerWrite(X509* cert, int base64LineWrap) {
/* todo: add error checks */
i2d_X509_bio(mem, cert);
- BIO_flush(mem);
+ (void)BIO_flush(mem);
size = BIO_get_mem_data(mem, &p);
if((size <= 0) || (p == NULL)){
@@ -2055,7 +2054,7 @@ xmlSecOpenSSLX509CrlBase64DerWrite(X509_CRL* crl, int base64LineWrap) {
/* todo: add error checks */
i2d_X509_CRL_bio(mem, crl);
- BIO_flush(mem);
+ (void)BIO_flush(mem);
size = BIO_get_mem_data(mem, &p);
if((size <= 0) || (p == NULL)){
@@ -2111,7 +2110,7 @@ xmlSecOpenSSLX509NameWrite(X509_NAME* nm) {
return(NULL);
}
- BIO_flush(mem); /* should call flush ? */
+ (void)BIO_flush(mem); /* should call flush ? */
size = BIO_pending(mem);
res = xmlMalloc(size + 1);
@@ -2218,21 +2217,21 @@ xmlSecOpenSSLX509SKIWrite(X509* cert) {
"X509V3_EXT_d2i",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
- M_ASN1_OCTET_STRING_free(keyId);
+ ASN1_OCTET_STRING_free(keyId);
return(NULL);
}
- res = xmlSecBase64Encode(M_ASN1_STRING_data(keyId), M_ASN1_STRING_length(keyId), 0);
+ res = xmlSecBase64Encode(ASN1_STRING_get0_data(keyId), ASN1_STRING_length(keyId), 0);
if(res == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
"xmlSecBase64Encode",
XMLSEC_ERRORS_R_XMLSEC_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
- M_ASN1_OCTET_STRING_free(keyId);
+ ASN1_OCTET_STRING_free(keyId);
return(NULL);
}
- M_ASN1_OCTET_STRING_free(keyId);
+ ASN1_OCTET_STRING_free(keyId);
return(res);
}
diff --git a/src/openssl/x509vfy.c b/src/openssl/x509vfy.c
index ca5a462..59f3914 100644
--- a/src/openssl/x509vfy.c
+++ b/src/openssl/x509vfy.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -36,6 +36,7 @@
#include <xmlsec/openssl/crypto.h>
#include <xmlsec/openssl/evp.h>
#include <xmlsec/openssl/x509.h>
+#include "openssl11_wrapper.h"
/**************************************************************************
*
@@ -48,10 +49,7 @@ struct _xmlSecOpenSSLX509StoreCtx {
X509_STORE* xst;
STACK_OF(X509)* untrusted;
STACK_OF(X509_CRL)* crls;
-
-#if !defined(XMLSEC_OPENSSL_096) && !defined(XMLSEC_OPENSSL_097)
X509_VERIFY_PARAM * vpm;
-#endif /* !defined(XMLSEC_OPENSSL_096) && !defined(XMLSEC_OPENSSL_097) */
};
/****************************************************************************
@@ -107,11 +105,13 @@ static int xmlSecOpenSSLX509NameStringRead (xmlSecB
int ingoreTrailingSpaces);
static int xmlSecOpenSSLX509NamesCompare (X509_NAME *a,
X509_NAME *b);
-static int xmlSecOpenSSLX509_NAME_cmp (const X509_NAME * a,
- const X509_NAME * b);
+static STACK_OF(X509_NAME_ENTRY)* xmlSecOpenSSLX509_NAME_ENTRIES_copy (X509_NAME *a);
+static int xmlSecOpenSSLX509_NAME_ENTRIES_cmp (STACK_OF(X509_NAME_ENTRY) * a,
+ STACK_OF(X509_NAME_ENTRY) * b);
static int xmlSecOpenSSLX509_NAME_ENTRY_cmp (const X509_NAME_ENTRY * const *a,
const X509_NAME_ENTRY * const *b);
+
/**
* xmlSecOpenSSLX509StoreGetKlass:
*
@@ -177,8 +177,9 @@ xmlSecOpenSSLX509StoreVerify(xmlSecKeyDataStorePtr store, XMLSEC_STACK_OF_X509*
X509 * res = NULL;
X509 * cert;
X509 * err_cert = NULL;
+ X509_STORE_CTX *xsc;
char buf[256];
- int err = 0, depth;
+ int err = 0;
int i;
int ret;
@@ -186,6 +187,16 @@ xmlSecOpenSSLX509StoreVerify(xmlSecKeyDataStorePtr store, XMLSEC_STACK_OF_X509*
xmlSecAssert2(certs != NULL, NULL);
xmlSecAssert2(keyInfoCtx != NULL, NULL);
+ xsc = X509_STORE_CTX_new();
+ if(xsc == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecKeyDataStoreGetName(store)),
+ "X509_STORE_CTX_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
+
ctx = xmlSecOpenSSLX509StoreGetCtx(store);
xmlSecAssert2(ctx != NULL, NULL);
xmlSecAssert2(ctx->xst != NULL, NULL);
@@ -285,53 +296,53 @@ xmlSecOpenSSLX509StoreVerify(xmlSecKeyDataStorePtr store, XMLSEC_STACK_OF_X509*
for(i = 0; i < sk_X509_num(certs2); ++i) {
cert = sk_X509_value(certs2, i);
if(xmlSecOpenSSLX509FindNextChainCert(certs2, cert) == NULL) {
- X509_STORE_CTX xsc;
-#if !defined(XMLSEC_OPENSSL_096) && !defined(XMLSEC_OPENSSL_097)
- X509_VERIFY_PARAM * vpm = NULL;
- unsigned long vpm_flags = 0;
-
- vpm = X509_VERIFY_PARAM_new();
- if(vpm == NULL) {
+ ret = X509_STORE_CTX_init(xsc, ctx->xst, cert, certs2);
+ if(ret != 1) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecKeyDataStoreGetName(store)),
- "X509_VERIFY_PARAM_new",
+ "X509_STORE_CTX_init",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
goto done;
}
- vpm_flags = vpm->flags;
-/*
- vpm_flags &= (~X509_V_FLAG_X509_STRICT);
-*/
- vpm_flags &= (~X509_V_FLAG_CRL_CHECK);
- X509_VERIFY_PARAM_set_depth(vpm, 9);
- X509_VERIFY_PARAM_set_flags(vpm, vpm_flags);
-#endif /* !defined(XMLSEC_OPENSSL_096) && !defined(XMLSEC_OPENSSL_097) */
+ if(keyInfoCtx->certsVerificationTime > 0) {
+ X509_STORE_CTX_set_time(xsc, 0, keyInfoCtx->certsVerificationTime);
+ }
+ {
+ X509_VERIFY_PARAM * vpm = NULL;
+ unsigned long vpm_flags = 0;
- X509_STORE_CTX_init (&xsc, ctx->xst, cert, certs2);
+ vpm = X509_VERIFY_PARAM_new();
+ if(vpm == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecKeyDataStoreGetName(store)),
+ "X509_VERIFY_PARAM_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto done;
+ }
+ vpm_flags = X509_VERIFY_PARAM_get_flags(vpm);
+ vpm_flags &= (~X509_V_FLAG_CRL_CHECK);
- if(keyInfoCtx->certsVerificationTime > 0) {
-#if !defined(XMLSEC_OPENSSL_096) && !defined(XMLSEC_OPENSSL_097)
- vpm_flags |= X509_V_FLAG_USE_CHECK_TIME;
- X509_VERIFY_PARAM_set_time(vpm, keyInfoCtx->certsVerificationTime);
-#endif /* !defined(XMLSEC_OPENSSL_096) && !defined(XMLSEC_OPENSSL_097) */
- X509_STORE_CTX_set_time(&xsc, 0, keyInfoCtx->certsVerificationTime);
- }
+ if(keyInfoCtx->certsVerificationTime > 0) {
+ vpm_flags |= X509_V_FLAG_USE_CHECK_TIME;
+ X509_VERIFY_PARAM_set_time(vpm, keyInfoCtx->certsVerificationTime);
+ }
-#if !defined(XMLSEC_OPENSSL_096) && !defined(XMLSEC_OPENSSL_097)
- X509_STORE_CTX_set0_param(&xsc, vpm);
-#endif /* !defined(XMLSEC_OPENSSL_096) && !defined(XMLSEC_OPENSSL_097) */
+ X509_VERIFY_PARAM_set_depth(vpm, keyInfoCtx->certsVerificationDepth);
+ X509_VERIFY_PARAM_set_flags(vpm, vpm_flags);
+ X509_STORE_CTX_set0_param(xsc, vpm);
+ }
- ret = X509_verify_cert(&xsc);
- err_cert = X509_STORE_CTX_get_current_cert(&xsc);
- err = X509_STORE_CTX_get_error(&xsc);
- depth = X509_STORE_CTX_get_error_depth(&xsc);
+ ret = X509_verify_cert(xsc);
+ err_cert = X509_STORE_CTX_get_current_cert(xsc);
+ err = X509_STORE_CTX_get_error(xsc);
- X509_STORE_CTX_cleanup (&xsc);
+ X509_STORE_CTX_cleanup (xsc);
if(ret == 1) {
res = cert;
@@ -421,6 +432,9 @@ done:
if(crls2 != NULL) {
sk_X509_CRL_free(crls2);
}
+ if(xsc != NULL) {
+ X509_STORE_CTX_free(xsc);
+ }
return(res);
}
@@ -684,7 +698,6 @@ xmlSecOpenSSLX509StoreInitialize(xmlSecKeyDataStorePtr store) {
return(-1);
}
-#if !defined(XMLSEC_OPENSSL_096) && !defined(XMLSEC_OPENSSL_097)
ctx->vpm = X509_VERIFY_PARAM_new();
if(ctx->vpm == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -697,9 +710,6 @@ xmlSecOpenSSLX509StoreInitialize(xmlSecKeyDataStorePtr store) {
X509_VERIFY_PARAM_set_depth(ctx->vpm, 9); /* the default cert verification path in openssl */
X509_STORE_set1_param(ctx->xst, ctx->vpm);
-#else /* !defined(XMLSEC_OPENSSL_096) && !defined(XMLSEC_OPENSSL_097) */
- ctx->xst->depth = 9; /* the default cert verification path in openssl */
-#endif /* !defined(XMLSEC_OPENSSL_096) && !defined(XMLSEC_OPENSSL_097) */
return(0);
}
@@ -722,11 +732,9 @@ xmlSecOpenSSLX509StoreFinalize(xmlSecKeyDataStorePtr store) {
if(ctx->crls != NULL) {
sk_X509_CRL_pop_free(ctx->crls, X509_CRL_free);
}
-#if !defined(XMLSEC_OPENSSL_096) && !defined(XMLSEC_OPENSSL_097)
if(ctx->vpm != NULL) {
X509_VERIFY_PARAM_free(ctx->vpm);
}
-#endif /* !defined(XMLSEC_OPENSSL_096) && !defined(XMLSEC_OPENSSL_097) */
memset(ctx, 0, sizeof(xmlSecOpenSSLX509StoreCtx));
}
@@ -739,34 +747,60 @@ xmlSecOpenSSLX509StoreFinalize(xmlSecKeyDataStorePtr store) {
*****************************************************************************/
static int
xmlSecOpenSSLX509VerifyCRL(X509_STORE* xst, X509_CRL *crl ) {
- X509_STORE_CTX xsc;
- X509_OBJECT xobj;
- EVP_PKEY *pkey;
+ X509_STORE_CTX *xsc = NULL;
+ X509_OBJECT *xobj = NULL;
+ EVP_PKEY *pkey = NULL;
int ret;
xmlSecAssert2(xst != NULL, -1);
xmlSecAssert2(crl != NULL, -1);
- X509_STORE_CTX_init(&xsc, xst, NULL, NULL);
- ret = X509_STORE_get_by_subject(&xsc, X509_LU_X509,
- X509_CRL_get_issuer(crl), &xobj);
+ xsc = X509_STORE_CTX_new();
+ if(xsc == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "X509_STORE_CTX_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto err;
+ }
+ xobj = X509_OBJECT_new();
+ if(xobj == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "X509_OBJECT_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto err;
+ }
+
+ ret = X509_STORE_CTX_init(xsc, xst, NULL, NULL);
+ if(ret != 1) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "X509_STORE_CTX_init",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ goto err;
+ }
+ ret = X509_STORE_get_by_subject(xsc, X509_LU_X509,
+ X509_CRL_get_issuer(crl), xobj);
if(ret <= 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
"X509_STORE_get_by_subject",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
+ goto err;
}
- pkey = X509_get_pubkey(xobj.data.x509);
- X509_OBJECT_free_contents(&xobj);
+ pkey = X509_get_pubkey(X509_OBJECT_get0_X509(xobj));
if(pkey == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
"X509_get_pubkey",
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
+ goto err;
}
ret = X509_CRL_verify(crl, pkey);
EVP_PKEY_free(pkey);
@@ -777,8 +811,14 @@ xmlSecOpenSSLX509VerifyCRL(X509_STORE* xst, X509_CRL *crl ) {
XMLSEC_ERRORS_R_CRYPTO_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
}
- X509_STORE_CTX_cleanup (&xsc);
+ X509_STORE_CTX_free(xsc);
+ X509_OBJECT_free(xobj);
return((ret == 1) ? 1 : 0);
+
+err:
+ X509_STORE_CTX_free(xsc);
+ X509_OBJECT_free(xobj);
+ return(-1);
}
static X509*
@@ -906,10 +946,10 @@ xmlSecOpenSSLX509FindCert(STACK_OF(X509) *certs, xmlChar *subjectName,
keyId = X509V3_EXT_d2i(ext);
if((keyId != NULL) && (keyId->length == len) &&
(memcmp(keyId->data, ski, len) == 0)) {
- M_ASN1_OCTET_STRING_free(keyId);
+ ASN1_OCTET_STRING_free(keyId);
return(cert);
}
- M_ASN1_OCTET_STRING_free(keyId);
+ ASN1_OCTET_STRING_free(keyId);
}
}
}
@@ -971,7 +1011,7 @@ xmlSecOpenSSLX509VerifyCertAgainstCrls(STACK_OF(X509_CRL) *crls, X509* cert) {
/*
* Check date of CRL to make sure it's not expired
*/
- ret = X509_cmp_current_time(X509_CRL_get_nextUpdate(crl));
+ ret = X509_cmp_current_time(X509_CRL_get0_nextUpdate(crl));
if (ret == 0) {
/* crl expired */
return(1);
@@ -983,7 +1023,7 @@ xmlSecOpenSSLX509VerifyCertAgainstCrls(STACK_OF(X509_CRL) *crls, X509* cert) {
n = sk_X509_REVOKED_num(X509_CRL_get_REVOKED(crl));
for (i = 0; i < n; i++) {
revoked = sk_X509_REVOKED_value(X509_CRL_get_REVOKED(crl), i);
- if (ASN1_INTEGER_cmp(revoked->serialNumber, X509_get_serialNumber(cert)) == 0) {
+ if (ASN1_INTEGER_cmp(X509_REVOKED_get0_serialNumber(revoked), X509_get_serialNumber(cert)) == 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
NULL,
@@ -1171,21 +1211,47 @@ xmlSecOpenSSLX509NameStringRead(xmlSecByte **str, int *strLen,
return((ingoreTrailingSpaces) ? nonSpace - res + 1 : q - res);
}
+/**
+ * This function DOES NOT create duplicates for X509_NAME_ENTRY objects!
+ */
+static STACK_OF(X509_NAME_ENTRY)*
+xmlSecOpenSSLX509_NAME_ENTRIES_copy(X509_NAME * a) {
+ STACK_OF(X509_NAME_ENTRY) * res = NULL;
+ int ii;
+
+ res = sk_X509_NAME_ENTRY_new(xmlSecOpenSSLX509_NAME_ENTRY_cmp);
+ if(res == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "sk_X509_NAME_ENTRY_new",
+ XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(NULL);
+ }
+
+ for (ii = X509_NAME_entry_count(a) - 1; ii >= 0; --ii) {
+ sk_X509_NAME_ENTRY_push(res, X509_NAME_get_entry(a, ii));
+ }
+
+ return (res);
+}
+
static
-int xmlSecOpenSSLX509_NAME_cmp(const X509_NAME * a, const X509_NAME * b) {
- int i,ret;
- const X509_NAME_ENTRY *na,*nb;
+int xmlSecOpenSSLX509_NAME_ENTRIES_cmp(STACK_OF(X509_NAME_ENTRY)* a, STACK_OF(X509_NAME_ENTRY)* b) {
+ const X509_NAME_ENTRY *na;
+ const X509_NAME_ENTRY *nb;
+ int ii, ret;
xmlSecAssert2(a != NULL, -1);
xmlSecAssert2(b != NULL, 1);
- if (sk_X509_NAME_ENTRY_num(a->entries) != sk_X509_NAME_ENTRY_num(b->entries)) {
- return sk_X509_NAME_ENTRY_num(a->entries) - sk_X509_NAME_ENTRY_num(b->entries);
+ if (sk_X509_NAME_ENTRY_num(a) != sk_X509_NAME_ENTRY_num(b)) {
+ return sk_X509_NAME_ENTRY_num(a) - sk_X509_NAME_ENTRY_num(b);
}
- for (i=sk_X509_NAME_ENTRY_num(a->entries)-1; i>=0; i--) {
- na=sk_X509_NAME_ENTRY_value(a->entries,i);
- nb=sk_X509_NAME_ENTRY_value(b->entries,i);
+ for (ii = sk_X509_NAME_ENTRY_num(a) - 1; ii >= 0; --ii) {
+ na = sk_X509_NAME_ENTRY_value(a, ii);
+ nb = sk_X509_NAME_ENTRY_value(b, ii);
ret = xmlSecOpenSSLX509_NAME_ENTRY_cmp(&na, &nb);
if(ret != 0) {
@@ -1205,49 +1271,53 @@ int xmlSecOpenSSLX509_NAME_cmp(const X509_NAME * a, const X509_NAME * b) {
*/
static int
xmlSecOpenSSLX509NamesCompare(X509_NAME *a, X509_NAME *b) {
- X509_NAME *a1 = NULL;
- X509_NAME *b1 = NULL;
+ STACK_OF(X509_NAME_ENTRY) *a1 = NULL;
+ STACK_OF(X509_NAME_ENTRY) *b1 = NULL;
int ret;
xmlSecAssert2(a != NULL, -1);
xmlSecAssert2(b != NULL, 1);
- a1 = X509_NAME_dup(a);
+ a1 = xmlSecOpenSSLX509_NAME_ENTRIES_copy(a);
if(a1 == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "X509_NAME_dup",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ "xmlSecOpenSSLX509_NAME_ENTRIES_copy",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
- b1 = X509_NAME_dup(b);
+ b1 = xmlSecOpenSSLX509_NAME_ENTRIES_copy(b);
if(b1 == NULL) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
- "X509_NAME_dup",
- XMLSEC_ERRORS_R_CRYPTO_FAILED,
+ "xmlSecOpenSSLX509_NAME_ENTRIES_copy",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
+ sk_X509_NAME_ENTRY_free(a1);
return(1);
}
/* sort both */
- (void)sk_X509_NAME_ENTRY_set_cmp_func(a1->entries, xmlSecOpenSSLX509_NAME_ENTRY_cmp);
- sk_X509_NAME_ENTRY_sort(a1->entries);
- (void)sk_X509_NAME_ENTRY_set_cmp_func(b1->entries, xmlSecOpenSSLX509_NAME_ENTRY_cmp);
- sk_X509_NAME_ENTRY_sort(b1->entries);
+ (void)sk_X509_NAME_ENTRY_set_cmp_func(a1, xmlSecOpenSSLX509_NAME_ENTRY_cmp);
+ sk_X509_NAME_ENTRY_sort(a1);
+ (void)sk_X509_NAME_ENTRY_set_cmp_func(b1, xmlSecOpenSSLX509_NAME_ENTRY_cmp);
+ sk_X509_NAME_ENTRY_sort(b1);
/* actually compare */
- ret = xmlSecOpenSSLX509_NAME_cmp(a1, b1);
+ ret = xmlSecOpenSSLX509_NAME_ENTRIES_cmp(a1, b1);
/* cleanup */
- X509_NAME_free(a1);
- X509_NAME_free(b1);
+ sk_X509_NAME_ENTRY_free(a1);
+ sk_X509_NAME_ENTRY_free(b1);
return(ret);
}
static int
xmlSecOpenSSLX509_NAME_ENTRY_cmp(const X509_NAME_ENTRY * const *a, const X509_NAME_ENTRY * const *b) {
+ ASN1_STRING *a_value, *b_value;
+ ASN1_OBJECT *a_name, *b_name;
+ int a_len, b_len;
int ret;
xmlSecAssert2(a != NULL, -1);
@@ -1255,27 +1325,46 @@ xmlSecOpenSSLX509_NAME_ENTRY_cmp(const X509_NAME_ENTRY * const *a, const X509_NA
xmlSecAssert2((*a) != NULL, -1);
xmlSecAssert2((*b) != NULL, 1);
+
/* first compare values */
- if(((*a)->value == NULL) && ((*b)->value != NULL)) {
+ a_value = X509_NAME_ENTRY_get_data((X509_NAME_ENTRY*)(*a));
+ b_value = X509_NAME_ENTRY_get_data((X509_NAME_ENTRY*)(*b));
+
+ if((a_value == NULL) && (b_value != NULL)) {
return(-1);
- } else if(((*a)->value != NULL) && ((*b)->value == NULL)) {
+ } else if((a_value != NULL) && (b_value == NULL)) {
return(1);
- } else if(((*a)->value == NULL) && ((*b)->value == NULL)) {
+ } else if((a_value == NULL) && (b_value == NULL)) {
return(0);
}
- ret = (*a)->value->length - (*b)->value->length;
+ a_len = ASN1_STRING_length(a_value);
+ b_len = ASN1_STRING_length(b_value);
+ ret = a_len - b_len;
if(ret != 0) {
return(ret);
}
- ret = memcmp((*a)->value->data, (*b)->value->data, (*a)->value->length);
- if(ret != 0) {
- return(ret);
+ if(a_len > 0) {
+ ret = memcmp(ASN1_STRING_get0_data(a_value), ASN1_STRING_get0_data(b_value), a_len);
+ if(ret != 0) {
+ return(ret);
+ }
}
/* next compare names */
- return(OBJ_cmp((*a)->object, (*b)->object));
+ a_name = X509_NAME_ENTRY_get_object((X509_NAME_ENTRY*)(*a));
+ b_name = X509_NAME_ENTRY_get_object((X509_NAME_ENTRY*)(*b));
+
+ if((a_name == NULL) && (b_name != NULL)) {
+ return(-1);
+ } else if((a_name != NULL) && (b_name == NULL)) {
+ return(1);
+ } else if((a_name == NULL) && (b_name == NULL)) {
+ return(0);
+ }
+
+ return(OBJ_cmp(a_name, b_name));
}
diff --git a/src/parser.c b/src/parser.c
index 990ff98..969c3e4 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -159,7 +159,7 @@ xmlSecParserPushBin(xmlSecTransformPtr transform, const xmlSecByte* data,
/* required for c14n! */
ctx->parserCtx->loadsubset = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
ctx->parserCtx->replaceEntities = 1;
- ctx->parserCtx->options = XML_PARSE_NONET;
+ ctx->parserCtx->options = XML_PARSE_NONET;
transform->status = xmlSecTransformStatusWorking;
} else if(transform->status == xmlSecTransformStatusFinished) {
@@ -317,7 +317,7 @@ xmlSecParserPopXml(xmlSecTransformPtr transform, xmlSecNodeSetPtr* nodes,
}
ret = inputPush(ctxt, input);
- if(input == NULL) {
+ if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
"inputPush",
diff --git a/src/relationship.c b/src/relationship.c
new file mode 100644
index 0000000..d69c977
--- /dev/null
+++ b/src/relationship.c
@@ -0,0 +1,829 @@
+/**
+ * XML Security Library (http://www.aleksey.com/xmlsec).
+ *
+ * Relationship transform
+ *
+ * This is free software; see Copyright file in the source
+ * distribution for preciese wording.
+ *
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
+ */
+#include "globals.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <libxml/tree.h>
+#include <libxml/xpointer.h>
+#include <libxml/c14n.h>
+
+#include <xmlsec/xmlsec.h>
+#include <xmlsec/xmltree.h>
+#include <xmlsec/keys.h>
+#include <xmlsec/list.h>
+#include <xmlsec/transforms.h>
+#include <xmlsec/errors.h>
+
+
+/******************************************************************************
+ *
+ * Relationship transform
+ *
+ * http://standards.iso.org/ittf/PubliclyAvailableStandards/c061796_ISO_IEC_29500-2_2012.zip
+ *
+ * 13.2.4.24 Relationships Transform Algorithm
+ *
+ * The relationships transform takes the XML document from the Relationships part and converts
+ * it to another XML document.
+ *
+ * The package implementer might create relationships XML that contains content from several namespaces,
+ * along with versioning instructions as defined in Part 3, “Markup Compatibility and Extensibility”. [O6.11]
+ *
+ * The relationships transform algorithm is as follows:
+ *
+ * Step 1: Process versioning instructions
+ * 1. The package implementer shall process the versioning instructions, considering that the only
+ * known namespace is the Relationships namespace.
+ * 2. The package implementer shall remove all ignorable content, ignoring preservation attributes.
+ * 3. The package implementer shall remove all versioning instructions.
+ *
+ * Step 2: Sort and filter relationships
+ * 1. The package implementer shall remove all namespace declarations except the Relationships
+ * namespace declaration.
+ * 2. The package implementer shall remove the Relationships namespace prefix, if it is present.
+ * 3. The package implementer shall sort relationship elements by Id value in lexicographical
+ * order, considering Id values as case-sensitive Unicode strings.
+ * 4. The package implementer shall remove all Relationship elements that do not have either an Id
+ * value that matches any SourceId value or a Type value that matches any SourceType value, among
+ * the SourceId and SourceType values specified in the transform definition. Producers and consumers
+ * shall compare values as case-sensitive Unicode strings. [M6.27] The resulting XML document holds
+ * all Relationship elements that either have an Id value that matches a SourceId value or a Type value
+ * that matches a SourceType value specified in the transform definition.
+ *
+ * Step 3: Prepare for canonicalization
+ * 1. The package implementer shall remove all characters between the Relationships start tag and
+ * the first Relationship start tag.
+ * 2. The package implementer shall remove any contents of the Relationship element.
+ * 3. The package implementer shall remove all characters between the last Relationship end tag and
+ * the Relationships end tag.
+ * 4. If there are no Relationship elements, the package implementer shall remove all characters
+ * between the Relationships start tag and the Relationships end tag.
+ * 5. The package implementer shall remove comments from the Relationships XML content.
+ * 6. The package implementer shall add a TargetMode attribute with its default value, if this
+ * optional attribute is missing from the Relationship element.
+ * 7. The package implementer can generate Relationship elements as start-tag/end-tag pairs with
+ * empty content, or as empty elements. A canonicalization transform, applied immediately after the
+ * Relationships Transform, converts all XML elements into start-tag/end-tag pairs.
+ *
+ *
+ * IMPLEMENTATION NOTES (https://github.com/lsh123/xmlsec/pull/24):
+ *
+ * * We don't simply manipulate the XML tree, but do an XML tree -> output bytes transformation,
+ * so e.g. because we never write characters inside XML elements, we implicitly remove all character
+ * contents, as required by step 3, point 1. It also simplifies the task of the situation that
+ * realistically the input of the transformation is always a document that conforms to the OOXML
+ * relationships XML schema, so in practice it'll never happen that the input document has e.g.
+ * characters, as the schema requires that the document has only XML elements and attributes,
+ * but no characters.
+ *
+ * * Step 2, point 4 talks about a SourceType value, but given that neither Microsoft Office, nor LibreOffice
+ * writes that theoretical attribute, the implementation doesn't handle it. If there is a real-world situation
+ * when there will be such an input, then it'll be easy to add support for that. But I didn't want to clutter
+ * the current implementation with details that doesn't seem to be used in practice
+ *
+ *****************************************************************************/
+typedef struct _xmlSecRelationshipCtx xmlSecRelationshipCtx,
+ *xmlSecRelationshipCtxPtr;
+struct _xmlSecRelationshipCtx {
+ xmlSecPtrListPtr sourceIdList;
+};
+#define xmlSecRelationshipSize \
+ (sizeof(xmlSecTransform) + sizeof(xmlSecRelationshipCtx))
+#define xmlSecRelationshipGetCtx(transform) \
+ ((xmlSecRelationshipCtxPtr)(((xmlSecByte*)(transform)) + sizeof(xmlSecTransform)))
+
+static int xmlSecRelationshipInitialize (xmlSecTransformPtr transform);
+static void xmlSecRelationshipFinalize (xmlSecTransformPtr transform);
+static int xmlSecTransformRelationshipPopBin (xmlSecTransformPtr transform,
+ xmlSecByte* data,
+ xmlSecSize maxDataSize,
+ xmlSecSize* dataSize,
+ xmlSecTransformCtxPtr transformCtx);
+static int xmlSecTransformRelationshipPushXml(xmlSecTransformPtr transform,
+ xmlSecNodeSetPtr nodes,
+ xmlSecTransformCtxPtr transformCtx);
+static int xmlSecRelationshipReadNode (xmlSecTransformPtr transform,
+ xmlNodePtr node,
+ xmlSecTransformCtxPtr transformCtx);
+
+static int xmlSecTransformRelationshipProcessElementNode(xmlSecTransformPtr transform,
+ xmlOutputBufferPtr buf,
+ xmlNodePtr cur);
+
+
+static xmlSecTransformKlass xmlSecRelationshipKlass = {
+ /* klass/object sizes */
+ sizeof(xmlSecTransformKlass), /* xmlSecSize klassSize */
+ xmlSecRelationshipSize, /* xmlSecSize objSize */
+
+ xmlSecNameRelationship, /* const xmlChar* name; */
+ xmlSecHrefRelationship, /* const xmlChar* href; */
+ xmlSecTransformUsageDSigTransform, /* xmlSecTransformUsage usage; */
+
+ xmlSecRelationshipInitialize, /* xmlSecTransformInitializeMethod initialize; */
+ xmlSecRelationshipFinalize, /* xmlSecTransformFinalizeMethod finalize; */
+ xmlSecRelationshipReadNode, /* xmlSecTransformNodeReadMethod readNode; */
+ NULL, /* xmlSecTransformNodeWriteMethod writeNode; */
+ NULL, /* xmlSecTransformSetKeyReqMethod setKeyReq; */
+ NULL, /* xmlSecTransformSetKeyMethod setKey; */
+ NULL, /* xmlSecTransformValidateMethod validate; */
+ xmlSecTransformDefaultGetDataType, /* xmlSecTransformGetDataTypeMethod getDataType; */
+ NULL, /* xmlSecTransformPushBinMethod pushBin; */
+ xmlSecTransformRelationshipPopBin, /* xmlSecTransformPopBinMethod popBin; */
+ xmlSecTransformRelationshipPushXml, /* xmlSecTransformPushXmlMethod pushXml; */
+ NULL, /* xmlSecTransformPopXmlMethod popXml; */
+ NULL, /* xmlSecTransformExecuteMethod execute; */
+
+ NULL, /* void* reserved0; */
+ NULL, /* void* reserved1; */
+};
+
+xmlSecTransformId
+xmlSecTransformRelationshipGetKlass(void) {
+ return(&xmlSecRelationshipKlass);
+}
+
+static int
+xmlSecRelationshipInitialize(xmlSecTransformPtr transform) {
+ xmlSecRelationshipCtxPtr ctx;
+
+ xmlSecAssert2(xmlSecTransformCheckId(transform, xmlSecTransformRelationshipId), -1);
+ xmlSecAssert2(xmlSecTransformCheckSize(transform, xmlSecRelationshipSize), -1);
+
+ ctx = xmlSecRelationshipGetCtx(transform);
+ xmlSecAssert2(ctx != NULL, -1);
+
+ /* initialize context */
+ memset(ctx, 0, sizeof(xmlSecRelationshipCtx));
+
+ ctx->sourceIdList = xmlSecPtrListCreate(xmlSecStringListId);
+ if(ctx->sourceIdList == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecPtrListCreate",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ return(0);
+}
+
+static void
+xmlSecRelationshipFinalize(xmlSecTransformPtr transform) {
+ xmlSecRelationshipCtxPtr ctx;
+
+ xmlSecAssert(xmlSecTransformCheckId(transform, xmlSecTransformRelationshipId));
+ xmlSecAssert(xmlSecTransformCheckSize(transform, xmlSecRelationshipSize));
+
+ ctx = xmlSecRelationshipGetCtx(transform);
+ xmlSecAssert(ctx != NULL);
+
+ if(ctx->sourceIdList != NULL) {
+ xmlSecPtrListDestroy(ctx->sourceIdList);
+ }
+
+ memset(ctx, 0, sizeof(xmlSecRelationshipCtx));
+}
+
+static int
+xmlSecRelationshipReadNode(xmlSecTransformPtr transform, xmlNodePtr node, xmlSecTransformCtxPtr transformCtx) {
+ xmlSecRelationshipCtxPtr ctx;
+ xmlNodePtr cur;
+ int ret;
+
+ xmlSecAssert2(xmlSecTransformCheckId(transform, xmlSecTransformRelationshipId), -1);
+ xmlSecAssert2(xmlSecTransformCheckSize(transform, xmlSecRelationshipSize), -1);
+ xmlSecAssert2(node != NULL, -1);
+ xmlSecAssert2(transformCtx != NULL, -1);
+ ctx = xmlSecRelationshipGetCtx(transform);
+ xmlSecAssert2(ctx != NULL, -1);
+
+ cur = node->children;
+ while(cur != NULL) {
+ if(xmlSecCheckNodeName(cur, xmlSecNodeRelationshipReference, xmlSecRelationshipReferenceNs)) {
+ xmlChar* sourceId;
+
+ sourceId = xmlGetProp(cur, xmlSecRelationshipAttrSourceId);
+ if(sourceId == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ "xmlGetProp",
+ xmlSecErrorsSafeString(xmlSecRelationshipAttrSourceId),
+ XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE,
+ "node=%s",
+ xmlSecErrorsSafeString(xmlSecNodeGetName(node)));
+ return(-1);
+ }
+
+ ret = xmlSecPtrListAdd(ctx->sourceIdList, sourceId);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecPtrListAdd",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ xmlFree(sourceId);
+ return(-1);
+ }
+ }
+
+ cur = cur->next;
+ }
+
+ return(0);
+}
+
+/* Sorts Relationship elements by Id value in lexicographical order. */
+static int
+xmlSecTransformRelationshipCompare(xmlNodePtr node1, xmlNodePtr node2) {
+ xmlChar* id1 = NULL;
+ xmlChar* id2 = NULL;
+ int ret;
+
+ if(node1 == node2) {
+ return(0);
+ }
+ if(node1 == NULL) {
+ return(-1);
+ }
+ if(node2 == NULL) {
+ return(1);
+ }
+
+ id1 = xmlGetProp(node1, xmlSecRelationshipAttrId);
+ id2 = xmlGetProp(node2, xmlSecRelationshipAttrId);
+ if(id1 == NULL) {
+ ret = -1;
+ goto done;
+ }
+ if(id2 == NULL) {
+ ret = 1;
+ goto done;
+ }
+
+ ret = xmlStrcmp(id1, id2);
+
+done:
+ if (id1 != NULL) {
+ xmlFree(id1);
+ }
+ if (id2 != NULL) {
+ xmlFree(id2);
+ }
+
+ return ret;
+}
+
+/**
+ * This is step 2, point 4: if the input sourceId list doesn't contain the Id attribute of the current node,
+ * then exclude it from the output, instead of processing it.
+ */
+static int
+xmlSecTransformRelationshipProcessNode(xmlSecTransformPtr transform, xmlOutputBufferPtr buf, xmlNodePtr cur) {
+ int found = -1;
+ xmlSecRelationshipCtxPtr ctx;
+ xmlSecSize ii;
+ int ret;
+
+ xmlSecAssert2(transform != NULL, -1);
+ xmlSecAssert2(buf != NULL, -1);
+ xmlSecAssert2(cur != NULL, -1);
+
+ if(xmlSecCheckNodeName(cur, xmlSecNodeRelationship, xmlSecRelationshipsNs)) {
+ xmlChar* id = xmlGetProp(cur, xmlSecRelationshipAttrId);
+ if(id == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlGetProp(xmlSecRelationshipAttrId)",
+ XMLSEC_ERRORS_R_XML_FAILED,
+ "name=Id");
+ return(-1);
+ }
+
+ ctx = xmlSecRelationshipGetCtx(transform);
+ for(ii = 0; ii < xmlSecPtrListGetSize(ctx->sourceIdList); ++ii) {
+ if(xmlStrcmp(xmlSecPtrListGetItem(ctx->sourceIdList, ii), id) == 0) {
+ found = 1;
+ break;
+ }
+ }
+
+ xmlFree(id);
+
+ if(found < 0) {
+ return(0);
+ }
+ }
+
+ ret = xmlSecTransformRelationshipProcessElementNode(transform, buf, cur);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecTransformRelationshipProcessElementNode",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ return(0);
+}
+
+/**
+ * This is step 2, point 3: sort elements by Id: we process other elements as-is, but for elements we collect them in a list,
+ * then sort, and finally process them (process the head of the list, then pop the head, till the list becomes empty).
+ */
+static int
+xmlSecTransformRelationshipProcessNodeList(xmlSecTransformPtr transform, xmlOutputBufferPtr buf, xmlNodePtr cur) {
+ xmlListPtr list;
+ int ret;
+
+ xmlSecAssert2(transform != NULL, -1);
+ xmlSecAssert2(buf != NULL, -1);
+ xmlSecAssert2(cur != NULL, -1);
+
+ list = xmlListCreate(NULL, (xmlListDataCompare)xmlSecTransformRelationshipCompare);
+ if(list == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlListCreate",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ for(; cur; cur = cur->next) {
+ if(xmlStrcmp(cur->name, xmlSecNodeRelationship) == 0) {
+ if(xmlListInsert(list, cur) != 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlListInsert",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ } else {
+ ret = xmlSecTransformRelationshipProcessNode(transform, buf, cur);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecTransformRelationshipProcessNode",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ xmlListDelete(list);
+ return(-1);
+ }
+ }
+ }
+
+ xmlListSort(list);
+
+ while(!xmlListEmpty(list)) {
+ xmlLinkPtr link = xmlListFront(list);
+ xmlNodePtr node = (xmlNodePtr)xmlLinkGetData(link);
+
+ ret = xmlSecTransformRelationshipProcessNode(transform, buf, node);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecTransformRelationshipProcessNode",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ xmlListDelete(list);
+ return(-1);
+ }
+
+ xmlListPopFront(list);
+ }
+
+ /* done */
+ xmlListDelete(list);
+ return(0);
+}
+
+static int
+xmlSecTransformRelationshipWriteProp(xmlOutputBufferPtr buf, const xmlChar * name, const xmlChar * value) {
+ int ret;
+
+ xmlSecAssert2(buf != NULL, -1);
+ xmlSecAssert2(name != NULL, -1);
+
+ ret = xmlOutputBufferWriteString(buf, " ");
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlOutputBufferWriteString",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ ret = xmlOutputBufferWriteString(buf, (const char*) name);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlOutputBufferWriteString",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ if(value != NULL) {
+ ret = xmlOutputBufferWriteString(buf, "=\"");
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlOutputBufferWriteString",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ ret = xmlOutputBufferWriteString(buf, (const char*) value);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlOutputBufferWriteString",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ ret = xmlOutputBufferWriteString(buf, "\"");
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlOutputBufferWriteString",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ }
+
+ return (0);
+}
+
+static int
+xmlSecTransformRelationshipWriteNs(xmlOutputBufferPtr buf, const xmlChar * href) {
+ xmlSecAssert2(buf != NULL, -1);
+
+ return(xmlSecTransformRelationshipWriteProp(buf, BAD_CAST "xmlns", (href != NULL) ? href : BAD_CAST ""));
+}
+
+
+static int
+xmlSecTransformRelationshipProcessElementNode(xmlSecTransformPtr transform, xmlOutputBufferPtr buf, xmlNodePtr cur) {
+ xmlAttrPtr attr;
+ int foundTargetMode = 0;
+ int ret;
+
+ xmlSecAssert2(transform != NULL, -1);
+ xmlSecAssert2(buf != NULL, -1);
+ xmlSecAssert2(cur != NULL, -1);
+ xmlSecAssert2(cur->name != NULL, -1);
+
+ /* write open node */
+ ret = xmlOutputBufferWriteString(buf, "<");
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlOutputBufferWriteString",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ ret = xmlOutputBufferWriteString(buf, (const char *)cur->name);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlOutputBufferWriteString",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ /* write namespaces */
+ if(cur->nsDef != NULL) {
+ ret = xmlSecTransformRelationshipWriteNs(buf, cur->nsDef->href);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecTransformRelationshipWriteNs",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ }
+
+ /**
+ * write attributes:
+ *
+ * This is step 3, point 6: add default value of TargetMode if there is no such attribute.
+ */
+ for(attr = cur->properties; attr != NULL; attr = attr->next) {
+ xmlChar * value = xmlGetProp(cur, attr->name);
+
+ if(xmlStrcmp(attr->name, xmlSecRelationshipAttrTargetMode) == 0) {
+ foundTargetMode = 1;
+ }
+
+ ret = xmlSecTransformRelationshipWriteProp(buf, attr->name, value);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecTransformRelationshipWriteProp",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ xmlFree(value);
+ return(-1);
+ }
+
+ xmlFree(value);
+ }
+
+ /* write TargetMode */
+ if(xmlStrcmp(cur->name, xmlSecNodeRelationship) == 0 && !foundTargetMode) {
+ ret = xmlSecTransformRelationshipWriteProp(buf, xmlSecRelationshipAttrTargetMode, BAD_CAST "Internal");
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecTransformRelationshipWriteProp(TargetMode=Internal)",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ }
+
+ /* finish writing open node */
+ ret = xmlOutputBufferWriteString(buf, ">");
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlOutputBufferWriteString",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ /* write children */
+ if(cur->children != NULL) {
+ ret = xmlSecTransformRelationshipProcessNodeList(transform, buf, cur->children);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecTransformRelationshipProcessNodeList",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ }
+
+ /* write closing node */
+ ret = xmlOutputBufferWriteString(buf, "</");
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlOutputBufferWriteString",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ ret = xmlOutputBufferWriteString(buf, (const char *)cur->name);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlOutputBufferWriteString",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ if(xmlOutputBufferWriteString(buf, ">") < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlOutputBufferWriteString",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ /* done */
+ return(0);
+}
+
+static int
+xmlSecTransformRelationshipExecute(xmlSecTransformPtr transform, xmlOutputBufferPtr buf, xmlDocPtr doc) {
+ int ret;
+
+ xmlSecAssert2(transform != NULL, -1);
+ xmlSecAssert2(buf != NULL, -1);
+ xmlSecAssert2(doc != NULL, -1);
+
+ if(doc->children != NULL) {
+ ret = xmlSecTransformRelationshipProcessNodeList(transform, buf, doc->children);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecTransformRelationshipProcessNodeList",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ }
+
+ return(0);
+}
+
+static int
+xmlSecTransformRelationshipPushXml(xmlSecTransformPtr transform, xmlSecNodeSetPtr nodes, xmlSecTransformCtxPtr transformCtx)
+{
+ xmlOutputBufferPtr buf;
+ xmlSecRelationshipCtxPtr ctx;
+ int ret;
+
+ xmlSecAssert2(nodes != NULL, -1);
+ xmlSecAssert2(nodes->doc != NULL, -1);
+ xmlSecAssert2(transformCtx != NULL, -1);
+
+ ctx = xmlSecRelationshipGetCtx(transform);
+ xmlSecAssert2(ctx != NULL, -1);
+
+ /* check/update current transform status */
+ switch(transform->status) {
+ case xmlSecTransformStatusNone:
+ transform->status = xmlSecTransformStatusWorking;
+ break;
+ case xmlSecTransformStatusWorking:
+ case xmlSecTransformStatusFinished:
+ return(0);
+ default:
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ NULL,
+ XMLSEC_ERRORS_R_INVALID_STATUS,
+ "status=%d", transform->status);
+ return(-1);
+ }
+ xmlSecAssert2(transform->status == xmlSecTransformStatusWorking, -1);
+
+ /* prepare output buffer: next transform or ourselves */
+ if(transform->next != NULL) {
+ buf = xmlSecTransformCreateOutputBuffer(transform->next, transformCtx);
+ if(buf == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecTransformCreateOutputBuffer",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ } else {
+ buf = xmlSecBufferCreateOutputBuffer(&(transform->outBuf));
+ if(buf == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecBufferCreateOutputBuffer",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ }
+
+ ret = xmlSecTransformRelationshipExecute(transform, buf, nodes->doc);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlC14NExecute",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ xmlOutputBufferClose(buf);
+ return(-1);
+ }
+
+ ret = xmlOutputBufferClose(buf);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlOutputBufferClose",
+ XMLSEC_ERRORS_R_XML_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ transform->status = xmlSecTransformStatusFinished;
+ return(0);
+}
+
+static int
+xmlSecTransformRelationshipPopBin(xmlSecTransformPtr transform, xmlSecByte* data, xmlSecSize maxDataSize, xmlSecSize* dataSize, xmlSecTransformCtxPtr transformCtx) {
+ xmlSecBufferPtr out;
+ int ret;
+
+ xmlSecAssert2(data != NULL, -1);
+ xmlSecAssert2(dataSize != NULL, -1);
+ xmlSecAssert2(transformCtx != NULL, -1);
+
+ out = &(transform->outBuf);
+ if(transform->status == xmlSecTransformStatusNone) {
+ xmlOutputBufferPtr buf;
+
+ xmlSecAssert2(transform->inNodes == NULL, -1);
+
+ if(transform->prev == NULL) {
+ (*dataSize) = 0;
+ transform->status = xmlSecTransformStatusFinished;
+ return(0);
+ }
+
+ /* get xml data from previous transform */
+ ret = xmlSecTransformPopXml(transform->prev, &(transform->inNodes), transformCtx);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecTransformPopXml",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ /* dump everything to internal buffer */
+ buf = xmlSecBufferCreateOutputBuffer(out);
+ if(buf == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecBufferCreateOutputBuffer",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ ret = xmlC14NExecute(transform->inNodes->doc, (xmlC14NIsVisibleCallback)xmlSecNodeSetContains, transform->inNodes, XML_C14N_1_0, NULL, 0, buf);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecTransformC14NExecute",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ xmlOutputBufferClose(buf);
+ return(-1);
+ }
+
+ ret = xmlOutputBufferClose(buf);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlOutputBufferClose",
+ XMLSEC_ERRORS_R_XML_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ transform->status = xmlSecTransformStatusWorking;
+ }
+
+ if(transform->status == xmlSecTransformStatusWorking) {
+ xmlSecSize outSize;
+
+ /* return chunk after chunk */
+ outSize = xmlSecBufferGetSize(out);
+ if(outSize > maxDataSize) {
+ outSize = maxDataSize;
+ }
+ if(outSize > XMLSEC_TRANSFORM_BINARY_CHUNK) {
+ outSize = XMLSEC_TRANSFORM_BINARY_CHUNK;
+ }
+ if(outSize > 0) {
+ xmlSecAssert2(xmlSecBufferGetData(out), -1);
+
+ memcpy(data, xmlSecBufferGetData(out), outSize);
+ ret = xmlSecBufferRemoveHead(out, outSize);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ "xmlSecBufferRemoveHead",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ "size=%d", outSize);
+ return(-1);
+ }
+ } else if(xmlSecBufferGetSize(out) == 0) {
+ transform->status = xmlSecTransformStatusFinished;
+ }
+ (*dataSize) = outSize;
+ } else if(transform->status == xmlSecTransformStatusFinished) {
+ /* the only way we can get here is if there is no output */
+ xmlSecAssert2(xmlSecBufferGetSize(out) == 0, -1);
+ (*dataSize) = 0;
+ } else {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ xmlSecErrorsSafeString(xmlSecTransformGetName(transform)),
+ NULL,
+ XMLSEC_ERRORS_R_INVALID_STATUS,
+ "status=%d", transform->status);
+ return(-1);
+ }
+
+ return(0);
+}
diff --git a/src/skeleton/app.c b/src/skeleton/app.c
index 15ba3cf..69c8330 100644
--- a/src/skeleton/app.c
+++ b/src/skeleton/app.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/skeleton/crypto.c b/src/skeleton/crypto.c
index 3be2064..0e372f1 100644
--- a/src/skeleton/crypto.c
+++ b/src/skeleton/crypto.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -74,6 +74,7 @@ xmlSecCryptoGetFunctions_skeleton(void) {
#ifndef XMLSEC_NO_GOST
gXmlSecSkeletonFunctions->keyDataGost2001GetKlass = xmlSecSkeletonKeyDataGost2001GetKlass;
+ gXmlSecSkeletonFunctions->keyDataGostR3410_2012GetKlass = xmlSecSkeletonKeyDataGostR3410_2012GetKlass;
#endif /* XMLSEC_NO_GOST */
#ifndef XMLSEC_NO_HMAC
@@ -161,10 +162,14 @@ xmlSecCryptoGetFunctions_skeleton(void) {
/******************************* GOST ********************************/
#ifndef XMLSEC_NO_GOST
gXmlSecSkeletonFunctions->transformGost2001GostR3411_94GetKlass = xmlSecSkeletonTransformGost2001GostR3411_94GetKlass;
+ gXmlSecSkeletonFunctions->transformGostR3410_2012GostR3411_2012_256GetKlass = xmlSecSkeletonTransformGostR3410_2012GostR3411_2012_256GetKlass;
+ gXmlSecSkeletonFunctions->transformGostR3410_2012GostR3411_2012_512GetKlass = xmlSecSkeletonTransformGostR3410_2012GostR3411_2012_512GetKlass;
#endif /* XMLSEC_GOST */
#ifndef XMLSEC_NO_GOST
gXmlSecSkeletonFunctions->transformGostR3411_94GetKlass = xmlSecSkeletonTransformGostR3411_94GetKlass;
+ gXmlSecSkeletonFunctions->transformGostR3411_2012_256GetKlass = xmlSecSkeletonTransformGostR3411_2012_256GetKlass;
+ gXmlSecSkeletonFunctions->transformGostR3411_2012_512GetKlass = xmlSecSkeletonTransformGostR3411_2012_512GetKlass;
#endif /* XMLSEC_NO_GOST */
/******************************* HMAC ********************************/
diff --git a/src/skeleton/globals.h b/src/skeleton/globals.h
index 770b6db..065c3e8 100644
--- a/src/skeleton/globals.h
+++ b/src/skeleton/globals.h
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#ifndef __XMLSEC_GLOBALS_H__
#define __XMLSEC_GLOBALS_H__
diff --git a/src/strings.c b/src/strings.c
index f746f4d..8a62133 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -22,7 +22,6 @@
const xmlChar xmlSecNs[] = "http://www.aleksey.com/xmlsec/2002";
const xmlChar xmlSecDSigNs[] = "http://www.w3.org/2000/09/xmldsig#";
const xmlChar xmlSecEncNs[] = "http://www.w3.org/2001/04/xmlenc#";
-const xmlChar xmlSecXkmsNs[] = "http://www.w3.org/2002/03/xkms#";
const xmlChar xmlSecXPathNs[] = "http://www.w3.org/TR/1999/REC-xpath-19991116";
const xmlChar xmlSecXPath2Ns[] = "http://www.w3.org/2002/06/xmldsig-filter2";
const xmlChar xmlSecXPointerNs[] = "http://www.w3.org/2001/04/xmldsig-more/xptr";
@@ -68,126 +67,6 @@ const xmlChar xmlSecTypeEncElement[] = "http://www.w3.org/2001/04/xml
/*************************************************************************
*
- * XKMS Nodes
- *
- ************************************************************************/
-#ifndef XMLSEC_NO_XKMS
-const xmlChar xmlSecXkmsServerRequestResultName[] = "result-response";
-const xmlChar xmlSecXkmsServerRequestStatusName[] = "status-request";
-const xmlChar xmlSecXkmsServerRequestLocateName[] = "locate-request";
-const xmlChar xmlSecXkmsServerRequestValidateName[] = "validate-request";
-const xmlChar xmlSecXkmsServerRequestCompoundName[] = "compound-request";
-
-const xmlChar xmlSecNodeResult[] = "Result";
-const xmlChar xmlSecNodeStatusRequest[] = "StatusRequest";
-const xmlChar xmlSecNodeStatusResult[] = "StatusResult";
-const xmlChar xmlSecNodeLocateRequest[] = "LocateRequest";
-const xmlChar xmlSecNodeLocateResult[] = "LocateResult";
-const xmlChar xmlSecNodeValidateRequest[] = "ValidateRequest";
-const xmlChar xmlSecNodeValidateResult[] = "ValidateResult";
-const xmlChar xmlSecNodeCompoundRequest[] = "CompoundRequest";
-const xmlChar xmlSecNodeCompoundResult[] = "CompoundResult";
-
-const xmlChar xmlSecNodeMessageExtension[] = "MessageExtension";
-const xmlChar xmlSecNodeOpaqueClientData[] = "OpaqueClientData";
-const xmlChar xmlSecNodeResponseMechanism[] = "ResponseMechanism";
-const xmlChar xmlSecNodeRespondWith[] = "RespondWith";
-const xmlChar xmlSecNodePendingNotification[] = "PendingNotification";
-const xmlChar xmlSecNodeQueryKeyBinding[] = "QueryKeyBinding";
-const xmlChar xmlSecNodeKeyUsage[] = "KeyUsage";
-const xmlChar xmlSecNodeUseKeyWith[] = "UseKeyWith";
-const xmlChar xmlSecNodeTimeInstant[] = "TimeInstant";
-const xmlChar xmlSecNodeRequestSignatureValue[] = "RequestSignatureValue";
-const xmlChar xmlSecNodeUnverifiedKeyBinding[] = "UnverifiedKeyBinding";
-const xmlChar xmlSecNodeValidityInterval[] = "ValidityInterval";
-const xmlChar xmlSecNodeStatus[] = "Status";
-const xmlChar xmlSecNodeValidReason[] = "ValidReason";
-const xmlChar xmlSecNodeInvalidReason[] = "InvalidReason";
-const xmlChar xmlSecNodeIndeterminateReason[] = "IndeterminateReason";
-
-const xmlChar xmlSecAttrService[] = "Service";
-const xmlChar xmlSecAttrNonce[] = "Nonce";
-const xmlChar xmlSecAttrOriginalRequestId[] = "OriginalRequestId";
-const xmlChar xmlSecAttrResponseLimit[] = "ResponseLimit";
-const xmlChar xmlSecAttrMechanism[] = "Mechanism[";
-const xmlChar xmlSecAttrIdentifier[] = "Identifier";
-const xmlChar xmlSecAttrApplication[] = "Application";
-const xmlChar xmlSecAttrResultMajor[] = "ResultMajor";
-const xmlChar xmlSecAttrResultMinor[] = "ResultMinor";
-const xmlChar xmlSecAttrRequestId[] = "RequestId";
-const xmlChar xmlSecAttrNotBefore[] = "NotBefore";
-const xmlChar xmlSecAttrNotOnOrAfter[] = "NotOnOrAfter";
-const xmlChar xmlSecAttrTime[] = "Time";
-const xmlChar xmlSecAttrStatusValue[] = "StatusValue";
-
-const xmlChar xmlSecResponseMechanismPending[] = "Pending";
-const xmlChar xmlSecResponseMechanismRepresent[]= "Represent";
-const xmlChar xmlSecResponseMechanismRequestSignatureValue[] = "RequestSignatureValue";
-
-const xmlChar xmlSecRespondWithKeyName[] = "KeyName";
-const xmlChar xmlSecRespondWithKeyValue[] = "KeyValue";
-const xmlChar xmlSecRespondWithX509Cert[] = "X509Cert";
-const xmlChar xmlSecRespondWithX509Chain[] = "X509Chain";
-const xmlChar xmlSecRespondWithX509CRL[] = "X509CRL";
-const xmlChar xmlSecRespondWithOCSP[] = "OCSP";
-const xmlChar xmlSecRespondWithRetrievalMethod[]= "RetrievalMethod";
-const xmlChar xmlSecRespondWithPGP[] = "PGP";
-const xmlChar xmlSecRespondWithPGPWeb[] = "PGPWeb";
-const xmlChar xmlSecRespondWithSPKI[] = "SPKI";
-const xmlChar xmlSecRespondWithPrivateKey[] = "PrivateKey";
-
-const xmlChar xmlSecStatusResultSuccess[] = "Success";
-const xmlChar xmlSecStatusResultFailed[] = "Failed";
-const xmlChar xmlSecStatusResultPending[] = "Pending";
-
-const xmlChar xmlSecKeyUsageEncryption[] = "Encryption";
-const xmlChar xmlSecKeyUsageSignature[] = "Signature";
-const xmlChar xmlSecKeyUsageExchange[] = "Exchange";
-
-const xmlChar xmlSecKeyBindingStatusValid[] = "Valid";
-const xmlChar xmlSecKeyBindingStatusInvalid[] = "Invalid";
-const xmlChar xmlSecKeyBindingStatusIndeterminate[] = "Indeterminate";
-
-const xmlChar xmlSecKeyBindingReasonIssuerTrust[] = "IssuerTrust";
-const xmlChar xmlSecKeyBindingReasonRevocationStatus[] = "RevocationStatus";
-const xmlChar xmlSecKeyBindingReasonValidityInterval[] = "ValidityInterval";
-const xmlChar xmlSecKeyBindingReasonSignature[] = "Signature";
-
-const xmlChar xmlSecResultMajorCodeSuccess[] = "Success";
-const xmlChar xmlSecResultMajorCodeVersionMismatch[] = "VersionMismatch";
-const xmlChar xmlSecResultMajorCodeSender[] = "Sender";
-const xmlChar xmlSecResultMajorCodeReceiver[] = "Receiver";
-const xmlChar xmlSecResultMajorCodeRepresent[] = "Represent";
-const xmlChar xmlSecResultMajorCodePending[] = "Pending";
-
-const xmlChar xmlSecResultMinorCodeNoMatch[] = "NoMatch";
-const xmlChar xmlSecResultMinorCodeTooManyResponses[] = "TooManyResponses";
-const xmlChar xmlSecResultMinorCodeIncomplete[] = "Incomplete";
-const xmlChar xmlSecResultMinorCodeFailure[] = "Failure";
-const xmlChar xmlSecResultMinorCodeRefused[] = "Refused";
-const xmlChar xmlSecResultMinorCodeNoAuthentication[] = "NoAuthentication";
-const xmlChar xmlSecResultMinorCodeMessageNotSupported[]= "MessageNotSupported";
-const xmlChar xmlSecResultMinorCodeUnknownResponseId[] = "UnknownResponseId";
-const xmlChar xmlSecResultMinorCodeNotSynchronous[] = "NotSynchronous";
-
-const xmlChar xmlSecXkmsSoapSubcodeValueMessageNotSupported[] = "MessageNotSupported";
-const xmlChar xmlSecXkmsSoapSubcodeValueBadMessage[] = "BadMessage";
-
-const xmlChar xmlSecXkmsSoapFaultReasonLang[] = "en";
-const xmlChar xmlSecXkmsSoapFaultReasonUnsupportedVersion[] = "Unsupported SOAP version";
-const xmlChar xmlSecXkmsSoapFaultReasonUnableToProcess[] = "Unable to process %s";
-const xmlChar xmlSecXkmsSoapFaultReasonServiceUnavailable[] = "Service temporarily unable";
-const xmlChar xmlSecXkmsSoapFaultReasonMessageNotSupported[]= "%s message not supported";
-const xmlChar xmlSecXkmsSoapFaultReasonMessageInvalid[] = "%s message invalid";
-
-const xmlChar xmlSecXkmsFormatStrPlain[] = "plain";
-const xmlChar xmlSecXkmsFormatStrSoap11[] = "soap-1.1";
-const xmlChar xmlSecXkmsFormatStrSoap12[] = "soap-1.2";
-
-#endif /* XMLSEC_NO_XKMS */
-
-/*************************************************************************
- *
* KeyInfo Nodes
*
************************************************************************/
@@ -304,6 +183,26 @@ const xmlChar xmlSecHrefGost2001GostR3411_94[] = "http://www.w3.org/200
/*************************************************************************
*
+ * GOST R 34.10-2012 strings
+ *
+ ************************************************************************/
+const xmlChar xmlSecNameGostR3410_2012_256KeyValue[] = "gostr34102012-256";
+const xmlChar xmlSecNodeGostR3410_2012_256KeyValue[] = "gostr34102012-256";
+const xmlChar xmlSecHrefGostR3410_2012_256KeyValue[] = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-256";
+
+const xmlChar xmlSecNameGostR3410_2012_512KeyValue[] = "gostr34102012-512";
+const xmlChar xmlSecNodeGostR3410_2012_512KeyValue[] = "gostr34102012-512";
+const xmlChar xmlSecHrefGostR3410_2012_512KeyValue[] = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-512";
+
+/* see http://tools.ietf.org/html/draft-chudov-cryptopro-cpxmldsig-09#section-6.6 */
+const xmlChar xmlSecNameGostR3410_2012GostR3411_2012_256[] = "gostr34102012-gostr34112012-256";
+const xmlChar xmlSecHrefGostR3410_2012GostR3411_2012_256[] = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256";
+
+const xmlChar xmlSecNameGostR3410_2012GostR3411_2012_512[] = "gostr34102012-gostr34112012-512";
+const xmlChar xmlSecHrefGostR3410_2012GostR3411_2012_512[] = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512";
+
+/*************************************************************************
+ *
* DSA strings
*
************************************************************************/
@@ -504,6 +403,20 @@ const xmlChar xmlSecHrefGostR3411_94[] = "http://www.w3.org/200
/*************************************************************************
*
+ * GOST R 34.11-2012 strings
+ *
+ ************************************************************************/
+
+/* see http://tools.ietf.org/html/draft-chudov-cryptopro-cpxmldsig-09#section-6.2 */
+const xmlChar xmlSecNameGostR3411_2012_256[] = "gostr34112012-256";
+const xmlChar xmlSecHrefGostR3411_2012_256[] = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256";
+
+const xmlChar xmlSecNameGostR3411_2012_512[] = "gostr34112012-512";
+const xmlChar xmlSecHrefGostR3411_2012_512[] = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512";
+
+
+/*************************************************************************
+ *
* SHA1 strings
*
************************************************************************/
@@ -581,6 +494,21 @@ const xmlChar xmlSecNodeXPointer[] = "XPointer";
/*************************************************************************
*
+ * Relationship strings
+ *
+ ************************************************************************/
+const xmlChar xmlSecNameRelationship[] = "relationship";
+const xmlChar xmlSecHrefRelationship[] = "http://schemas.openxmlformats.org/package/2006/RelationshipTransform";
+const xmlChar xmlSecNodeRelationship[] = "Relationship";
+const xmlChar xmlSecNodeRelationshipReference[] = "RelationshipReference";
+const xmlChar xmlSecRelationshipsNs[] = "http://schemas.openxmlformats.org/package/2006/relationships";
+const xmlChar xmlSecRelationshipReferenceNs[] = "http://schemas.openxmlformats.org/package/2006/digital-signature";
+const xmlChar xmlSecRelationshipAttrId[] = "Id";
+const xmlChar xmlSecRelationshipAttrSourceId[] = "SourceId";
+const xmlChar xmlSecRelationshipAttrTargetMode[]= "TargetMode";
+
+/*************************************************************************
+ *
* Xslt strings
*
************************************************************************/
diff --git a/src/templates.c b/src/templates.c
index 2270db6..374917c 100644
--- a/src/templates.c
+++ b/src/templates.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
diff --git a/src/transforms.c b/src/transforms.c
index 8a2ded2..b1f16f7 100644
--- a/src/transforms.c
+++ b/src/transforms.c
@@ -36,7 +36,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -281,6 +281,16 @@ xmlSecTransformIdsRegisterDefault(void) {
return(-1);
}
+ if(xmlSecTransformIdsRegister(xmlSecTransformRelationshipId) < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlSecTransformIdsRegister",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ "name=%s",
+ xmlSecErrorsSafeString(xmlSecTransformKlassGetName(xmlSecTransformRelationshipId)));
+ return(-1);
+ }
+
#ifndef XMLSEC_NO_XSLT
if(xmlSecTransformIdsRegister(xmlSecTransformXsltId) < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -355,7 +365,7 @@ xmlSecTransformCtxCreate(void) {
NULL,
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
- "size=%d", sizeof(xmlSecTransformCtx));
+ "size=%d", (int)sizeof(xmlSecTransformCtx));
return(NULL);
}
@@ -876,7 +886,7 @@ xmlSecTransformCtxSetUri(xmlSecTransformCtxPtr ctx, const xmlChar* uri, xmlNodeP
NULL,
NULL,
XMLSEC_ERRORS_R_STRDUP_FAILED,
- "size=%d", xptr - uri);
+ "size=%d", (int)(xptr - uri));
return(-1);
}
@@ -932,6 +942,9 @@ xmlSecTransformCtxSetUri(xmlSecTransformCtxPtr ctx, const xmlChar* uri, xmlNodeP
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"transform=%s",
xmlSecErrorsSafeString(xmlSecTransformKlassGetName(xmlSecTransformXPointerId)));
+ if(buf != NULL) {
+ xmlFree(buf);
+ }
return(-1);
}
@@ -965,6 +978,9 @@ xmlSecTransformCtxSetUri(xmlSecTransformCtxPtr ctx, const xmlChar* uri, xmlNodeP
XMLSEC_ERRORS_R_XMLSEC_FAILED,
"transform=%s",
xmlSecErrorsSafeString(xmlSecTransformKlassGetName(xmlSecTransformVisa3DHackId)));
+ if(buf != NULL) {
+ xmlFree(buf);
+ }
return(-1);
}
@@ -1195,6 +1211,18 @@ xmlSecTransformCtxUriExecute(xmlSecTransformCtxPtr ctx, const xmlChar* uri) {
return(-1);
}
+ /* Close to free up file handle */
+ ret = xmlSecTransformInputURIClose(uriTransform);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlSecTransformInputURIClose",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ "ret=%d", ret);
+ return(-1);
+ }
+
+ /* Done */
ctx->status = xmlSecTransformStatusFinished;
return(0);
}
@@ -2810,7 +2838,7 @@ xmlSecTransformIOBufferCreate(xmlSecTransformIOBufferMode mode, xmlSecTransformP
NULL,
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
- "size=%d", sizeof(xmlSecTransformIOBuffer));
+ "size=%d", (int)sizeof(xmlSecTransformIOBuffer));
return(NULL);
}
memset(buffer, 0, sizeof(xmlSecTransformIOBuffer));
diff --git a/src/x509.c b/src/x509.c
index 028030e..c414ec5 100644
--- a/src/x509.c
+++ b/src/x509.c
@@ -4,7 +4,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -30,7 +30,6 @@
/**
* xmlSecX509DataGetNodeContent:
* @node: the pointer to <dsig:X509Data/> node.
- * @deleteChildren: the flag that indicates whether to remove node children after reading.
* @keyInfoCtx: the pointer to <dsig:KeyInfo/> node processing context.
*
* Reads the contents of <dsig:X509Data/> node and returns it as
@@ -40,10 +39,8 @@
* or a negative value if an error occurs.
*/
int
-xmlSecX509DataGetNodeContent (xmlNodePtr node, int deleteChildren,
- xmlSecKeyInfoCtxPtr keyInfoCtx) {
- xmlNodePtr cur, next;
- int deleteCurNode;
+xmlSecX509DataGetNodeContent (xmlNodePtr node, xmlSecKeyInfoCtxPtr keyInfoCtx) {
+ xmlNodePtr cur;
int content = 0;
xmlSecAssert2(node != NULL, 0);
@@ -52,42 +49,30 @@ xmlSecX509DataGetNodeContent (xmlNodePtr node, int deleteChildren,
/* determine the current node content */
cur = xmlSecGetNextElementNode(node->children);
while(cur != NULL) {
- deleteCurNode = 0;
if(xmlSecCheckNodeName(cur, xmlSecNodeX509Certificate, xmlSecDSigNs)) {
if(xmlSecIsEmptyNode(cur) == 1) {
content |= XMLSEC_X509DATA_CERTIFICATE_NODE;
- deleteCurNode = 1;
}
} else if(xmlSecCheckNodeName(cur, xmlSecNodeX509SubjectName, xmlSecDSigNs)) {
if(xmlSecIsEmptyNode(cur) == 1) {
content |= XMLSEC_X509DATA_SUBJECTNAME_NODE;
- deleteCurNode = 1;
}
} else if(xmlSecCheckNodeName(cur, xmlSecNodeX509IssuerSerial, xmlSecDSigNs)) {
if(xmlSecIsEmptyNode(cur) == 1) {
content |= XMLSEC_X509DATA_ISSUERSERIAL_NODE;
- deleteCurNode = 1;
}
} else if(xmlSecCheckNodeName(cur, xmlSecNodeX509SKI, xmlSecDSigNs)) {
if(xmlSecIsEmptyNode(cur) == 1) {
content |= XMLSEC_X509DATA_SKI_NODE;
- deleteCurNode = 1;
}
} else if(xmlSecCheckNodeName(cur, xmlSecNodeX509CRL, xmlSecDSigNs)) {
if(xmlSecIsEmptyNode(cur) == 1) {
content |= XMLSEC_X509DATA_CRL_NODE;
- deleteCurNode = 1;
}
} else {
/* todo: fail on unknown child node? */
}
- next = xmlSecGetNextElementNode(cur->next);
- if((deleteCurNode != 0) && (deleteChildren != 0)) {
- /* remove "template" nodes */
- xmlUnlinkNode(cur);
- xmlFreeNode(cur);
- }
- cur = next;
+ cur = xmlSecGetNextElementNode(cur->next);
}
return (content);
diff --git a/src/xkms.c b/src/xkms.c
deleted file mode 100644
index d10099b..0000000
--- a/src/xkms.c
+++ /dev/null
@@ -1,4981 +0,0 @@
-/**
- * XML Security Library (http://www.aleksey.com/xmlsec).
- *
- * "XML Key Management Specification v 2.0" implementation
- * http://www.w3.org/TR/xkms2/
- *
- * This is free software; see Copyright file in the source
- * distribution for preciese wording.
- *
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
- */
-#include "globals.h"
-
-#ifndef XMLSEC_NO_XKMS
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <libxml/tree.h>
-#include <libxml/parser.h>
-
-#include <xmlsec/xmlsec.h>
-#include <xmlsec/buffer.h>
-#include <xmlsec/xmltree.h>
-#include <xmlsec/keys.h>
-#include <xmlsec/keysmngr.h>
-#include <xmlsec/transforms.h>
-#include <xmlsec/keyinfo.h>
-#include <xmlsec/soap.h>
-#include <xmlsec/xkms.h>
-#include <xmlsec/private.h>
-#include <xmlsec/private/xkms.h>
-#include <xmlsec/errors.h>
-
-#define XMLSEC_XKMS_ID_ATTRIBUTE_LEN 32
-
-/* The ID attribute in XKMS is 'Id' */
-static const xmlChar* xmlSecXkmsServerIds[] = { BAD_CAST "Id", NULL };
-
-#ifndef XMLSEC_NO_SOAP
-static int xmlSecXkmsServerCtxWriteSoap11FatalError (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr envNode);
-static int xmlSecXkmsServerCtxWriteSoap12FatalError (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr envNode);
-#endif /* XMLSEC_NO_SOAP */
-
-static int xmlSecXkmsServerCtxRequestAbstractTypeNodeRead (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr* node);
-static int xmlSecXkmsServerCtxSignatureNodeRead (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static int xmlSecXkmsServerCtxMessageExtensionNodesRead (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr* node);
-static int xmlSecXkmsServerCtxOpaqueClientDataNodeRead (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static int xmlSecXkmsServerCtxPendingNotificationNodeRead (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static int xmlSecXkmsServerCtxRespondWithNodesRead (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr* node);
-static int xmlSecXkmsServerCtxPendingRequestNodeRead (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr* node);
-static int xmlSecXkmsServerCtxQueryKeyBindingNodeRead (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static int xmlSecXkmsServerCtxKeyBindingAbstractTypeNodeRead(xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr* node);
-static int xmlSecXkmsServerCtxKeyBindingAbstractTypeNodeWrite(xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node,
- xmlSecKeyPtr key);
-static int xmlSecXkmsServerCtxKeyInfoNodeWrite (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node,
- xmlSecKeyPtr key);
-static int xmlSecXkmsServerCtxUseKeyWithNodesRead (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr* node);
-static int xmlSecXkmsServerCtxUseKeyWithNodesWrite (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node,
- xmlSecKeyPtr key);
-static int xmlSecXkmsServerCtxTimeInstantNodeRead (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static int xmlSecXkmsServerCtxResultTypeNodeWrite (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static int xmlSecXkmsServerCtxRequestSignatureValueNodeWrite(xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static int xmlSecXkmsServerCtxUnverifiedKeyBindingNodeWrite(xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node,
- xmlSecKeyPtr key);
-static int xmlSecXkmsServerCtxKeyBindingNodeWrite (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node,
- xmlSecKeyPtr key);
-static int xmlSecXkmsServerCtxValidityIntervalNodeWrite (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node,
- xmlSecKeyPtr key);
-static int xmlSecXkmsServerCtxKeyBindingStatusNodeWrite (xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node,
- xmlSecKeyPtr key);
-
-
-static const xmlSecQName2IntegerInfo gXmlSecXkmsResultMajorInfo[] =
-{
- { xmlSecXkmsNs, xmlSecResultMajorCodeSuccess,
- xmlSecXkmsResultMajorSuccess },
- { xmlSecXkmsNs, xmlSecResultMajorCodeVersionMismatch,
- xmlSecXkmsResultMajorVersionMismatch },
- { xmlSecXkmsNs, xmlSecResultMajorCodeSender,
- xmlSecXkmsResultMajorSender },
- { xmlSecXkmsNs, xmlSecResultMajorCodeReceiver,
- xmlSecXkmsResultMajorReceiver },
- { xmlSecXkmsNs, xmlSecResultMajorCodeRepresent,
- xmlSecXkmsResultMajorRepresent },
- { xmlSecXkmsNs, xmlSecResultMajorCodePending,
- xmlSecXkmsResultMajorPending, },
- { NULL , NULL, 0 } /* MUST be last in the list */
-};
-
-static const xmlSecQName2IntegerInfo gXmlSecXkmsMinorErrorInfo[] =
-{
- { xmlSecXkmsNs, xmlSecResultMinorCodeNoMatch,
- xmlSecXkmsResultMinorNoMatch },
- { xmlSecXkmsNs, xmlSecResultMinorCodeTooManyResponses,
- xmlSecXkmsResultMinorTooManyResponses },
- { xmlSecXkmsNs, xmlSecResultMinorCodeIncomplete,
- xmlSecXkmsResultMinorIncomplete },
- { xmlSecXkmsNs, xmlSecResultMinorCodeFailure,
- xmlSecXkmsResultMinorFailure },
- { xmlSecXkmsNs, xmlSecResultMinorCodeRefused,
- xmlSecXkmsResultMinorRefused },
- { xmlSecXkmsNs, xmlSecResultMinorCodeNoAuthentication,
- xmlSecXkmsResultMinorNoAuthentication },
- { xmlSecXkmsNs, xmlSecResultMinorCodeMessageNotSupported,
- xmlSecXkmsResultMinorMessageNotSupported },
- { xmlSecXkmsNs, xmlSecResultMinorCodeUnknownResponseId,
- xmlSecXkmsResultMinorUnknownResponseId },
- { xmlSecXkmsNs, xmlSecResultMinorCodeNotSynchronous,
- xmlSecXkmsResultMinorSynchronous },
- { NULL, NULL, 0 } /* MUST be last in the list */
-};
-
-static const xmlSecQName2IntegerInfo gXmlSecXkmsKeyBindingStatusInfo[] =
-{
- { xmlSecXkmsNs, xmlSecKeyBindingStatusValid,
- xmlSecXkmsKeyBindingStatusValid },
- { xmlSecXkmsNs, xmlSecKeyBindingStatusInvalid,
- xmlSecXkmsKeyBindingStatusInvalid },
- { xmlSecXkmsNs, xmlSecKeyBindingStatusIndeterminate,
- xmlSecXkmsKeyBindingStatusIndeterminate },
- { NULL, NULL, 0 } /* MUST be last in the list */
-};
-
-static const xmlSecQName2BitMaskInfo gXmlSecXkmsKeyUsageInfo[] =
-{
- { xmlSecXkmsNs, xmlSecKeyUsageEncryption,
- xmlSecKeyUsageEncrypt | xmlSecKeyUsageDecrypt },
- { xmlSecXkmsNs, xmlSecKeyUsageSignature,
- xmlSecKeyUsageSign | xmlSecKeyUsageVerify },
- { xmlSecXkmsNs, xmlSecKeyUsageExchange,
- xmlSecKeyUsageKeyExchange},
- { NULL, NULL, 0 } /* MUST be last in the list */
-};
-
-static const xmlSecQName2BitMaskInfo gXmlSecXkmsKeyBindingReasonInfo[] =
-{
- { xmlSecXkmsNs, xmlSecKeyBindingReasonIssuerTrust,
- XMLSEC_XKMS_KEY_BINDING_REASON_MASK_ISSUER_TRAST },
- { xmlSecXkmsNs, xmlSecKeyBindingReasonRevocationStatus,
- XMLSEC_XKMS_KEY_BINDING_REASON_MASK_REVOCATION_STATUS },
- { xmlSecXkmsNs, xmlSecKeyBindingReasonValidityInterval,
- XMLSEC_XKMS_KEY_BINDING_REASON_MASK_VALIDITY_INTERVAL },
- { xmlSecXkmsNs, xmlSecKeyBindingReasonSignature,
- XMLSEC_XKMS_KEY_BINDING_REASON_MASK_SIGNATURE },
- { NULL, NULL, 0 } /* MUST be last in the list */
-};
-
-static const xmlSecQName2BitMaskInfo gXmlSecXkmsResponseMechanismInfo[] =
-{
- { xmlSecXkmsNs, xmlSecResponseMechanismRepresent,
- XMLSEC_XKMS_RESPONSE_MECHANISM_MASK_REPRESENT },
- { xmlSecXkmsNs, xmlSecResponseMechanismPending,
- XMLSEC_XKMS_RESPONSE_MECHANISM_MASK_PENDING },
- { xmlSecXkmsNs, xmlSecResponseMechanismRequestSignatureValue,
- XMLSEC_XKMS_RESPONSE_MECHANISM_MASK_REQUEST_SIGNATURE_VALUE },
- { NULL, NULL, 0 } /* MUST be last in the list */
-};
-
-static const xmlSecQName2IntegerInfo gXmlSecXkmsFormatInfo[] =
-{
- { NULL, xmlSecXkmsFormatStrPlain,
- xmlSecXkmsServerFormatPlain },
-#ifndef XMLSEC_NO_SOAP
- { NULL, xmlSecXkmsFormatStrSoap11,
- xmlSecXkmsServerFormatSoap11 },
- { NULL, xmlSecXkmsFormatStrSoap12,
- xmlSecXkmsServerFormatSoap12 },
-#endif /* XMLSEC_NO_SOAP */
- { NULL, NULL, 0 } /* MUST be last in the list */
-};
-
-/**
- * xmlSecXkmsServerFormatFromString:
- * @str the string.
- *
- * Gets xmlSecXkmsServerFormat from string @str.
- *
- * Returns: corresponding format or xmlSecXkmsServerFormatUnknown
- * if format could not be recognized.
- */
-xmlSecXkmsServerFormat
-xmlSecXkmsServerFormatFromString(const xmlChar* str) {
- int res;
- int ret;
-
- xmlSecAssert2(str != NULL, xmlSecXkmsServerFormatUnknown);
-
- ret = xmlSecQName2IntegerGetInteger(gXmlSecXkmsFormatInfo, NULL, str, &res);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecQName2IntegerGetInteger",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(xmlSecXkmsServerFormatUnknown);
- }
-
- return((xmlSecXkmsServerFormat)res);
-}
-
-/**
- * xmlSecXkmsServerFormatToString:
- * @format: the format.
- *
- * Gets string from @format.
- *
- * Returns: string corresponding to @format or NULL if an error occurs.
- */
-const xmlChar*
-xmlSecXkmsServerFormatToString (xmlSecXkmsServerFormat format) {
- xmlSecQName2IntegerInfoConstPtr info;
-
- xmlSecAssert2(format != xmlSecXkmsServerFormatUnknown, NULL);
-
- info = xmlSecQName2IntegerGetInfo(gXmlSecXkmsFormatInfo, format);
- if(info == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecQName2IntegerGetInfo",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(NULL);
- }
- return(info->qnameLocalPart);
-}
-
-/**
- * xmlSecXkmsServerCtxCreate:
- * @keysMngr: the pointer to keys manager.
- *
- * Creates XKMS request server side processing context.
- * The caller is responsible for destroying returned object by calling
- * #xmlSecXkmsServerCtxDestroy function.
- *
- * Returns: pointer to newly allocated context object or NULL if an error
- * occurs.
- */
-xmlSecXkmsServerCtxPtr
-xmlSecXkmsServerCtxCreate(xmlSecKeysMngrPtr keysMngr) {
- xmlSecXkmsServerCtxPtr ctx;
- int ret;
-
- ctx = (xmlSecXkmsServerCtxPtr) xmlMalloc(sizeof(xmlSecXkmsServerCtx));
- if(ctx == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- NULL,
- XMLSEC_ERRORS_R_MALLOC_FAILED,
- "sizeof(xmlSecXkmsServerCtx)=%d",
- sizeof(xmlSecXkmsServerCtx));
- return(NULL);
- }
-
- ret = xmlSecXkmsServerCtxInitialize(ctx, keysMngr);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxInitialize",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxDestroy(ctx);
- return(NULL);
- }
- return(ctx);
-}
-
-/**
- * xmlSecXkmsServerCtxDestroy:
- * @ctx: the pointer to XKMS processing context.
- *
- * Destroy context object created with #xmlSecXkmsServerCtxCreate function.
- */
-void
-xmlSecXkmsServerCtxDestroy(xmlSecXkmsServerCtxPtr ctx) {
- xmlSecAssert(ctx != NULL);
-
- xmlSecXkmsServerCtxFinalize(ctx);
- xmlFree(ctx);
-}
-
-/**
- * xmlSecXkmsServerCtxInitialize:
- * @ctx: the pointer to XKMS processing context.
- * @keysMngr: the pointer to keys manager.
- *
- * Initializes XKMS element processing context.
- * The caller is responsible for cleaning up returned object by calling
- * #xmlSecXkmsServerCtxFinalize function.
- *
- * Returns: 0 on success or a negative value if an error occurs.
- */
-int
-xmlSecXkmsServerCtxInitialize(xmlSecXkmsServerCtxPtr ctx, xmlSecKeysMngrPtr keysMngr) {
- int ret;
-
- xmlSecAssert2(ctx != NULL, -1);
-
- memset(ctx, 0, sizeof(xmlSecXkmsServerCtx));
-
- ctx->resultMajor = xmlSecXkmsResultMajorSuccess;
- ctx->resultMinor = xmlSecXkmsResultMinorNone;
- ctx->responseLimit = XMLSEC_XKMS_NO_RESPONSE_LIMIT;
- ctx->idLen = XMLSEC_XKMS_ID_ATTRIBUTE_LEN;
-
- /* initialize key info */
- ret = xmlSecKeyInfoCtxInitialize(&(ctx->keyInfoReadCtx), keysMngr);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecKeyInfoCtxInitialize",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- ctx->keyInfoReadCtx.mode = xmlSecKeyInfoModeRead;
-
- ret = xmlSecKeyInfoCtxInitialize(&(ctx->keyInfoWriteCtx), keysMngr);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecKeyInfoCtxInitialize",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- ctx->keyInfoWriteCtx.mode = xmlSecKeyInfoModeWrite;
-
- /* enabled RespondWith */
- ret = xmlSecPtrListInitialize(&(ctx->enabledRespondWithIds), xmlSecXkmsRespondWithIdListId);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListInitialize",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* enabled ServerRequest */
- ret = xmlSecPtrListInitialize(&(ctx->enabledServerRequestIds), xmlSecXkmsServerRequestIdListId);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListInitialize",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
-
-
- /* initialize keys list */
- ret = xmlSecPtrListInitialize(&(ctx->keys), xmlSecKeyPtrListId);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListInitialize",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* initialize RespondWith list */
- ret = xmlSecPtrListInitialize(&(ctx->respWithList), xmlSecXkmsRespondWithIdListId);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListInitialize",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * xmlSecXkmsServerCtxFinalize:
- * @ctx: the pointer to XKMS processing context.
- *
- * Cleans up @ctx object.
- */
-void
-xmlSecXkmsServerCtxFinalize(xmlSecXkmsServerCtxPtr ctx) {
- xmlSecAssert(ctx != NULL);
-
- xmlSecXkmsServerCtxReset(ctx);
-
- if(ctx->expectedService != NULL) {
- xmlFree(ctx->expectedService);
- }
- if(ctx->idPrefix != NULL) {
- xmlFree(ctx->idPrefix);
- }
-
- xmlSecKeyInfoCtxFinalize(&(ctx->keyInfoReadCtx));
- xmlSecKeyInfoCtxFinalize(&(ctx->keyInfoWriteCtx));
- xmlSecPtrListFinalize(&(ctx->enabledRespondWithIds));
- xmlSecPtrListFinalize(&(ctx->enabledServerRequestIds));
- xmlSecPtrListFinalize(&(ctx->keys));
- xmlSecPtrListFinalize(&(ctx->respWithList));
- memset(ctx, 0, sizeof(xmlSecXkmsServerCtx));
-}
-
-/**
- * xmlSecXkmsServerCtxReset:
- * @ctx: the pointer to XKMS processing context.
- *
- * Resets @ctx object, user settings are not touched.
- */
-void
-xmlSecXkmsServerCtxReset(xmlSecXkmsServerCtxPtr ctx) {
- xmlSecAssert(ctx != NULL);
-
- ctx->resultMajor = xmlSecXkmsResultMajorSuccess;
- ctx->resultMinor = xmlSecXkmsResultMinorNone;
- xmlSecKeyInfoCtxReset(&(ctx->keyInfoReadCtx));
- xmlSecKeyInfoCtxReset(&(ctx->keyInfoWriteCtx));
- xmlSecPtrListEmpty(&(ctx->keys));
- xmlSecPtrListEmpty(&(ctx->respWithList));
-
- ctx->requestNode = NULL;
- ctx->opaqueClientDataNode = NULL;
- ctx->firtsMsgExtNode = NULL;
- ctx->keyInfoNode = NULL;
- ctx->requestId = xmlSecXkmsServerRequestIdUnknown;
-
- if(ctx->id != NULL) {
- xmlFree(ctx->id); ctx->id = NULL;
- }
- if(ctx->service != NULL) {
- xmlFree(ctx->service); ctx->service = NULL;
- }
- if(ctx->nonce != NULL) {
- xmlFree(ctx->nonce); ctx->nonce = NULL;
- }
- if(ctx->originalRequestId != NULL) {
- xmlFree(ctx->originalRequestId); ctx->originalRequestId = NULL;
- }
- if(ctx->pendingNotificationMechanism != NULL) {
- xmlFree(ctx->pendingNotificationMechanism);
- ctx->pendingNotificationMechanism = NULL;
- }
- if(ctx->pendingNotificationIdentifier != NULL) {
- xmlFree(ctx->pendingNotificationIdentifier);
- ctx->pendingNotificationIdentifier = NULL;
- }
- if(ctx->compoundRequestContexts != NULL) {
- xmlSecPtrListDestroy(ctx->compoundRequestContexts);
- ctx->compoundRequestContexts = NULL;
- }
-
- ctx->responseLimit = XMLSEC_XKMS_NO_RESPONSE_LIMIT;
- ctx->responseMechanismMask = 0;
-}
-
-/**
- * xmlSecXkmsServerCtxCopyUserPref:
- * @dst: the pointer to destination context.
- * @src: the pointer to source context.
- *
- * Copies user preference from @src context to @dst.
- *
- * Returns: 0 on success or a negative value if an error occurs.
- */
-int
-xmlSecXkmsServerCtxCopyUserPref(xmlSecXkmsServerCtxPtr dst, xmlSecXkmsServerCtxPtr src) {
- int ret;
-
- xmlSecAssert2(dst != NULL, -1);
- xmlSecAssert2(src != NULL, -1);
-
- dst->userData = src->userData;
- dst->flags = src->flags;
- dst->flags2 = src->flags2;
-
- ret = xmlSecKeyInfoCtxCopyUserPref(&(dst->keyInfoReadCtx), &(src->keyInfoReadCtx));
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecKeyInfoCtxCopyUserPref",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- ret = xmlSecKeyInfoCtxCopyUserPref(&(dst->keyInfoWriteCtx), &(src->keyInfoWriteCtx));
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecKeyInfoCtxCopyUserPref",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- if(src->expectedService != NULL) {
- dst->expectedService = xmlStrdup(src->expectedService);
- if(dst->expectedService == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlStrdup",
- XMLSEC_ERRORS_R_MALLOC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- }
-
- if(src->idPrefix != NULL) {
- dst->idPrefix = xmlStrdup(src->idPrefix);
- if(dst->idPrefix == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlStrdup",
- XMLSEC_ERRORS_R_MALLOC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- }
- src->idLen = dst->idLen;
-
-
- ret = xmlSecPtrListCopy(&(dst->enabledRespondWithIds), &(src->enabledRespondWithIds));
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListCopy",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- ret = xmlSecPtrListCopy(&(dst->enabledServerRequestIds), &(src->enabledServerRequestIds));
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListCopy",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * xmlSecXkmsServerCtxProcess:
- * @ctx: the pointer to XKMS processing context.
- * @node: the pointer to request node.
- * @format: the request/response format.
- * @doc: the pointer to response parent XML document (might be NULL).
- *
- * Reads XKMS request from @node and creates response to a newly created node.
- * Caller is responsible for adding the returned node to the XML document.
- *
- * Returns: pointer to newly created XKMS response node or NULL
- * if an error occurs.
- */
-xmlNodePtr
-xmlSecXkmsServerCtxProcess(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node,
- xmlSecXkmsServerFormat format, xmlDocPtr doc) {
- int ret;
-
- xmlSecAssert2(ctx != NULL, NULL);
- xmlSecAssert2(ctx->requestId == NULL, NULL);
- xmlSecAssert2(ctx->requestNode == NULL, NULL);
- xmlSecAssert2(node != NULL, NULL);
-
- ctx->requestNode = xmlSecXkmsServerCtxRequestUnwrap(ctx, node, format);
- if(ctx->requestNode == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxRequestUnwrap",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "node=%s",
- xmlSecErrorsSafeString(node->name));
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- goto done;
- }
-
- ret = xmlSecXkmsServerCtxRequestRead(ctx, ctx->requestNode);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestIdListFindByNode",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "ctx->requestNode=%s",
- xmlSecErrorsSafeString(ctx->requestNode->name));
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- goto done;
- }
-
- ret = xmlSecXkmsServerRequestExecute(ctx->requestId, ctx);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestExecute",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "ctx->requestNode=%s",
- xmlSecErrorsSafeString(ctx->requestNode->name));
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- goto done;
- }
-
-done:
- /* always try to write response back */
- if(ctx->requestId != NULL) {
- xmlNodePtr respNode;
- xmlNodePtr wrappedRespNode;
-
- respNode = xmlSecXkmsServerCtxResponseWrite(ctx, doc);
- if(respNode == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxResponseWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "ctx->requestNode=%s",
- xmlSecErrorsSafeString(ctx->requestNode->name));
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- goto error;
- }
-
-
- wrappedRespNode = xmlSecXkmsServerCtxResponseWrap(ctx, respNode, format, doc);
- if(wrappedRespNode == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxResponseWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "ctx->requestNode=%s",
- xmlSecErrorsSafeString(ctx->requestNode->name));
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- xmlFreeNode(respNode);
- goto error;
- }
-
- return(wrappedRespNode);
- }
-
-error:
- /* last attempt: create fatatl error response */
- return(xmlSecXkmsServerCtxFatalErrorResponseCreate(ctx, format, doc));
-}
-
-/**
- * xmlSecXkmsServerCtxRequestRead:
- * @ctx: the pointer to XKMS processing context.
- * @node: the pointer to request node.
- *
- * Reads XKMS request from @node and stores data in @ctx.
- *
- * Returns: 0 on success or a negative value if an error occurs.
- */
-int
-xmlSecXkmsServerCtxRequestRead(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- int ret;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(ctx->requestId == NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* find out what the request is */
- if(xmlSecPtrListGetSize(&(ctx->enabledServerRequestIds)) > 0) {
- ctx->requestId = xmlSecXkmsServerRequestIdListFindByNode(&(ctx->enabledServerRequestIds), node);
- } else {
- ctx->requestId = xmlSecXkmsServerRequestIdListFindByNode(xmlSecXkmsServerRequestIdsGet(), node);
- }
- if(ctx->requestId == xmlSecXkmsServerRequestIdUnknown) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestIdListFindByNode",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "node=%s",
- xmlSecErrorsSafeString(node->name));
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorMessageNotSupported);
- return(-1);
- }
-
- xmlSecAddIDs(node->doc, node, xmlSecXkmsServerIds);
- ret = xmlSecXkmsServerRequestNodeRead(ctx->requestId, ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "request=%s",
- xmlSecErrorsSafeString(xmlSecXkmsServerRequestKlassGetName(ctx->requestId)));
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorFailure);
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * xmlSecXkmsServerCtxResponseWrite:
- * @ctx: the pointer to XKMS processing context.
- * @doc: the pointer to response parent XML document (might be NULL).
- *
- * Writes XKMS response from context to a newly created node. Caller is
- * responsible for adding the returned node to the XML document.
- *
- * Returns: pointer to newly created XKMS response node or NULL
- * if an error occurs.
- */
-xmlNodePtr
-xmlSecXkmsServerCtxResponseWrite(xmlSecXkmsServerCtxPtr ctx, xmlDocPtr doc) {
- xmlNodePtr respNode;
-
- xmlSecAssert2(ctx != NULL, NULL);
- xmlSecAssert2(ctx->requestId != NULL, NULL);
-
- /* now write results */
- respNode = xmlSecXkmsServerRequestNodeWrite(ctx->requestId, ctx, doc, NULL);
- if(respNode == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "request=%s",
- xmlSecErrorsSafeString(xmlSecXkmsServerRequestKlassGetName(ctx->requestId)));
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
-
- return(respNode);
-}
-
-/**
- * xmlSecXkmsServerCtxRequestUnwrap:
- * @ctx: the pointer to XKMS processing context.
- * @node: the pointer to request node.
- * @format: the request/response format.
- *
- * Removes SOAP or other envelope from XKMS request.
- *
- * Returns: pointer to "real" XKMS request node or NULL if an error occurs.
- */
-xmlNodePtr
-xmlSecXkmsServerCtxRequestUnwrap(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node, xmlSecXkmsServerFormat format) {
- xmlNodePtr result = NULL;
-
- xmlSecAssert2(ctx != NULL, NULL);
- xmlSecAssert2(node != NULL, NULL);
-
- switch(format) {
- case xmlSecXkmsServerFormatPlain:
- result = node;
- break;
-#ifndef XMLSEC_NO_SOAP
- case xmlSecXkmsServerFormatSoap11:
- /* verify that it is actually soap Envelope node */
- if(xmlSecSoap11CheckEnvelope(node) != 1) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap11CheckEnvelope",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
-
- /* check that Body has exactly one entry */
- if(xmlSecSoap11GetBodyEntriesNumber(node) != 1) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap11GetBodyEntriesNumber",
- XMLSEC_ERRORS_R_INVALID_DATA,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
-
- /* this one enntry is our xkms request */
- result = xmlSecSoap11GetBodyEntry(node, 0);
- if(result == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap11GetBodyEntry",
- XMLSEC_ERRORS_R_INVALID_DATA,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
-
- break;
- case xmlSecXkmsServerFormatSoap12:
- /* verify that it is actually soap Envelope node */
- if(xmlSecSoap12CheckEnvelope(node) != 1) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap12CheckEnvelope",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
-
- /* check that Body has exactly one entry */
- if(xmlSecSoap12GetBodyEntriesNumber(node) != 1) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap12GetBodyEntriesNumber",
- XMLSEC_ERRORS_R_INVALID_DATA,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
-
- /* this one enntry is our xkms request */
- result = xmlSecSoap12GetBodyEntry(node, 0);
- if(result == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap12GetBodyEntry",
- XMLSEC_ERRORS_R_INVALID_DATA,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
-
- break;
-#endif /* XMLSEC_NO_SOAP */
- default:
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- NULL,
- XMLSEC_ERRORS_R_NOT_IMPLEMENTED,
- "format=%d",
- format);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
-
- return(result);
-}
-
-/**
- * xmlSecXkmsServerCtxResponseWrap:
- * @ctx: the pointer to XKMS processing context.
- * @node: the pointer to response node.
- * @format: the request/response format.
- * @doc: the pointer to response parent XML document (might be NULL).
- *
- * Creates SOAP or other envelope around XKMS response.
- * Caller is responsible for adding the returned node to the XML document.
- *
- * Returns: pointer to newly created response envelope node or NULL
- * if an error occurs.
- */
-xmlNodePtr
-xmlSecXkmsServerCtxResponseWrap(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node, xmlSecXkmsServerFormat format, xmlDocPtr doc) {
- xmlNodePtr result = NULL;
-
- xmlSecAssert2(ctx != NULL, NULL);
- xmlSecAssert2(node != NULL, NULL);
-
- switch(format) {
- case xmlSecXkmsServerFormatPlain:
- result = node; /* do nothing */
- break;
-#ifndef XMLSEC_NO_SOAP
- case xmlSecXkmsServerFormatSoap11:
- result = xmlSecSoap11CreateEnvelope(doc);
- if(result == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap11CreateEnvelope",
- XMLSEC_ERRORS_R_INVALID_DATA,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
-
- if(xmlSecSoap11AddBodyEntry(result, node) == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap11AddBodyEntry",
- XMLSEC_ERRORS_R_INVALID_DATA,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
- break;
- case xmlSecXkmsServerFormatSoap12:
- result = xmlSecSoap12CreateEnvelope(doc);
- if(result == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap12CreateEnvelope",
- XMLSEC_ERRORS_R_INVALID_DATA,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
-
- if(xmlSecSoap12AddBodyEntry(result, node) == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap12AddBodyEntry",
- XMLSEC_ERRORS_R_INVALID_DATA,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
- break;
-#endif /* XMLSEC_NO_SOAP */
- default:
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- NULL,
- XMLSEC_ERRORS_R_NOT_IMPLEMENTED,
- "format=%d",
- format);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
-
- return(result);
-}
-
-/**
- * xmlSecXkmsServerCtxFatalErrorResponseCreate:
- * @ctx: the pointer to XKMS processing context.
- * @format: the request/response format.
- * @doc: the pointer to response parent XML document (might be NULL).
- *
- * Creates a "fatal error" SOAP or other envelope respons. Caller is
- * responsible for adding the returned node to the XML document.
- *
- * Returns: pointer to newly created fatal error response (it might be NULL).
- */
-xmlNodePtr
-xmlSecXkmsServerCtxFatalErrorResponseCreate(xmlSecXkmsServerCtxPtr ctx, xmlSecXkmsServerFormat format, xmlDocPtr doc) {
- xmlNodePtr result = NULL;
- int ret;
-
- xmlSecAssert2(ctx != NULL, NULL);
-
- /* make sure that we have an error */
- if(ctx->resultMajor == xmlSecXkmsResultMajorSuccess) {
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- }
-
- switch(format) {
- case xmlSecXkmsServerFormatPlain:
- /* try to create fatal error response with XKMS Status request */
- result = xmlSecXkmsServerRequestNodeWrite(xmlSecXkmsServerRequestResultId, ctx, doc, NULL);
- if(result == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(NULL);
- }
- break;
-#ifndef XMLSEC_NO_SOAP
- case xmlSecXkmsServerFormatSoap11:
- result = xmlSecSoap11CreateEnvelope(doc);
- if(result == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap11CreateEnvelope",
- XMLSEC_ERRORS_R_INVALID_DATA,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
-
- ret = xmlSecXkmsServerCtxWriteSoap11FatalError(ctx, result);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxWriteSoap11FatalError",
- XMLSEC_ERRORS_R_INVALID_DATA,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- xmlFreeNode(result);
- return(NULL);
- }
-
- break;
- case xmlSecXkmsServerFormatSoap12:
- result = xmlSecSoap12CreateEnvelope(doc);
- if(result == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap12CreateEnvelope",
- XMLSEC_ERRORS_R_INVALID_DATA,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
-
- ret = xmlSecXkmsServerCtxWriteSoap12FatalError(ctx, result);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxWriteSoap12FatalError",
- XMLSEC_ERRORS_R_INVALID_DATA,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- xmlFreeNode(result);
- return(NULL);
- }
-
- break;
-#endif /* XMLSEC_NO_SOAP */
- default:
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- NULL,
- XMLSEC_ERRORS_R_NOT_IMPLEMENTED,
- "format=%d",
- format);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorFailure);
- return(NULL);
- }
-
- return(result);
-}
-
-#ifndef XMLSEC_NO_SOAP
-static int
-xmlSecXkmsServerCtxWriteSoap11FatalError(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr envNode) {
- const xmlChar* faultCodeHref = NULL;
- const xmlChar* faultCodeLocalPart = NULL;
- xmlChar* faultString = NULL;
- int len;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(envNode != NULL, -1);
-
- if((ctx->resultMajor == xmlSecXkmsResultMajorVersionMismatch) ||
- (ctx->requestNode == NULL)) {
- /* we were not able to parse the envelope or its general version mismatch error */
- faultCodeHref = xmlSecSoap11Ns;
- faultCodeLocalPart = xmlSecSoapFaultCodeVersionMismatch;
- faultString = xmlStrdup(xmlSecXkmsSoapFaultReasonUnsupportedVersion);
- if(faultString == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlStrdup",
- XMLSEC_ERRORS_R_XML_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(-1);
- }
- } else if((ctx->resultMajor == xmlSecXkmsResultMajorSender) &&
- (ctx->requestId == NULL)) {
- /* we understood the request but were not able to parse input message */
- faultCodeHref = xmlSecSoap11Ns;
- faultCodeLocalPart = xmlSecSoapFaultCodeClient;
-
- len = xmlStrlen(BAD_CAST xmlSecErrorsSafeString(ctx->requestNode->name)) +
- xmlStrlen(xmlSecXkmsSoapFaultReasonMessageInvalid) + 1;
- faultString = xmlMalloc(len + 1);
- if(faultString == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlMalloc",
- XMLSEC_ERRORS_R_XML_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(-1);
- }
- xmlSecStrPrintf(faultString, len , xmlSecXkmsSoapFaultReasonMessageInvalid,
- xmlSecErrorsSafeString(ctx->requestNode->name));
- } else if((ctx->resultMajor == xmlSecXkmsResultMajorReceiver) &&
- (ctx->requestId == NULL)) {
- /* we understood the request but were not able to process it */
- faultCodeHref = xmlSecSoap11Ns;
- faultCodeLocalPart = xmlSecSoapFaultCodeServer;
- faultString = xmlStrdup(xmlSecXkmsSoapFaultReasonServiceUnavailable);
- if(faultString == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlStrdup",
- XMLSEC_ERRORS_R_XML_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(-1);
- }
- } else if((ctx->requestId == NULL) && (ctx->requestNode != NULL)) {
- /* we parsed the envelope but were not able to understand this request */
- faultCodeHref = xmlSecSoap11Ns;
- faultCodeLocalPart = xmlSecSoapFaultCodeClient;
-
- len = xmlStrlen(BAD_CAST xmlSecErrorsSafeString(ctx->requestNode->name)) +
- xmlStrlen(xmlSecXkmsSoapFaultReasonMessageNotSupported) + 1;
- faultString = xmlMalloc(len + 1);
- if(faultString == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlMalloc",
- XMLSEC_ERRORS_R_XML_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(-1);
- }
- xmlSecStrPrintf(faultString, len , xmlSecXkmsSoapFaultReasonMessageNotSupported,
- xmlSecErrorsSafeString(ctx->requestNode->name));
- } else {
- /* just some error */
- faultCodeHref = xmlSecSoap11Ns;
- faultCodeLocalPart = xmlSecSoapFaultCodeServer;
- faultString = xmlStrdup(xmlSecXkmsSoapFaultReasonServiceUnavailable);
- if(faultString == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlStrdup",
- XMLSEC_ERRORS_R_XML_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(-1);
- }
- }
-
- if(xmlSecSoap11AddFaultEntry(envNode, faultCodeHref, faultCodeLocalPart, faultString, NULL) == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap11AddFaultEntry",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- xmlFree(faultString);
- return(-1);
- }
-
- xmlFree(faultString);
- return(0);
-}
-
-static int
-xmlSecXkmsServerCtxWriteSoap12FatalError(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr envNode) {
- xmlSecSoap12FaultCode faultCode = xmlSecSoap12FaultCodeUnknown;
- const xmlChar* faultSubCodeHref = NULL;
- const xmlChar* faultSubCodeLocalPart = NULL;
- xmlChar* faultReason = NULL;
- int len;
- xmlNodePtr faultNode;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(envNode != NULL, -1);
-
- if((ctx->resultMajor == xmlSecXkmsResultMajorVersionMismatch) ||
- (ctx->requestNode == NULL)) {
- /* we were not able to parse the envelope or its general version mismatch error */
- faultCode = xmlSecSoap12FaultCodeVersionMismatch;
- faultReason = xmlStrdup(xmlSecXkmsSoapFaultReasonUnsupportedVersion);
- if(faultReason == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlStrdup",
- XMLSEC_ERRORS_R_XML_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(-1);
- }
- } else if((ctx->resultMajor == xmlSecXkmsResultMajorSender) &&
- (ctx->requestId == NULL)) {
- /* we understood the request but were not able to parse input message */
- faultCode = xmlSecSoap12FaultCodeSender;
- faultSubCodeHref = xmlSecXkmsNs;
- faultSubCodeLocalPart = xmlSecXkmsSoapSubcodeValueMessageNotSupported;
-
- len = xmlStrlen(BAD_CAST xmlSecErrorsSafeString(ctx->requestNode->name)) +
- xmlStrlen(xmlSecXkmsSoapFaultReasonMessageInvalid) + 1;
- faultReason = xmlMalloc(len + 1);
- if(faultReason == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlMalloc",
- XMLSEC_ERRORS_R_XML_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(-1);
- }
- xmlSecStrPrintf(faultReason, len , xmlSecXkmsSoapFaultReasonMessageInvalid,
- xmlSecErrorsSafeString(ctx->requestNode->name));
- } else if((ctx->resultMajor == xmlSecXkmsResultMajorReceiver) &&
- (ctx->requestId == NULL)) {
- /* we understood the request but were not able to process it */
- faultCode = xmlSecSoap12FaultCodeReceiver;
- faultReason = xmlStrdup(xmlSecXkmsSoapFaultReasonServiceUnavailable);
- if(faultReason == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlStrdup",
- XMLSEC_ERRORS_R_XML_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(-1);
- }
- } else if((ctx->requestId == NULL) && (ctx->requestNode != NULL)) {
- /* we parsed the envelope but were not able to understand this request */
- faultCode = xmlSecSoap12FaultCodeSender;
- faultSubCodeHref = xmlSecXkmsNs;
- faultSubCodeLocalPart = xmlSecXkmsSoapSubcodeValueBadMessage;
-
- len = xmlStrlen(BAD_CAST xmlSecErrorsSafeString(ctx->requestNode->name)) +
- xmlStrlen(xmlSecXkmsSoapFaultReasonMessageNotSupported) + 1;
- faultReason = xmlMalloc(len + 1);
- if(faultReason == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlMalloc",
- XMLSEC_ERRORS_R_XML_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(-1);
- }
- xmlSecStrPrintf(faultReason, len , xmlSecXkmsSoapFaultReasonMessageNotSupported,
- xmlSecErrorsSafeString(ctx->requestNode->name));
- } else {
- /* just some error */
- faultCode = xmlSecSoap12FaultCodeReceiver;
- faultReason = xmlStrdup(xmlSecXkmsSoapFaultReasonServiceUnavailable);
- if(faultReason == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlStrdup",
- XMLSEC_ERRORS_R_XML_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- return(-1);
- }
- }
- xmlSecAssert2(faultCode != xmlSecSoap12FaultCodeUnknown, -1);
- xmlSecAssert2(faultReason != NULL, -1);
-
- faultNode = xmlSecSoap12AddFaultEntry(envNode, faultCode, faultReason,
- xmlSecXkmsSoapFaultReasonLang, NULL, NULL);
- if(faultNode == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap12AddFaultEntry",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- xmlFree(faultReason);
- return(-1);
- }
- xmlFree(faultReason);
-
- if((faultSubCodeHref != NULL) && (faultSubCodeLocalPart != NULL)) {
- /* make sure that we have subcode (xkms) namespace declared */
- if(xmlNewNs(faultNode, faultSubCodeHref, BAD_CAST "xkms") == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlNewNs",
- XMLSEC_ERRORS_R_XML_FAILED,
- "ns=%s",
- xmlSecErrorsSafeString(faultSubCodeHref));
- return(-1);
- }
- if(xmlSecSoap12AddFaultSubcode(faultNode, faultSubCodeHref, faultSubCodeLocalPart) == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecSoap12AddFaultSubcode",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "href=%s,value=%s",
- xmlSecErrorsSafeString(faultSubCodeHref),
- xmlSecErrorsSafeString(faultSubCodeLocalPart));
- return(-1);
- }
- }
-
- return(0);
-}
-
-#endif /* XMLSEC_NO_SOAP */
-
-
-/**
- * xmlSecXkmsServerCtxSetResult:
- * @ctx: the pointer to XKMS processing context.
- * @resultMajor: the major result code.
- * @resultMinor: the minor result code.
- *
- * Sets the major/minor result code in the context if no other result is already
- * reported.
- */
-void
-xmlSecXkmsServerCtxSetResult(xmlSecXkmsServerCtxPtr ctx, xmlSecXkmsResultMajor resultMajor,
- xmlSecXkmsResultMinor resultMinor) {
- xmlSecAssert(ctx != NULL);
-
- if((ctx->resultMajor == xmlSecXkmsResultMajorSuccess) &&
- (resultMinor != xmlSecXkmsResultMajorSuccess)) {
- ctx->resultMajor = resultMajor;
- ctx->resultMinor = resultMinor;
- } else if((ctx->resultMajor == xmlSecXkmsResultMajorSuccess) &&
- (ctx->resultMinor == xmlSecXkmsResultMinorNone)) {
- xmlSecAssert(resultMajor == xmlSecXkmsResultMajorSuccess);
-
- ctx->resultMinor = resultMinor;
- }
-}
-
-
-/**
- * xmlSecXkmsServerCtxDebugDump:
- * @ctx: the pointer to XKMS processing context.
- * @output: the pointer to output FILE.
- *
- * Prints the debug information about @ctx to @output.
- */
-void
-xmlSecXkmsServerCtxDebugDump(xmlSecXkmsServerCtxPtr ctx, FILE* output) {
- xmlSecAssert(ctx != NULL);
- xmlSecAssert(output != NULL);
-
- fprintf(output, "= XKMS SERVER CONTEXT: %s\n",
- (ctx->requestId != xmlSecXkmsServerRequestIdUnknown &&
- xmlSecXkmsServerRequestKlassGetName(ctx->requestId)) ?
- xmlSecXkmsServerRequestKlassGetName(ctx->requestId) :
- BAD_CAST "NULL");
-
- xmlSecQName2IntegerDebugDump(gXmlSecXkmsResultMajorInfo,
- ctx->resultMajor, BAD_CAST "resultMajor", output);
- xmlSecQName2IntegerDebugDump(gXmlSecXkmsMinorErrorInfo,
- ctx->resultMinor, BAD_CAST "resultMinor", output);
-
- fprintf(output, "== id: %s\n",
- (ctx->id) ? ctx->id : BAD_CAST "");
- fprintf(output, "== service: %s\n",
- (ctx->service) ? ctx->service : BAD_CAST "");
- fprintf(output, "== nonce: %s\n",
- (ctx->nonce) ? ctx->nonce : BAD_CAST "");
- fprintf(output, "== originalRequestId: %s\n",
- (ctx->originalRequestId) ? ctx->originalRequestId : BAD_CAST "");
- fprintf(output, "== pendingNotificationMechanism: %s\n",
- (ctx->pendingNotificationMechanism) ?
- ctx->pendingNotificationMechanism :
- BAD_CAST "");
- fprintf(output, "== pendingNotificationIdentifier: %s\n",
- (ctx->pendingNotificationIdentifier) ?
- ctx->pendingNotificationIdentifier :
- BAD_CAST "");
- if(ctx->responseLimit != XMLSEC_XKMS_NO_RESPONSE_LIMIT) {
- fprintf(output, "== ResponseLimit: %d\n", ctx->responseLimit);
- }
- xmlSecQName2BitMaskDebugDump(gXmlSecXkmsResponseMechanismInfo,
- ctx->responseMechanismMask, BAD_CAST "responseMechanism", output);
-
- if(ctx->expectedService != NULL) {
- fprintf(output, "== expected service: %s\n", ctx->expectedService);
- }
- fprintf(output, "== flags: 0x%08x\n", ctx->flags);
- fprintf(output, "== flags2: 0x%08x\n", ctx->flags2);
-
- fprintf(output, "== Key Info Read Ctx:\n");
- xmlSecKeyInfoCtxDebugDump(&(ctx->keyInfoReadCtx), output);
-
- fprintf(output, "== Key Info Write Ctx:\n");
- xmlSecKeyInfoCtxDebugDump(&(ctx->keyInfoWriteCtx), output);
-
- if(xmlSecPtrListGetSize(&(ctx->enabledRespondWithIds)) > 0) {
- fprintf(output, "== Enabled RespondWith: ");
- xmlSecTransformIdListDebugDump(&(ctx->enabledRespondWithIds), output);
- } else {
- fprintf(output, "== Enabled RespondWith: all\n");
- }
-
- if(xmlSecPtrListGetSize(&(ctx->enabledServerRequestIds)) > 0) {
- fprintf(output, "== Enabled ServerRequest: ");
- xmlSecTransformIdListDebugDump(&(ctx->enabledServerRequestIds), output);
- } else {
- fprintf(output, "== Enabled ServerRequest: all\n");
- }
-
- fprintf(output, "== RespondWith List:\n");
- xmlSecPtrListDebugDump(&(ctx->respWithList), output);
-
- fprintf(output, "== Keys:\n");
- xmlSecPtrListDebugDump(&(ctx->keys), output);
-
- if(ctx->compoundRequestContexts != NULL) {
- fprintf(output, "== Compound Request:\n");
- xmlSecPtrListDebugDump(ctx->compoundRequestContexts, output);
- }
-}
-
-/**
- * xmlSecXkmsServerCtxDebugXmlDump:
- * @ctx: the pointer to XKMS processing context.
- * @output: the pointer to output FILE.
- *
- * Prints the debug information about @ctx to @output in XML format.
- */
-void
-xmlSecXkmsServerCtxDebugXmlDump(xmlSecXkmsServerCtxPtr ctx, FILE* output) {
- xmlSecAssert(ctx != NULL);
- xmlSecAssert(output != NULL);
-
- fprintf(output, "<XkmsServerRequestContext name=\"");
- xmlSecPrintXmlString(output,
- (ctx->requestId != xmlSecXkmsServerRequestIdUnknown) ?
- xmlSecXkmsServerRequestKlassGetName(ctx->requestId) :
- BAD_CAST "NULL"
- );
- fprintf(output, "\">\n");
-
- xmlSecQName2IntegerDebugXmlDump(gXmlSecXkmsResultMajorInfo,
- ctx->resultMajor, BAD_CAST "MajorError", output);
- xmlSecQName2IntegerDebugXmlDump(gXmlSecXkmsMinorErrorInfo,
- ctx->resultMinor, BAD_CAST "MinorError", output);
-
- fprintf(output, "<Id>");
- xmlSecPrintXmlString(output, ctx->id);
- fprintf(output, "</Id>\n");
-
- fprintf(output, "<Service>");
- xmlSecPrintXmlString(output, ctx->service);
- fprintf(output, "</Service>\n");
-
- fprintf(output, "<Nonce>");
- xmlSecPrintXmlString(output, ctx->nonce);
- fprintf(output, "</Nonce>\n");
-
- fprintf(output, "<OriginalRequestId>");
- xmlSecPrintXmlString(output, ctx->originalRequestId);
- fprintf(output, "</OriginalRequestId>\n");
-
- fprintf(output, "<PendingNotificationMechanism>");
- xmlSecPrintXmlString(output, ctx->pendingNotificationMechanism);
- fprintf(output, "</PendingNotificationMechanism>\n");
-
- fprintf(output, "<PendingNotificationIdentifier>");
- xmlSecPrintXmlString(output, ctx->pendingNotificationIdentifier);
- fprintf(output, "</PendingNotificationIdentifier>\n");
-
- if(ctx->responseLimit != XMLSEC_XKMS_NO_RESPONSE_LIMIT) {
- fprintf(output, "<ResponseLimit>%d</ResponseLimit>\n", ctx->responseLimit);
- }
- xmlSecQName2BitMaskDebugXmlDump(gXmlSecXkmsResponseMechanismInfo,
- ctx->responseMechanismMask, BAD_CAST "ResponseMechanism", output);
-
-
- fprintf(output, "<ExpectedService>");
- xmlSecPrintXmlString(output, ctx->expectedService);
- fprintf(output, "</ExpectedService>\n");
-
- fprintf(output, "<Flags>%08x</Flags>\n", ctx->flags);
- fprintf(output, "<Flags2>%08x</Flags2>\n", ctx->flags2);
-
- fprintf(output, "<KeyInfoReadCtx>\n");
- xmlSecKeyInfoCtxDebugXmlDump(&(ctx->keyInfoReadCtx), output);
- fprintf(output, "</KeyInfoReadCtx>\n");
-
- fprintf(output, "<KeyInfoWriteCtx>\n");
- xmlSecKeyInfoCtxDebugXmlDump(&(ctx->keyInfoWriteCtx), output);
- fprintf(output, "</KeyInfoWriteCtx>\n");
-
- if(xmlSecPtrListGetSize(&(ctx->enabledRespondWithIds)) > 0) {
- fprintf(output, "<EnabledRespondWith>\n");
- xmlSecTransformIdListDebugXmlDump(&(ctx->enabledRespondWithIds), output);
- fprintf(output, "</EnabledRespondWith>\n");
- } else {
- fprintf(output, "<EnabledRespondWith>all</EnabledRespondWith>\n");
- }
-
- if(xmlSecPtrListGetSize(&(ctx->enabledServerRequestIds)) > 0) {
- fprintf(output, "<EnabledServerRequest>\n");
- xmlSecTransformIdListDebugXmlDump(&(ctx->enabledServerRequestIds), output);
- fprintf(output, "</EnabledServerRequest>\n");
- } else {
- fprintf(output, "<EnabledServerRequest>all</EnabledServerRequest>\n");
- }
-
-
- fprintf(output, "<RespondWithList>\n");
- xmlSecPtrListDebugXmlDump(&(ctx->respWithList), output);
- fprintf(output, "</RespondWithList>\n");
-
- fprintf(output, "<Keys>\n");
- xmlSecPtrListDebugXmlDump(&(ctx->keys), output);
- fprintf(output, "</Keys>\n");
-
- if(ctx->compoundRequestContexts != NULL) {
- fprintf(output, "<CompoundRequest>\n");
- xmlSecPtrListDebugXmlDump(ctx->compoundRequestContexts, output);
- fprintf(output, "</CompoundRequest>\n");
- }
-
- fprintf(output, "</XkmsServerRequestContext>\n");
-}
-
-/**
- * <xkms:MessageAbstractType Id Service Nonce?>
- * <ds:Signature>?
- * <xkms:MessageExtension>*
- * (<xkms:OpaqueClientData>
- * <xkms:OpaqueData>?
- * )?
- *
- * <xkms:RequestAbstractType Id Service Nonce? OriginalRequestId? ResponseLimit?>
- * <ds:Signature>?
- * <xkms:MessageExtension>*
- * (<xkms:OpaqueClientData>
- * <xkms:OpaqueData>?
- * )?
- * <xkms:ResponseMechanism>*
- * <xkms:RespondWith>*
- * <xkms:PendingNotification Mechanism Identifier>?
- *
- * XML Schema:
- *
- * <!-- RequestAbstractType -->
- * <complexType name="RequestAbstractType" abstract="true">
- * <complexContent>
- * <extension base="xkms:MessageAbstractType">
- * <sequence>
- * <element ref="xkms:ResponseMechanism" minOccurs="0"
- * maxOccurs="unbounded"/>
- * <element ref="xkms:RespondWith" minOccurs="0"
- * maxOccurs="unbounded"/>
- * <element ref="xkms:PendingNotification" minOccurs="0"/>
- * </sequence>
- * <attribute name="OriginalRequestId" type="anyURI"
- * use="optional"/>
- * <attribute name="ResponseLimit" type="integer" use="optional"/>
- * </extension>
- * </complexContent>
- * </complexType>
- * <!-- /RequestAbstractType -->
- *
- * <!-- MessageAbstractType -->
- * <complexType name="MessageAbstractType" abstract="true">
- * <sequence>
- * <element ref="ds:Signature" minOccurs="0"/>
- * <element ref="xkms:MessageExtension" minOccurs="0"
- * maxOccurs="unbounded"/>
- * <element ref="xkms:OpaqueClientData" minOccurs="0"/>
- * </sequence>
- * <attribute name="Id" type="ID" use="required"/>
- * <attribute name="Service" type="anyURI" use="required"/>
- * <attribute name="Nonce" type="base64Binary" use="optional"/>
- * </complexType>
- * <!-- /MessageAbstractType -->
- */
-static int
-xmlSecXkmsServerCtxRequestAbstractTypeNodeRead(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr* node) {
- xmlNodePtr cur;
- xmlChar* tmp;
- int ret;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
- xmlSecAssert2((*node) != NULL, -1);
-
- cur = (*node);
- xmlSecAssert2(cur != NULL, -1);
-
- /* required Id attribute */
- xmlSecAssert2(ctx->id == NULL, -1);
- ctx->id = xmlGetProp(cur, xmlSecAttrId);
- if(ctx->id == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlGetProp",
- XMLSEC_ERRORS_R_XML_FAILED,
- "name=%s;node=%s",
- xmlSecErrorsSafeString(xmlSecAttrId),
- xmlSecErrorsSafeString(cur->name));
- return(-1);
- }
-
- /* required Service attribute */
- xmlSecAssert2(ctx->service == NULL, -1);
- ctx->service = xmlGetProp(cur, xmlSecAttrService);
- if(ctx->service == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlGetProp",
- XMLSEC_ERRORS_R_XML_FAILED,
- "name=%s;node=%s",
- xmlSecErrorsSafeString(xmlSecAttrService),
- xmlSecErrorsSafeString(cur->name));
- return(-1);
- }
-
- /* check service */
- if((ctx->expectedService != NULL) && (!xmlStrEqual(ctx->expectedService, ctx->service))) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- NULL,
- XMLSEC_ERRORS_R_INVALID_DATA,
- "expectedService=%s;actualService=%s",
- xmlSecErrorsSafeString(ctx->expectedService),
- xmlSecErrorsSafeString(ctx->service));
- return(-1);
- }
-
- /* optional Nonce attribute */
- xmlSecAssert2(ctx->nonce == NULL, -1);
- ctx->nonce = xmlGetProp(cur, xmlSecAttrNonce);
-
- /* optional OriginalRequestId attribute */
- xmlSecAssert2(ctx->originalRequestId == NULL, -1);
- ctx->originalRequestId = xmlGetProp(cur, xmlSecAttrOriginalRequestId);
-
- /* optional ResponseLimit attribute */
- xmlSecAssert2(ctx->responseLimit == XMLSEC_XKMS_NO_RESPONSE_LIMIT, -1);
- tmp = xmlGetProp(cur, xmlSecAttrResponseLimit);
- if(tmp != NULL) {
- ctx->responseLimit = atoi((char*)tmp);
- xmlFree(tmp);
- }
-
- /* now read children */
- cur = xmlSecGetNextElementNode(cur->children);
-
- /* first node is optional <dsig:Signature/> node */
- if((cur != NULL) && xmlSecCheckNodeName(cur, xmlSecNodeSignature, xmlSecDSigNs)) {
- ret = xmlSecXkmsServerCtxSignatureNodeRead(ctx, cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxSignatureNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- cur = xmlSecGetNextElementNode(cur->next);
- }
-
- /* next is zero or more <xkms:MessageExtension/> nodes */
- ret = xmlSecXkmsServerCtxMessageExtensionNodesRead(ctx, &cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxMessageExtensionNodesRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* next is optional <xkms:OpaqueClientData/> node */
- if((cur != NULL) && xmlSecCheckNodeName(cur, xmlSecNodeOpaqueClientData, xmlSecXkmsNs)) {
- ret = xmlSecXkmsServerCtxOpaqueClientDataNodeRead(ctx, cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxOpaqueClientDataNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- cur = xmlSecGetNextElementNode(cur->next);
- }
-
- /* next is zero or more <xkms:ResponseMechanism/> nodes */
- ret = xmlSecQName2BitMaskNodesRead(gXmlSecXkmsResponseMechanismInfo, &cur,
- xmlSecNodeResponseMechanism, xmlSecXkmsNs,
- ((ctx->flags & XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_RESPONSE_MECHANISM) != 0) ? 1 : 0,
- &ctx->responseMechanismMask);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecQName2BitMaskNodesRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecNodeResponseMechanism));
- return(-1);
- }
-
- /* next is zero or more <xkms:RespondWith/> nodes */
- ret = xmlSecXkmsServerCtxRespondWithNodesRead(ctx, &cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxRespondWithNodesRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* next is optional <xkms:PendingNotification/> node */
- if((cur != NULL) && xmlSecCheckNodeName(cur, xmlSecNodePendingNotification, xmlSecXkmsNs)) {
- ret = xmlSecXkmsServerCtxPendingNotificationNodeRead(ctx, cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxPendingNotificationNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- cur = xmlSecGetNextElementNode(cur->next);
- }
-
- (*node) = cur;
- return(0);
-}
-
-static int
-xmlSecXkmsServerCtxSignatureNodeRead(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* todo: verify signature and make sure that correct data was signed */
- return(0);
-}
-
-/**
- * <!-- MessageExtension -->
- * <element name="MessageExtension" type="xkms:MessageExtensionAbstractType"
- * abstract="true"/>
- * <complexType name="MessageExtensionAbstractType" abstract="true"/>
- * <!-- /MessageExtension -->
- */
-static int
-xmlSecXkmsServerCtxMessageExtensionNodesRead(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr* node) {
- xmlNodePtr cur;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(ctx->firtsMsgExtNode == NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- cur = (*node);
- while((cur != NULL) && xmlSecCheckNodeName(cur, xmlSecNodeMessageExtension, xmlSecXkmsNs)) {
- if(ctx->firtsMsgExtNode == NULL) {
- ctx->firtsMsgExtNode = cur;
- }
- cur = xmlSecGetNextElementNode(cur->next);
- }
-
- (*node) = cur;
- return(0);
-}
-
-static int
-xmlSecXkmsServerCtxOpaqueClientDataNodeRead(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(ctx->opaqueClientDataNode == NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* remember that node, will copy it in the response later */
- ctx->opaqueClientDataNode = node;
- return(0);
-}
-
-static int
-xmlSecXkmsServerCtxRespondWithNodesRead(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr* node) {
- xmlNodePtr cur;
- int ret;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- cur = (*node);
- while((cur != NULL) && xmlSecCheckNodeName(cur, xmlSecNodeRespondWith, xmlSecXkmsNs)) {
- xmlSecXkmsRespondWithId id = xmlSecXkmsRespondWithIdUnknown;
-
- if(xmlSecPtrListGetSize(&(ctx->enabledRespondWithIds)) > 0) {
- id = xmlSecXkmsRespondWithIdListFindByNodeValue(&(ctx->enabledRespondWithIds), cur);
- } else {
- id = xmlSecXkmsRespondWithIdListFindByNodeValue(xmlSecXkmsRespondWithIdsGet(), cur);
- }
-
- if(id != xmlSecXkmsRespondWithIdUnknown) {
- ret = xmlSecXkmsRespondWithNodeRead(id, ctx, cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecCreateTree",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- } else if((ctx->flags & XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_RESPOND_WITH) != 0) {
- xmlChar* content ;
-
- content = xmlNodeGetContent(cur);
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- NULL,
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s,value=%s",
- xmlSecErrorsSafeString(cur->name),
- xmlSecErrorsSafeString(content));
- if(content != NULL) {
- xmlFree(content);
- }
- return(-1);
- }
- cur = xmlSecGetNextElementNode(cur->next);
- }
-
- (*node) = cur;
- return(0);
-}
-
-/**
- * XML Schema:
- * <!-- PendingNotification -->
- * <element name="PendingNotification" type="xkms:PendingNotificationType"/>
- * <complexType name="PendingNotificationType">
- * <attribute name="Mechanism" type="anyURI" use="required"/>
- * <attribute name="Identifier" type="anyURI" use="required"/>
- * </complexType>
- * <!-- /PendingNotification -->
- */
-static int
-xmlSecXkmsServerCtxPendingNotificationNodeRead(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- xmlSecAssert2(ctx->pendingNotificationMechanism == NULL, -1);
- ctx->pendingNotificationMechanism = xmlGetProp(node, xmlSecAttrMechanism);
- if(ctx->pendingNotificationMechanism == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlGetProp",
- XMLSEC_ERRORS_R_XML_FAILED,
- "name=%s;node=%s",
- xmlSecErrorsSafeString(xmlSecAttrMechanism),
- xmlSecErrorsSafeString(node->name));
- return(-1);
- }
-
- xmlSecAssert2(ctx->pendingNotificationIdentifier == NULL, -1);
- ctx->pendingNotificationIdentifier = xmlGetProp(node, xmlSecAttrIdentifier);
- if(ctx->pendingNotificationIdentifier == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlGetProp",
- XMLSEC_ERRORS_R_XML_FAILED,
- "name=%s;node=%s",
- xmlSecErrorsSafeString(xmlSecAttrIdentifier),
- xmlSecErrorsSafeString(node->name));
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * <xkms:PendingRequestType Id Service Nonce? OriginalRequestId? ResponseLimit? ResponseId?>
- * <ds:Signature>?
- * <xkms:MessageExtension>*
- * (<xkms:OpaqueClientData>
- * <xkms:OpaqueData>?
- * )?
- * <xkms:ResponseMechanism>*
- * <xkms:RespondWith>*
- * <xkms:PendingNotification Mechanism Identifier>?
- *
- * XML Schema:
- *
- * <!-- PendingRequest -->
- * <element name="PendingRequest" type="xkms:PendingRequestType"/>
- * <complexType name="PendingRequestType">
- * <complexContent>
- * <extension base="xkms:RequestAbstractType">
- * <attribute name="ResponseId" type="anyURI" use="optional"/>
- * </extension>
- * </complexContent>
- * </complexType>
- * <!-- /PendingRequest --> *
- */
-static int
-xmlSecXkmsServerCtxPendingRequestNodeRead(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr* node) {
- int ret;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* first read "parent" type */
- ret = xmlSecXkmsServerCtxRequestAbstractTypeNodeRead(ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxRequestAbstractTypeNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* todo: read responseId */
- return(0);
-}
-
-/**
- * <xkms:QueryKeyBinding Id?
- * <ds:KeyInfo>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:UseKeyWith Application Identifier>*
- * <xkms:TimeInstant Time>?
- *
- * XML Schema:
- * <!-- QueryKeyBinding -->
- * <element name="QueryKeyBinding" type="xkms:QueryKeyBindingType"/>
- * <complexType name="QueryKeyBindingType">
- * <complexContent>
- * <extension base="xkms:KeyBindingAbstractType">
- * <sequence>
- * <element ref="xkms:TimeInstant" minOccurs="0"/>
- * </sequence>
- * </extension>
- * </complexContent>
- * </complexType>
- * <!-- /QueryKeyBinding -->
- */
-static int
-xmlSecXkmsServerCtxQueryKeyBindingNodeRead(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- xmlNodePtr cur;
- int ret;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* first read "parent" type */
- cur = node;
- ret = xmlSecXkmsServerCtxKeyBindingAbstractTypeNodeRead(ctx, &cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxKeyBindingAbstractTypeNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* next is optional <xkms:TimeInstant/> node */
- if((cur != NULL) && xmlSecCheckNodeName(cur, xmlSecNodeTimeInstant, xmlSecXkmsNs)) {
- ret = xmlSecXkmsServerCtxTimeInstantNodeRead(ctx, cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxTimeInstantNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- cur = xmlSecGetNextElementNode(cur->next);
- }
-
- /* check that there is nothing after the last node */
- if(cur != NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- xmlSecErrorsSafeString(xmlSecNodeGetName(cur)),
- XMLSEC_ERRORS_R_UNEXPECTED_NODE,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * <xkms:KeyBindingAbstractType Id?>
- * <ds:KeyInfo>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:UseKeyWith Application Identifier>*
- *
- * XML Schema:
- * <!-- KeyBindingAbstractType-->
- * <complexType name="KeyBindingAbstractType" abstract="true">
- * <sequence>
- * <element ref="ds:KeyInfo" minOccurs="0"/>
- * <element ref="xkms:KeyUsage" minOccurs="0" maxOccurs="3"/>
- * <element ref="xkms:UseKeyWith" minOccurs="0"
- * maxOccurs="unbounded"/>
- * </sequence>
- * <attribute name="Id" type="ID" use="optional"/>
- * </complexType>
- * <!-- /KeyBindingAbstractType-->
- */
-static int
-xmlSecXkmsServerCtxKeyBindingAbstractTypeNodeRead(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr* node) {
- xmlNodePtr cur;
- int ret;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
- xmlSecAssert2((*node) != NULL, -1);
-
- cur = (*node);
- xmlSecAssert2(cur != NULL, -1);
-
- /* we don't care about Id attribute in this node */
- cur = xmlSecGetNextElementNode(cur->children);
-
- /* first node is optional <dsig:KeyInfo/> node. for now we only remember pointer */
- xmlSecAssert2(ctx->keyInfoNode == NULL, -1);
- if((cur != NULL) && xmlSecCheckNodeName(cur, xmlSecNodeKeyInfo, xmlSecDSigNs)) {
- ctx->keyInfoNode = cur;
- cur = xmlSecGetNextElementNode(cur->next);
- }
-
- /* next is zero or more <xkms:KeyUsage/> nodes */
- ret = xmlSecQName2BitMaskNodesRead(gXmlSecXkmsKeyUsageInfo, &cur,
- xmlSecNodeKeyUsage, xmlSecXkmsNs,
- ((ctx->flags & XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_KEY_USAGE) != 0) ? 1 : 0,
- &(ctx->keyInfoReadCtx.keyReq.keyUsage));
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecQName2BitMaskNodesRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecNodeKeyUsage));
- return(-1);
- }
-
- /* next is zero or more <xkms:UseKeyWith/> nodes */
- ret = xmlSecXkmsServerCtxUseKeyWithNodesRead(ctx, &cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxUseKeyWithNodesRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- (*node) = cur;
- return(0);
-}
-
-static int
-xmlSecXkmsServerCtxKeyBindingAbstractTypeNodeWrite(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node, xmlSecKeyPtr key) {
- xmlNodePtr cur;
- int ret;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
- xmlSecAssert2(key != NULL, -1);
-
- /* generate and add Id attribute */
- ret = xmlSecGenerateAndAddID(node, xmlSecAttrId, ctx->idPrefix, ctx->idLen);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecGenerateAndAddID",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* <dsig:KeyInfo/> node */
- cur = xmlSecAddChild(node, xmlSecNodeKeyInfo, xmlSecDSigNs);
- if(cur == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecAddChild",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "node=%s",
- xmlSecErrorsSafeString(xmlSecNodeKeyInfo));
- return(-1);
- }
-
- ret = xmlSecXkmsServerCtxKeyInfoNodeWrite(ctx, cur, key);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxKeyInfoNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* next is <xkms:KeyUsage/> node */
- ret = xmlSecQName2BitMaskNodesWrite(gXmlSecXkmsKeyUsageInfo, node,
- xmlSecNodeKeyUsage, xmlSecXkmsNs,
- key->usage);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecQName2BitMaskNodesWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecNodeKeyUsage));
- return(-1);
- }
-
- /* and the last node is <xkms:UseKeyWith/> */
- ret = xmlSecXkmsServerCtxUseKeyWithNodesWrite(ctx, node, key);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxUseKeyWithNodesWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-static int
-xmlSecXkmsServerCtxKeyInfoNodeWrite(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node, xmlSecKeyPtr key) {
- int ret;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(key != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* add child nodes as requested in <xkms:RespondWith/> nodes */
- ret = xmlSecXkmsRespondWithIdListWrite(&(ctx->respWithList), ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsRespondWithIdListWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- ret = xmlSecKeyInfoNodeWrite(node, key, &(ctx->keyInfoWriteCtx));
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecKeyInfoNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-
-/**
- * XML Schema:
- * <!-- UseKeyWith -->
- * <element name="UseKeyWith" type="xkms:UseKeyWithType"/>
- * <complexType name="UseKeyWithType">
- * <attribute name="Application" type="anyURI" use="required"/>
- * <attribute name="Identifier" type="string" use="required"/>
- * </complexType>
- * <!-- /UseKeyWith -->
- */
-static int
-xmlSecXkmsServerCtxUseKeyWithNodesRead(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr* node) {
- xmlSecPtrListPtr list;
- xmlNodePtr cur;
- xmlSecKeyUseWithPtr keyUseWith;
- xmlChar* application;
- xmlChar* identifier;
- int ret;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- list = &(ctx->keyInfoReadCtx.keyReq.keyUseWithList);
- xmlSecAssert2(xmlSecPtrListGetSize(list) == 0, -1);
-
- cur = (*node);
- while((cur != NULL) && xmlSecCheckNodeName(cur, xmlSecNodeUseKeyWith, xmlSecXkmsNs)) {
- application = xmlGetProp(cur, xmlSecAttrApplication);
- if(application == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlGetProp",
- XMLSEC_ERRORS_R_XML_FAILED,
- "name=%s;node=%s",
- xmlSecErrorsSafeString(xmlSecAttrApplication),
- xmlSecErrorsSafeString(cur->name));
- return(-1);
- }
-
- identifier = xmlGetProp(cur, xmlSecAttrIdentifier);
- if(identifier == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlGetProp",
- XMLSEC_ERRORS_R_XML_FAILED,
- "name=%s;node=%s",
- xmlSecErrorsSafeString(xmlSecAttrIdentifier),
- xmlSecErrorsSafeString(cur->name));
- xmlFree(application);
- return(-1);
- }
-
- keyUseWith = xmlSecKeyUseWithCreate(application, identifier);
- if(keyUseWith == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecKeyUseWithCreate",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlFree(application);
- xmlFree(identifier);
- return(-1);
- }
- xmlFree(application);
- xmlFree(identifier);
-
- ret = xmlSecPtrListAdd(list, keyUseWith);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListAdd",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecKeyUseWithDestroy(keyUseWith);
- return(-1);
- }
-
- cur = xmlSecGetNextElementNode(cur->next);
- }
-
- (*node) = cur;
- return(0);
-}
-
-static int
-xmlSecXkmsServerCtxUseKeyWithNodesWrite(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node, xmlSecKeyPtr key) {
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
- xmlSecAssert2(key != NULL, -1);
-
- /* todo: write UseKeyWith */
- return(0);
-}
-
-
-static int
-xmlSecXkmsServerCtxTimeInstantNodeRead(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* todo: parse xml schema dataTime or use libxml? */
- return(0);
-}
-
-/**
- * <xkms:ResultType Id Service Nonce? ResultMajor ResultMinor? RequestId?>
- * <ds:Signature>?
- * <xkms:MessageExtension>*
- * (<xkms:OpaqueClientData>
- * <xkms:OpaqueData>?
- * )?
- * <xkms:RequestSignatureValue>*
- *
- * XML Schema:
- * <!-- ResultType -->
- * <element name="Result" type="xkms:ResultType"/>
- * <complexType name="ResultType">
- * <complexContent>
- * <extension base="xkms:MessageAbstractType">
- * <sequence>
- * <element ref="xkms:RequestSignatureValue" minOccurs="0"/>
- * </sequence>
- * <attribute name="ResultMajor" type="QName" use="required"/>
- * <attribute name="ResultMinor" type="QName" use="optional"/>
- * <attribute name="RequestId" type="anyURI" use="optional"/>
- * </extension>
- * </complexContent>
- * </complexType>
- * <!-- /ResultType -->
- */
-static int
-xmlSecXkmsServerCtxResultTypeNodeWrite(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- int ret;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* generate and add Id attribute */
- ret = xmlSecGenerateAndAddID(node, xmlSecAttrId, ctx->idPrefix, ctx->idLen);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecGenerateAndAddID",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* todo: generate nonce? */
-
- /* set Service atribute (required) */
- if((ctx->service == NULL) || (xmlSetProp(node, xmlSecAttrService, ctx->service) == NULL)) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSetProp",
- XMLSEC_ERRORS_R_XML_FAILED,
- "name=%s,value=%s",
- xmlSecErrorsSafeString(xmlSecAttrService),
- xmlSecErrorsSafeString(ctx->service));
- return(-1);
- }
-
-
- /* set RequestId atribute (optional) */
- if((ctx->id != NULL) && (xmlSetProp(node, xmlSecAttrRequestId, ctx->id) == NULL)) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSetProp",
- XMLSEC_ERRORS_R_XML_FAILED,
- "name=%s,value=%s",
- xmlSecErrorsSafeString(xmlSecAttrRequestId),
- xmlSecErrorsSafeString(ctx->id));
- return(-1);
- }
-
-
- /* set major code (required) */
- ret = xmlSecQName2IntegerAttributeWrite(gXmlSecXkmsResultMajorInfo, node,
- xmlSecAttrResultMajor, ctx->resultMajor);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecQName2IntegerAttributeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s,value=%d",
- xmlSecErrorsSafeString(xmlSecAttrResultMajor),
- ctx->resultMajor);
- return(-1);
- }
-
- /* set minor code (optional) */
- if(ctx->resultMinor != xmlSecXkmsResultMinorNone) {
- ret = xmlSecQName2IntegerAttributeWrite(gXmlSecXkmsMinorErrorInfo, node,
- xmlSecAttrResultMinor, ctx->resultMinor);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecQName2IntegerAttributeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s,value=%d",
- xmlSecErrorsSafeString(xmlSecAttrResultMinor),
- ctx->resultMinor);
- return(-1);
- }
- }
-
- /* todo: create signature template */
-
- /* todo: create message extension nodes? */
-
- /* <xkms:OpaqueClientData/>: An XKMS service SHOULD return the value of
- * the <OpaqueClientData> element unmodified in a request in a response
- * with status code Succes */
- if((ctx->resultMajor == xmlSecXkmsResultMajorSuccess) && (ctx->opaqueClientDataNode != NULL)) {
- xmlNodePtr copyNode;
-
- copyNode = xmlDocCopyNode(ctx->opaqueClientDataNode, node->doc, 1);
- if(copyNode == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSetProp",
- XMLSEC_ERRORS_R_XML_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(ctx->opaqueClientDataNode->name));
- return(-1);
- }
-
- if(xmlSecAddChildNode(node, copyNode) == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecAddChildNode",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(copyNode->name));
- return(-1);
- }
- }
-
- ret = xmlSecXkmsServerCtxRequestSignatureValueNodeWrite(ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxRequestSignatureValueNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * A service SHOULD include the <RequestSignatureValue> element in a response
- * if the following conditions are satisfied and MUST NOT include the value
- * otherwise:
- *
- *
- * - The <ds:Signature> element was present in the corresponding request
- * - The service successfully verified the <ds:Signature> element in the
- * corresponding request, and
- * - The ResponseMechanism RequestSignatureValue was specified.
- *
- */
-static int
-xmlSecXkmsServerCtxRequestSignatureValueNodeWrite(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* todo: check all conditions for RequestSignatureValue */
- if((ctx->responseMechanismMask & XMLSEC_XKMS_RESPONSE_MECHANISM_MASK_REQUEST_SIGNATURE_VALUE) == 0) {
- /* The ResponseMechanism RequestSignatureValue was not specified. */
- return(0);
- }
-
- /* todo: write RequestSignatureValue */
- return(0);
-}
-
-
-/**
- *
- * <xkms:UnverifiedKeyBindingType Id?>
- * <ds:KeyInfo>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:UseKeyWith Application Identifier>*
- * <xkms:ValidityInterval NotBefore NotOnOrAfter>?
- *
- * XML Schema:
- *
- * <!-- UnverifiedKeyBinding -->
- * <element name="UnverifiedKeyBinding" type="xkms:UnverifiedKeyBindingType"/>
- * <complexType name="UnverifiedKeyBindingType">
- * <complexContent>
- * <extension base="xkms:KeyBindingAbstractType">
- * <sequence>
- * <element ref="xkms:ValidityInterval" minOccurs="0"/>
- * </sequence>
- * </extension>
- * </complexContent>
- * </complexType>
- * <!-- /UnverifiedKeyBinding -->
- */
-static int
-xmlSecXkmsServerCtxUnverifiedKeyBindingNodeWrite(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node, xmlSecKeyPtr key) {
- int ret;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(key != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* first write "parent" type */
- ret = xmlSecXkmsServerCtxKeyBindingAbstractTypeNodeWrite(ctx, node, key);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxKeyBindingAbstractTypeNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* <xkms:ValidityInterval/> node */
- ret = xmlSecXkmsServerCtxValidityIntervalNodeWrite(ctx, node, key);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxValidityIntervalNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-static int
-xmlSecXkmsServerCtxValidityIntervalNodeWrite(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node, xmlSecKeyPtr key) {
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(key != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* todo: write key validity interval */
- return(0);
-}
-
-/**
- * <xkms:KeyBinding Id?>
- * <ds:KeyInfo>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:UseKeyWith Application Identifier>*
- * <xkms:ValidityInterval NotBefore NotOnOrAfter>?
- * <xkms:Status StatusValue>
- * (<xkms:ValidReason>?
- * <xkms:IndeterminateReason>?
- * <xkms:InvalidReason>?
- * )*
- *
- * XML Schema:
- *
- * <!-- KeyBinding -->
- * <element name="KeyBinding" type="xkms:KeyBindingType"/>
- * <complexType name="KeyBindingType">
- * <complexContent>
- * <extension base="xkms:UnverifiedKeyBindingType">
- * <sequence>
- * <element ref="xkms:Status"/>
- * </sequence>
- * </extension>
- * </complexContent>
- * </complexType>
- * <!-- /KeyBinding -->
- */
-static int
-xmlSecXkmsServerCtxKeyBindingNodeWrite(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node, xmlSecKeyPtr key) {
- int ret;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(key != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* first write "parent" type */
- ret = xmlSecXkmsServerCtxUnverifiedKeyBindingNodeWrite(ctx, node, key);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxKeyBindingAbstractTypeNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* <xkms:Status/> node */
- ret = xmlSecXkmsServerCtxKeyBindingStatusNodeWrite(ctx, node, key);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxKeyBindingStatusNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * <xkms:Status StatusValue>
- * (<xkms:ValidReason>?
- * <xkms:IndeterminateReason>?
- * <xkms:InvalidReason>?
- * )*
- *
- * XML Schema:
- *
- * <!-- Status -->
- * <element name="Status" type="xkms:StatusType"/>
- * <complexType name="StatusType">
- * <sequence>
- * <element ref="xkms:ValidReason" minOccurs="0"
- * maxOccurs="unbounded"/>
- * <element ref="xkms:IndeterminateReason" minOccurs="0"
- * maxOccurs="unbounded"/>
- * <element ref="xkms:InvalidReason" minOccurs="0"
- * maxOccurs="unbounded"/>
- * </sequence>
- * <attribute name="StatusValue" type="xkms:KeyBindingStatus"
- * use="required"/>
- * </complexType>
- * <simpleType name="KeyBindingStatus">
- * <restriction base="QName">
- * <enumeration value="xkms:Valid"/>
- * <enumeration value="xkms:Invalid"/>
- * <enumeration value="xkms:Indeterminate"/>
- * </restriction>
- * </simpleType>
- * <!-- /Status -->
- */
-static int
-xmlSecXkmsServerCtxKeyBindingStatusNodeWrite(xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node, xmlSecKeyPtr key) {
- xmlNodePtr cur;
- int ret;
-
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(key != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- cur = xmlSecAddChild(node, xmlSecNodeStatus, xmlSecXkmsNs);
- if(cur == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecAddChild",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "node=%s",
- xmlSecErrorsSafeString(xmlSecNodeStatus));
- return(-1);
- }
-
- /* if we are here then the key was validated */
- ret = xmlSecQName2IntegerAttributeWrite(gXmlSecXkmsKeyBindingStatusInfo, cur,
- xmlSecAttrStatusValue, xmlSecXkmsKeyBindingStatusValid);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecQName2IntegerAttributeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecAttrStatusValue));
- return(-1);
- }
-
- /* todo: write the reasons */
- return(0);
-}
-
-/************************************************************************
- *
- * xmlSecXkmsServerCtx list
- *
- ************************************************************************/
-static xmlSecPtrListKlass xmlSecXkmsServerCtxPtrListKlass = {
- BAD_CAST "xkms-server-ctx-list",
- NULL, /* xmlSecPtrDuplicateItemMethod duplicateItem; */
- (xmlSecPtrDestroyItemMethod)xmlSecXkmsServerCtxDestroy, /* xmlSecPtrDestroyItemMethod destroyItem; */
- (xmlSecPtrDebugDumpItemMethod)xmlSecXkmsServerCtxDebugDump, /* xmlSecPtrDebugDumpItemMethod debugDumpItem; */
- (xmlSecPtrDebugDumpItemMethod)xmlSecXkmsServerCtxDebugXmlDump, /* xmlSecPtrDebugDumpItemMethod debugXmlDumpItem; */
-};
-
-xmlSecPtrListId
-xmlSecXkmsServerCtxPtrListGetKlass(void) {
- return(&xmlSecXkmsServerCtxPtrListKlass);
-}
-
-
-/**************************************************************************
- *
- * Global xmlSecXkmsRespondWithIds list functions
- *
- *************************************************************************/
-static xmlSecPtrList xmlSecAllXkmsRespondWithIds;
-
-
-/**
- * xmlSecXkmsRespondWithIdsGet:
- *
- * Gets global registered RespondWith klasses list.
- *
- * Returns: the pointer to list of all registered RespondWith klasses.
- */
-xmlSecPtrListPtr
-xmlSecXkmsRespondWithIdsGet(void) {
- return(&xmlSecAllXkmsRespondWithIds);
-}
-
-/**
- * xmlSecXkmsRespondWithIdsInit:
- *
- * Initializes the RespondWith klasses. This function is called from the
- * #xmlSecInit function and the application should not call it directly.
- *
- * Returns: 0 on success or a negative value if an error occurs.
- */
-int
-xmlSecXkmsRespondWithIdsInit(void) {
- int ret;
-
- ret = xmlSecPtrListInitialize(xmlSecXkmsRespondWithIdsGet(), xmlSecXkmsRespondWithIdListId);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListPtrInitialize",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "xmlSecXkmsRespondWithIdListId");
- return(-1);
- }
-
- ret = xmlSecXkmsRespondWithIdsRegisterDefault();
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsRespondWithIdsRegisterDefault",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * xmlSecXkmsRespondWithIdsShutdown:
- *
- * Shuts down the keys data klasses. This function is called from the
- * #xmlSecShutdown function and the application should not call it directly.
- */
-void
-xmlSecXkmsRespondWithIdsShutdown(void) {
- xmlSecPtrListFinalize(xmlSecXkmsRespondWithIdsGet());
-}
-
-/**
- * xmlSecXkmsRespondWithIdsRegister:
- * @id: the RespondWith klass.
- *
- * Registers @id in the global list of RespondWith klasses.
- *
- * Returns: 0 on success or a negative value if an error occurs.
- */
-int
-xmlSecXkmsRespondWithIdsRegister(xmlSecXkmsRespondWithId id) {
- int ret;
-
- xmlSecAssert2(id != xmlSecXkmsRespondWithIdUnknown, -1);
-
- ret = xmlSecPtrListAdd(xmlSecXkmsRespondWithIdsGet(), (xmlSecPtr)id);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListAdd",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "RespondWith=%s",
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(id)));
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * xmlSecXkmsRespondWithIdsRegisterDefault:
- *
- * Registers default (implemented by XML Security Library)
- * RespondWith klasses: KeyName, KeyValue,...
- *
- * Returns: 0 on success or a negative value if an error occurs.
- */
-int
-xmlSecXkmsRespondWithIdsRegisterDefault(void) {
- if(xmlSecXkmsRespondWithIdsRegister(xmlSecXkmsRespondWithKeyNameId) < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsRespondWithIdsRegister",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(xmlSecXkmsRespondWithKeyNameId)));
- return(-1);
- }
-
- if(xmlSecXkmsRespondWithIdsRegister(xmlSecXkmsRespondWithKeyValueId) < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsRespondWithIdsRegister",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(xmlSecXkmsRespondWithKeyValueId)));
- return(-1);
- }
-
- if(xmlSecXkmsRespondWithIdsRegister(xmlSecXkmsRespondWithPrivateKeyId) < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsRespondWithIdsRegister",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(xmlSecXkmsRespondWithPrivateKeyId)));
- return(-1);
- }
-
- if(xmlSecXkmsRespondWithIdsRegister(xmlSecXkmsRespondWithRetrievalMethodId) < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsRespondWithIdsRegister",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(xmlSecXkmsRespondWithRetrievalMethodId)));
- return(-1);
- }
-
- if(xmlSecXkmsRespondWithIdsRegister(xmlSecXkmsRespondWithX509CertId) < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsRespondWithIdsRegister",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(xmlSecXkmsRespondWithX509CertId)));
- return(-1);
- }
-
- if(xmlSecXkmsRespondWithIdsRegister(xmlSecXkmsRespondWithX509ChainId) < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsRespondWithIdsRegister",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(xmlSecXkmsRespondWithX509ChainId)));
- return(-1);
- }
-
- if(xmlSecXkmsRespondWithIdsRegister(xmlSecXkmsRespondWithX509CRLId) < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsRespondWithIdsRegister",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(xmlSecXkmsRespondWithX509CRLId)));
- return(-1);
- }
-
- /* TODO: OCSP, PGP, PGPWeb, SPKI */
- /*
- if(xmlSecXkmsRespondWithIdsRegister(xmlSecXkmsRespondWithPGPId) < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsRespondWithIdsRegister",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(xmlSecXkmsRespondWithPGPId)));
- return(-1);
- }
-
- if(xmlSecXkmsRespondWithIdsRegister(xmlSecXkmsRespondWithSPKIId) < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsRespondWithIdsRegister",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(xmlSecXkmsRespondWithSPKIId)));
- return(-1);
- }
- */
- return(0);
-}
-
-
-/************************************************************************
- *
- * XKMS RespondWith Klass
- *
- ************************************************************************/
-/**
- * xmlSecXkmsRespondWithNodeRead:
- * @id: the RespondWith class.
- * @ctx: the XKMS request processing context.
- * @node: the pointer to <xkms:RespondWith/> node.
- *
- * Reads the content of the <xkms:RespondWith/> @node.
- *
- * Returns: 0 on success or a negative value if an error occurs.
- */
-int
-xmlSecXkmsRespondWithNodeRead(xmlSecXkmsRespondWithId id, xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node) {
- xmlSecAssert2(id != xmlSecXkmsRespondWithIdUnknown, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- if(id->readNode != NULL) {
- return((id->readNode)(id, ctx, node));
- }
- return(0);
-}
-
-/**
- * xmlSecXkmsRespondWithNodeWrite:
- * @id: the RespondWith class.
- * @ctx: the XKMS request processing context.
- * @node: the pointer to <xkms:RespondWith/> node.
- *
- * Writes the content of the <xkms:RespondWith/> @node.
- *
- * Returns: 0 on success or a negative value if an error occurs.
- */
-int
-xmlSecXkmsRespondWithNodeWrite(xmlSecXkmsRespondWithId id, xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node) {
- xmlSecAssert2(id != xmlSecXkmsRespondWithIdUnknown, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- if(id->writeNode != NULL) {
- return((id->writeNode)(id, ctx, node));
- }
- return(0);
-}
-
-/**
- * xmlSecXkmsRespondWithDebugDump:
- * @id: the RespondWith class.
- * @output: the output file.
- *
- * Writes debug information about @id into the @output.
- */
-void
-xmlSecXkmsRespondWithDebugDump(xmlSecXkmsRespondWithId id, FILE* output) {
- xmlSecAssert(id != xmlSecXkmsRespondWithIdUnknown);
- xmlSecAssert(output != NULL);
-
- fprintf(output, "=== RespondWith: \"%s\" (href=\"%s\")\n",
- xmlSecErrorsSafeString(id->valueName),
- xmlSecErrorsSafeString(id->valueNs));
-}
-
-/**
- * xmlSecXkmsRespondWithDebugXmlDump:
- * @id: the RespondWith class.
- * @output: the output file.
- *
- * Writes debug information about @id into the @output in XML format.
- */
-void
-xmlSecXkmsRespondWithDebugXmlDump(xmlSecXkmsRespondWithId id, FILE* output) {
- xmlSecAssert(id != xmlSecXkmsRespondWithIdUnknown);
- xmlSecAssert(output != NULL);
-
- fprintf(output, "<RespondWith href=\"");
- xmlSecPrintXmlString(output, id->valueNs);
- fprintf(output, "\">");
- xmlSecPrintXmlString(output, id->valueName);
- fprintf(output, "</RespondWith>\n");
-}
-
-int
-xmlSecXkmsRespondWithDefaultNodeRead(xmlSecXkmsRespondWithId id, xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node) {
- int ret;
-
- xmlSecAssert2(id != xmlSecXkmsRespondWithIdUnknown, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- ret = xmlSecXkmsRespondWithIdListFind(&(ctx->respWithList), id);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(id)),
- "xmlSecXkmsRespondWithIdListFind",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- } else if(ret > 0) {
- /* do nothing, we already have it in the list */
- return(0);
- }
-
- ret = xmlSecPtrListAdd(&(ctx->respWithList), id);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(id)),
- "xmlSecPtrListAdd",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-int
-xmlSecXkmsRespondWithDefaultNodeWrite(xmlSecXkmsRespondWithId id, xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node) {
- xmlNodePtr cur;
-
- xmlSecAssert2(id != xmlSecXkmsRespondWithIdUnknown, -1);
- xmlSecAssert2(id->nodeName != NULL, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- cur = xmlSecAddChild(node, id->nodeName, id->nodeNs);
- if(cur == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(id)),
- "xmlSecAddChild",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "node=%s",
- xmlSecErrorsSafeString(id->nodeName));
- return(-1);
- }
-
- return(0);
-}
-
-/************************************************************************
- *
- * XKMS RespondWith Klass List
- *
- ************************************************************************/
-static xmlSecPtrListKlass xmlSecXkmsRespondWithIdListKlass = {
- BAD_CAST "respond-with-ids-list",
- NULL, /* xmlSecPtrDuplicateItemMethod duplicateItem; */
- NULL, /* xmlSecPtrDestroyItemMethod destroyItem; */
- (xmlSecPtrDebugDumpItemMethod)xmlSecXkmsRespondWithDebugDump, /* xmlSecPtrDebugDumpItemMethod debugDumpItem; */
- (xmlSecPtrDebugDumpItemMethod)xmlSecXkmsRespondWithDebugXmlDump, /* xmlSecPtrDebugDumpItemMethod debugXmlDumpItem; */
-};
-
-xmlSecPtrListId
-xmlSecXkmsRespondWithIdListGetKlass(void) {
- return(&xmlSecXkmsRespondWithIdListKlass);
-}
-
-int
-xmlSecXkmsRespondWithIdListFind(xmlSecPtrListPtr list, xmlSecXkmsRespondWithId id) {
- xmlSecSize i, size;
-
- xmlSecAssert2(xmlSecPtrListCheckId(list, xmlSecXkmsRespondWithIdListId), -1);
- xmlSecAssert2(id != xmlSecXkmsRespondWithIdUnknown, -1);
-
- size = xmlSecPtrListGetSize(list);
- for(i = 0; i < size; ++i) {
- if((xmlSecXkmsRespondWithId)xmlSecPtrListGetItem(list, i) == id) {
- return(1);
- }
- }
- return(0);
-}
-
-xmlSecXkmsRespondWithId
-xmlSecXkmsRespondWithIdListFindByNodeValue(xmlSecPtrListPtr list, xmlNodePtr node) {
- xmlSecXkmsRespondWithId result = xmlSecXkmsRespondWithIdUnknown;
- xmlSecXkmsRespondWithId id;
- xmlChar* content;
- xmlChar* qnameLocalPart = NULL;
- xmlChar* qnamePrefix = NULL;
- const xmlChar* qnameHref;
- xmlNsPtr ns;
- xmlSecSize i, size;
-
- xmlSecAssert2(xmlSecPtrListCheckId(list, xmlSecXkmsRespondWithIdListId), xmlSecXkmsRespondWithIdUnknown);
- xmlSecAssert2(node != NULL, xmlSecXkmsRespondWithIdUnknown);
-
- content = xmlNodeGetContent(node);
- if(content == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlNodeGetContent",
- XMLSEC_ERRORS_R_XML_FAILED,
- "node=%s",
- xmlSecErrorsSafeString(node->name));
- return(xmlSecXkmsRespondWithIdUnknown);
- }
-
- qnameLocalPart = (xmlChar*)xmlStrchr(content, ':');
- if(qnameLocalPart != NULL) {
- qnamePrefix = content;
- *(qnameLocalPart++) = '\0';
- } else {
- qnamePrefix = NULL;
- qnameLocalPart = content;
- }
-
- /* search namespace href */
- ns = xmlSearchNs(node->doc, node, qnamePrefix);
- if((ns == NULL) && (qnamePrefix != NULL)) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSearchNs",
- XMLSEC_ERRORS_R_XML_FAILED,
- "node=%s,qnamePrefix=%s",
- xmlSecErrorsSafeString(node->name),
- xmlSecErrorsSafeString(qnamePrefix));
- xmlFree(content);
- return(xmlSecXkmsRespondWithIdUnknown);
- }
- qnameHref = (ns != NULL) ? ns->href : BAD_CAST NULL;
-
- size = xmlSecPtrListGetSize(list);
- for(i = 0; i < size; ++i) {
- id = (xmlSecXkmsRespondWithId)xmlSecPtrListGetItem(list, i);
- if((id != xmlSecXkmsRespondWithIdUnknown) &&
- xmlStrEqual(id->valueName, qnameLocalPart) &&
- xmlStrEqual(id->valueNs, qnameHref)) {
- result = id;
- break;
- }
- }
-
- xmlFree(content);
- return(result);
-}
-
-int
-xmlSecXkmsRespondWithIdListWrite(xmlSecPtrListPtr list, xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- xmlSecXkmsRespondWithId id;
- xmlSecSize i, size;
- int ret;
-
- xmlSecAssert2(xmlSecPtrListCheckId(list, xmlSecXkmsRespondWithIdListId), -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- size = xmlSecPtrListGetSize(list);
- for(i = 0; i < size; ++i) {
- id = (xmlSecXkmsRespondWithId)xmlSecPtrListGetItem(list, i);
- if(id != xmlSecXkmsRespondWithIdUnknown) {
- ret = xmlSecXkmsRespondWithNodeWrite(id, ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(id)),
- "xmlSecXkmsRespondWithNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- }
- }
-
- return(0);
-}
-
-/********************************************************************
- *
- * XML Sec Library RespondWith Ids
- *
- *******************************************************************/
-static xmlSecXkmsRespondWithKlass xmlSecXkmsRespondWithKeyNameKlass = {
- xmlSecRespondWithKeyName, /* const xmlChar* valueName; */
- xmlSecXkmsNs, /* const xmlChar* valueNs; */
- xmlSecNodeKeyName, /* const xmlChar* nodeName; */
- xmlSecDSigNs, /* const xmlChar* nodeNs; */
- xmlSecXkmsRespondWithDefaultNodeRead, /* xmlSecXkmsRespondWithNodeReadMethod readNode; */
- xmlSecXkmsRespondWithDefaultNodeWrite, /* xmlSecXkmsRespondWithNodeWriteMethod writeNode; */
- NULL, /* void* reserved1; */
- NULL /* void* reserved2; */
-};
-
-/**
- * xmlSecXkmsRespondWithKeyNameGetKlass:
- *
- * The respond with KeyName klass.
- *
- * Returns: respond with KeyName klass.
- */
-xmlSecXkmsRespondWithId
-xmlSecXkmsRespondWithKeyNameGetKlass(void) {
- return(&xmlSecXkmsRespondWithKeyNameKlass);
-}
-
-
-
-static int xmlSecXkmsRespondWithKeyValueNodeRead (xmlSecXkmsRespondWithId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static xmlSecXkmsRespondWithKlass xmlSecXkmsRespondWithKeyValueKlass = {
- xmlSecRespondWithKeyValue, /* const xmlChar* valueName; */
- xmlSecXkmsNs, /* const xmlChar* valueNs; */
- xmlSecNodeKeyValue, /* const xmlChar* nodeName; */
- xmlSecDSigNs, /* const xmlChar* nodeNs; */
- xmlSecXkmsRespondWithKeyValueNodeRead, /* xmlSecXkmsRespondWithNodeReadMethod readNode; */
- xmlSecXkmsRespondWithDefaultNodeWrite, /* xmlSecXkmsRespondWithNodeWriteMethod writeNode; */
- NULL, /* void* reserved1; */
- NULL /* void* reserved2; */
-};
-
-/**
- * xmlSecXkmsRespondWithKeyValueGetKlass:
- *
- * The respond with KeyValue klass.
- *
- * Returns: respond with KeyValue klass.
- */
-xmlSecXkmsRespondWithId
-xmlSecXkmsRespondWithKeyValueGetKlass(void) {
- return(&xmlSecXkmsRespondWithKeyValueKlass);
-}
-
-static int
-xmlSecXkmsRespondWithKeyValueNodeRead(xmlSecXkmsRespondWithId id, xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node) {
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsRespondWithKeyValueId, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* do usual stuff */
- ret = xmlSecXkmsRespondWithDefaultNodeRead(id, ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(id)),
- "xmlSecXkmsRespondWithDefaultNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* and now set some parameters in the ctx to look for a public or private
- * key and to write a public key
- */
- ctx->keyInfoReadCtx.keyReq.keyType |= (xmlSecKeyDataTypePublic | xmlSecKeyDataTypePrivate);
- ctx->keyInfoWriteCtx.keyReq.keyType |= xmlSecKeyDataTypePublic;
-
- return(0);
-}
-
-static int xmlSecXkmsRespondWithPrivateKeyNodeRead (xmlSecXkmsRespondWithId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static xmlSecXkmsRespondWithKlass xmlSecXkmsRespondWithPrivateKeyKlass = {
- xmlSecRespondWithPrivateKey, /* const xmlChar* valueName; */
- xmlSecXkmsNs, /* const xmlChar* valueNs; */
- xmlSecNodeKeyValue, /* const xmlChar* nodeName; */
- xmlSecDSigNs, /* const xmlChar* nodeNs; */
- xmlSecXkmsRespondWithPrivateKeyNodeRead, /* xmlSecXkmsRespondWithNodeReadMethod readNode; */
- xmlSecXkmsRespondWithDefaultNodeWrite, /* xmlSecXkmsRespondWithNodeWriteMethod writeNode; */
- NULL, /* void* reserved1; */
- NULL /* void* reserved2; */
-};
-
-/**
- * xmlSecXkmsRespondWithPrivateKeyGetKlass:
- *
- * The respond with PrivateKey klass.
- *
- * Returns: respond with PrivateKey klass.
- */
-xmlSecXkmsRespondWithId
-xmlSecXkmsRespondWithPrivateKeyGetKlass(void) {
- return(&xmlSecXkmsRespondWithPrivateKeyKlass);
-}
-
-static int
-xmlSecXkmsRespondWithPrivateKeyNodeRead(xmlSecXkmsRespondWithId id, xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node) {
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsRespondWithPrivateKeyId, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* do usual stuff */
- ret = xmlSecXkmsRespondWithDefaultNodeRead(id, ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(id)),
- "xmlSecXkmsRespondWithDefaultNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* and now set some parameters in the ctx to look for a private
- * key and to write a private key
- */
- ctx->keyInfoReadCtx.keyReq.keyType |= xmlSecKeyDataTypePrivate;
- ctx->keyInfoWriteCtx.keyReq.keyType |= xmlSecKeyDataTypePrivate;
-
- return(0);
-}
-
-static xmlSecXkmsRespondWithKlass xmlSecXkmsRespondWithRetrievalMethodKlass = {
- xmlSecRespondWithRetrievalMethod, /* const xmlChar* valueName; */
- xmlSecXkmsNs, /* const xmlChar* valueNs; */
- xmlSecNodeRetrievalMethod, /* const xmlChar* nodeName; */
- xmlSecDSigNs, /* const xmlChar* nodeNs; */
- xmlSecXkmsRespondWithDefaultNodeRead, /* xmlSecXkmsRespondWithNodeReadMethod readNode; */
- xmlSecXkmsRespondWithDefaultNodeWrite, /* xmlSecXkmsRespondWithNodeWriteMethod writeNode; */
- NULL, /* void* reserved1; */
- NULL /* void* reserved2; */
-};
-
-/**
- * xmlSecXkmsRespondWithRetrievalMethodGetKlass:
- *
- * The respond with RetrievalMethod klass.
- *
- * Returns: respond with RetrievalMethod klass.
- */
-xmlSecXkmsRespondWithId
-xmlSecXkmsRespondWithRetrievalMethodGetKlass(void) {
- return(&xmlSecXkmsRespondWithRetrievalMethodKlass);
-}
-
-
-
-static int xmlSecXkmsRespondWithX509CertNodeRead (xmlSecXkmsRespondWithId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static xmlSecXkmsRespondWithKlass xmlSecXkmsRespondWithX509CertKlass = {
- xmlSecRespondWithX509Cert, /* const xmlChar* valueName; */
- xmlSecXkmsNs, /* const xmlChar* valueNs; */
- xmlSecNodeX509Data, /* const xmlChar* nodeName; */
- xmlSecDSigNs, /* const xmlChar* nodeNs; */
- xmlSecXkmsRespondWithX509CertNodeRead, /* xmlSecXkmsRespondWithNodeReadMethod readNode; */
- xmlSecXkmsRespondWithDefaultNodeWrite, /* xmlSecXkmsRespondWithNodeWriteMethod writeNode; */
- NULL, /* void* reserved1; */
- NULL /* void* reserved2; */
-};
-
-/**
- * xmlSecXkmsRespondWithX509CertGetKlass:
- *
- * The respond with X509Cert klass.
- *
- * Returns: respond with X509Cert klass.
- */
-xmlSecXkmsRespondWithId
-xmlSecXkmsRespondWithX509CertGetKlass(void) {
- return(&xmlSecXkmsRespondWithX509CertKlass);
-}
-
-static int
-xmlSecXkmsRespondWithX509CertNodeRead(xmlSecXkmsRespondWithId id, xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node) {
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsRespondWithX509CertId, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* do usual stuff */
- ret = xmlSecXkmsRespondWithDefaultNodeRead(id, ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(id)),
- "xmlSecXkmsRespondWithDefaultNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-static int xmlSecXkmsRespondWithX509ChainNodeRead (xmlSecXkmsRespondWithId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static xmlSecXkmsRespondWithKlass xmlSecXkmsRespondWithX509ChainKlass = {
- xmlSecRespondWithX509Chain, /* const xmlChar* valueName; */
- xmlSecXkmsNs, /* const xmlChar* valueNs; */
- xmlSecNodeX509Data, /* const xmlChar* nodeName; */
- xmlSecDSigNs, /* const xmlChar* nodeNs; */
- xmlSecXkmsRespondWithX509ChainNodeRead, /* xmlSecXkmsRespondWithNodeReadMethod readNode; */
- xmlSecXkmsRespondWithDefaultNodeWrite, /* xmlSecXkmsRespondWithNodeWriteMethod writeNode; */
- NULL, /* void* reserved1; */
- NULL /* void* reserved2; */
-};
-
-/**
- * xmlSecXkmsRespondWithX509ChainGetKlass:
- *
- * The respond with X509Chain klass.
- *
- * Returns: respond with X509Chain klass.
- */
-xmlSecXkmsRespondWithId
-xmlSecXkmsRespondWithX509ChainGetKlass(void) {
- return(&xmlSecXkmsRespondWithX509ChainKlass);
-}
-
-static int
-xmlSecXkmsRespondWithX509ChainNodeRead(xmlSecXkmsRespondWithId id, xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node) {
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsRespondWithX509ChainId, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* do usual stuff */
- ret = xmlSecXkmsRespondWithDefaultNodeRead(id, ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(id)),
- "xmlSecXkmsRespondWithDefaultNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-static int xmlSecXkmsRespondWithX509CRLNodeRead (xmlSecXkmsRespondWithId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static xmlSecXkmsRespondWithKlass xmlSecXkmsRespondWithX509CRLKlass = {
- xmlSecRespondWithX509CRL, /* const xmlChar* valueName; */
- xmlSecXkmsNs, /* const xmlChar* valueNs; */
- xmlSecNodeX509Data, /* const xmlChar* nodeName; */
- xmlSecDSigNs, /* const xmlChar* nodeNs; */
- xmlSecXkmsRespondWithX509CRLNodeRead, /* xmlSecXkmsRespondWithNodeReadMethod readNode; */
- xmlSecXkmsRespondWithDefaultNodeWrite, /* xmlSecXkmsRespondWithNodeWriteMethod writeNode; */
- NULL, /* void* reserved1; */
- NULL /* void* reserved2; */
-};
-
-/**
- * xmlSecXkmsRespondWithX509CRLGetKlass:
- *
- * The respond with X509CRL klass.
- *
- * Returns: respond with X509CRL klass.
- */
-xmlSecXkmsRespondWithId
-xmlSecXkmsRespondWithX509CRLGetKlass(void) {
- return(&xmlSecXkmsRespondWithX509CRLKlass);
-}
-
-static int
-xmlSecXkmsRespondWithX509CRLNodeRead(xmlSecXkmsRespondWithId id, xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node) {
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsRespondWithX509CRLId, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* do usual stuff */
- ret = xmlSecXkmsRespondWithDefaultNodeRead(id, ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- xmlSecErrorsSafeString(xmlSecXkmsRespondWithKlassGetName(id)),
- "xmlSecXkmsRespondWithDefaultNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-static xmlSecXkmsRespondWithKlass xmlSecXkmsRespondWithPGPKlass = {
- xmlSecRespondWithPGP, /* const xmlChar* valueName; */
- xmlSecXkmsNs, /* const xmlChar* valueNs; */
- xmlSecNodePGPData, /* const xmlChar* nodeName; */
- xmlSecDSigNs, /* const xmlChar* nodeNs; */
- xmlSecXkmsRespondWithDefaultNodeRead, /* xmlSecXkmsRespondWithNodeReadMethod readNode; */
- xmlSecXkmsRespondWithDefaultNodeWrite, /* xmlSecXkmsRespondWithNodeWriteMethod writeNode; */
- NULL, /* void* reserved1; */
- NULL /* void* reserved2; */
-};
-
-/**
- * xmlSecXkmsRespondWithPGPGetKlass:
- *
- * The respond with PGP klass.
- *
- * Returns: respond with PGP klass.
- */
-xmlSecXkmsRespondWithId
-xmlSecXkmsRespondWithPGPGetKlass(void) {
- return(&xmlSecXkmsRespondWithPGPKlass);
-}
-
-static xmlSecXkmsRespondWithKlass xmlSecXkmsRespondWithSPKIKlass = {
- xmlSecRespondWithSPKI, /* const xmlChar* valueName; */
- xmlSecXkmsNs, /* const xmlChar* valueNs; */
- xmlSecNodeSPKIData, /* const xmlChar* nodeName; */
- xmlSecDSigNs, /* const xmlChar* nodeNs; */
- xmlSecXkmsRespondWithDefaultNodeRead, /* xmlSecXkmsRespondWithNodeReadMethod readNode; */
- xmlSecXkmsRespondWithDefaultNodeWrite, /* xmlSecXkmsRespondWithNodeWriteMethod writeNode; */
- NULL, /* void* reserved1; */
- NULL /* void* reserved2; */
-};
-
-/**
- * xmlSecXkmsRespondWithSPKIGetKlass:
- *
- * The respond with SPKI klass.
- *
- * Returns: respond with SPKI klass.
- */
-xmlSecXkmsRespondWithId
-xmlSecXkmsRespondWithSPKIGetKlass(void) {
- return(&xmlSecXkmsRespondWithSPKIKlass);
-}
-
-/**************************************************************************
- *
- * Global xmlSecXkmsServerRequestIds list functions
- *
- *************************************************************************/
-static xmlSecPtrList xmlSecAllXkmsServerRequestIds;
-
-
-/**
- * xmlSecXkmsServerRequestIdsGet:
- *
- * Gets global registered ServerRequest klasses list.
- *
- * Returns: the pointer to list of all registered ServerRequest klasses.
- */
-xmlSecPtrListPtr
-xmlSecXkmsServerRequestIdsGet(void) {
- return(&xmlSecAllXkmsServerRequestIds);
-}
-
-/**
- * xmlSecXkmsServerRequestIdsInit:
- *
- * Initializes the ServerRequest klasses. This function is called from the
- * #xmlSecInit function and the application should not call it directly.
- *
- * Returns: 0 on success or a negative value if an error occurs.
- */
-int
-xmlSecXkmsServerRequestIdsInit(void) {
- int ret;
-
- ret = xmlSecPtrListInitialize(xmlSecXkmsServerRequestIdsGet(), xmlSecXkmsServerRequestIdListId);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListPtrInitialize",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "xmlSecXkmsServerRequestIdListId");
- return(-1);
- }
-
- ret = xmlSecXkmsServerRequestIdsRegisterDefault();
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestIdsRegisterDefault",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * xmlSecXkmsServerRequestIdsShutdown:
- *
- * Shuts down the keys data klasses. This function is called from the
- * #xmlSecShutdown function and the application should not call it directly.
- */
-void
-xmlSecXkmsServerRequestIdsShutdown(void) {
- xmlSecPtrListFinalize(xmlSecXkmsServerRequestIdsGet());
-}
-
-/**
- * xmlSecXkmsServerRequestIdsRegister:
- * @id: the ServerRequest klass.
- *
- * Registers @id in the global list of ServerRequest klasses.
- *
- * Returns: 0 on success or a negative value if an error occurs.
- */
-int
-xmlSecXkmsServerRequestIdsRegister(xmlSecXkmsServerRequestId id) {
- int ret;
-
- xmlSecAssert2(id != xmlSecXkmsServerRequestIdUnknown, -1);
-
- ret = xmlSecPtrListAdd(xmlSecXkmsServerRequestIdsGet(), (xmlSecPtr)id);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListAdd",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "ServerRequest=%s",
- xmlSecErrorsSafeString(xmlSecXkmsServerRequestKlassGetName(id)));
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * xmlSecXkmsServerRequestIdsRegisterDefault:
- *
- * Registers default (implemented by XML Security Library)
- * ServerRequest klasses: KeyName, KeyValue,...
- *
- * Returns: 0 on success or a negative value if an error occurs.
- */
-int
-xmlSecXkmsServerRequestIdsRegisterDefault(void) {
- if(xmlSecXkmsServerRequestIdsRegister(xmlSecXkmsServerRequestResultId) < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestIdsRegister",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecXkmsServerRequestKlassGetName(xmlSecXkmsServerRequestResultId)));
- return(-1);
- }
-
- if(xmlSecXkmsServerRequestIdsRegister(xmlSecXkmsServerRequestStatusId) < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestIdsRegister",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecXkmsServerRequestKlassGetName(xmlSecXkmsServerRequestStatusId)));
- return(-1);
- }
-
- if(xmlSecXkmsServerRequestIdsRegister(xmlSecXkmsServerRequestCompoundId) < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestIdsRegister",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecXkmsServerRequestKlassGetName(xmlSecXkmsServerRequestCompoundId)));
- return(-1);
- }
-
- if(xmlSecXkmsServerRequestIdsRegister(xmlSecXkmsServerRequestLocateId) < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestIdsRegister",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecXkmsServerRequestKlassGetName(xmlSecXkmsServerRequestLocateId)));
- return(-1);
- }
-
- if(xmlSecXkmsServerRequestIdsRegister(xmlSecXkmsServerRequestValidateId) < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestIdsRegister",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "name=%s",
- xmlSecErrorsSafeString(xmlSecXkmsServerRequestKlassGetName(xmlSecXkmsServerRequestValidateId)));
- return(-1);
- }
-
- return(0);
-}
-
-
-/************************************************************************
- *
- * XKMS ServerRequest Klass
- *
- ************************************************************************/
-/**
- * xmlSecXkmsServerRequestNodeRead:
- * @id: the ServerRequest class.
- * @ctx: the XKMS request processing context.
- * @node: the pointer to <xkms:ServerRequest/> node.
- *
- * Reads the content of the <xkms:ServerRequest/> @node.
- *
- * Returns: 0 on success or a negative value if an error occurs.
- */
-int
-xmlSecXkmsServerRequestNodeRead(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node) {
- xmlSecAssert2(id != xmlSecXkmsServerRequestIdUnknown, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- if(id->readNode != NULL) {
- return((id->readNode)(id, ctx, node));
- }
- return(0);
-}
-
-/**
- * xmlSecXkmsServerExecute:
- * @id: the ServerRequest class.
- * @ctx: the XKMS request processing context.
- *
- * Executes XKMS server request.
- *
- * Returns: 0 on success or a negative value if an error occurs.
- */
-int
-xmlSecXkmsServerRequestExecute(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx) {
- xmlSecAssert2(id != xmlSecXkmsServerRequestIdUnknown, -1);
- xmlSecAssert2(ctx != NULL, -1);
-
- if(id->execute != NULL) {
- return((id->execute)(id, ctx));
- }
- return(0);
-}
-
-
-/**
- * xmlSecXkmsServerResponseNodeWrite:
- * @id: the ServerRequest class.
- * @ctx: the XKMS request processing context.
- * @doc: the pointer to response parent XML document (might be NULL).
- * @node: the pointer to response parent XML node (might be NULL).
- *
- * Writes XKMS response from context to a newly created node. Caller is
- * responsible for adding the returned node to the XML document.
- *
- * Returns: pointer to newly created XKMS response node or NULL
- * if an error occurs.
- */
-xmlNodePtr
-xmlSecXkmsServerRequestNodeWrite(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx,
- xmlDocPtr doc, xmlNodePtr node) {
- xmlNodePtr respNode;
- int ret;
-
- xmlSecAssert2(id != xmlSecXkmsServerRequestIdUnknown, NULL);
- xmlSecAssert2(ctx != NULL, NULL);
-
- /* create the response root node */
- if(node == NULL) {
- xmlNsPtr ns;
-
- respNode = xmlNewDocNode(doc, NULL, id->resultNodeName, NULL);
- if(respNode == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlNewDocNode",
- XMLSEC_ERRORS_R_XML_FAILED,
- "node=%s",
- xmlSecErrorsSafeString(id->resultNodeName));
- return(NULL);
- }
- ns = xmlNewNs(respNode, id->resultNodeNs, NULL);
- if(ns == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlNewNs",
- XMLSEC_ERRORS_R_XML_FAILED,
- "ns=%s",
- xmlSecErrorsSafeString(id->resultNodeNs));
- xmlFreeNode(respNode);
- return(NULL);
- }
- xmlSetNs(respNode, ns);
- } else {
- respNode = xmlSecAddChild(node, id->resultNodeName, id->resultNodeNs);
- if(respNode == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecAddChild",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "node=%s",
- xmlSecErrorsSafeString(id->resultNodeName));
- return(NULL);
- }
- }
-
- if(id->writeNode != NULL) {
- ret = (id->writeNode)(id, ctx, respNode);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "writeNode",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "node=%s",
- xmlSecErrorsSafeString(id->resultNodeName));
- xmlFreeNode(respNode);
- return(NULL);
- }
- }
-
- return(respNode);
-}
-
-/**
- * xmlSecXkmsServerRequestDebugDump:
- * @id: the ServerRequest class.
- * @output: the output file.
- *
- * Writes debug information about @id into the @output.
- */
-void
-xmlSecXkmsServerRequestDebugDump(xmlSecXkmsServerRequestId id, FILE* output) {
- xmlSecAssert(id != xmlSecXkmsServerRequestIdUnknown);
- xmlSecAssert(output != NULL);
-
- fprintf(output, "=== ServerRequest: %s\n", xmlSecErrorsSafeString(id->name));
-}
-
-/**
- * xmlSecXkmsServerRequestDebugXmlDump:
- * @id: the ServerRequest class.
- * @output: the output file.
- *
- * Writes debug information about @id into the @output in XML format.
- */
-void
-xmlSecXkmsServerRequestDebugXmlDump(xmlSecXkmsServerRequestId id, FILE* output) {
- xmlSecAssert(id != xmlSecXkmsServerRequestIdUnknown);
- xmlSecAssert(output != NULL);
-
- fprintf(output, "<ServerRequest>");
- xmlSecPrintXmlString(output, id->name);
- fprintf(output, "</ServerRequest>\n");
-}
-
-/************************************************************************
- *
- * XKMS ServerRequest Klass List
- *
- ************************************************************************/
-static xmlSecPtrListKlass xmlSecXkmsServerRequestIdListKlass = {
- BAD_CAST "xkms-server-request-ids-list",
- NULL, /* xmlSecPtrDuplicateItemMethod duplicateItem; */
- NULL, /* xmlSecPtrDestroyItemMethod destroyItem; */
- (xmlSecPtrDebugDumpItemMethod)xmlSecXkmsServerRequestDebugDump, /* xmlSecPtrDebugDumpItemMethod debugDumpItem; */
- (xmlSecPtrDebugDumpItemMethod)xmlSecXkmsServerRequestDebugXmlDump, /* xmlSecPtrDebugDumpItemMethod debugXmlDumpItem; */
-};
-
-xmlSecPtrListId
-xmlSecXkmsServerRequestIdListGetKlass(void) {
- return(&xmlSecXkmsServerRequestIdListKlass);
-}
-
-int
-xmlSecXkmsServerRequestIdListFind(xmlSecPtrListPtr list, xmlSecXkmsServerRequestId id) {
- xmlSecSize i, size;
-
- xmlSecAssert2(xmlSecPtrListCheckId(list, xmlSecXkmsServerRequestIdListId), -1);
- xmlSecAssert2(id != xmlSecXkmsServerRequestIdUnknown, -1);
-
- size = xmlSecPtrListGetSize(list);
- for(i = 0; i < size; ++i) {
- if((xmlSecXkmsServerRequestId)xmlSecPtrListGetItem(list, i) == id) {
- return(1);
- }
- }
- return(0);
-}
-
-xmlSecXkmsServerRequestId
-xmlSecXkmsServerRequestIdListFindByName(xmlSecPtrListPtr list, const xmlChar* name) {
- xmlSecXkmsServerRequestId id;
- xmlSecSize i, size;
-
- xmlSecAssert2(xmlSecPtrListCheckId(list, xmlSecXkmsServerRequestIdListId), xmlSecXkmsServerRequestIdUnknown);
- xmlSecAssert2(name != NULL, xmlSecXkmsServerRequestIdUnknown);
-
- size = xmlSecPtrListGetSize(list);
- for(i = 0; i < size; ++i) {
- id = (xmlSecXkmsServerRequestId)xmlSecPtrListGetItem(list, i);
- if((id != xmlSecXkmsServerRequestIdUnknown) && xmlStrEqual(id->name, name)) {
- return(id);
- }
- }
- return(xmlSecXkmsServerRequestIdUnknown);
-}
-
-xmlSecXkmsServerRequestId
-xmlSecXkmsServerRequestIdListFindByNode(xmlSecPtrListPtr list, xmlNodePtr node) {
- xmlSecXkmsServerRequestId id;
- xmlSecSize i, size;
-
- xmlSecAssert2(xmlSecPtrListCheckId(list, xmlSecXkmsServerRequestIdListId), xmlSecXkmsServerRequestIdUnknown);
- xmlSecAssert2(node != NULL, xmlSecXkmsServerRequestIdUnknown);
-
- size = xmlSecPtrListGetSize(list);
- for(i = 0; i < size; ++i) {
- id = (xmlSecXkmsServerRequestId)xmlSecPtrListGetItem(list, i);
- if((id != xmlSecXkmsServerRequestIdUnknown) &&
- xmlSecCheckNodeName(node, id->requestNodeName, id->requestNodeNs)) {
-
- return(id);
- }
- }
- return(xmlSecXkmsServerRequestIdUnknown);
-}
-
-/********************************************************************
- *
- * XML Sec Library ServerRequest Ids
- *
- *******************************************************************/
-
-
-/********************************************************************
- *
- * Result response
- *
- *******************************************************************/
-static int xmlSecXkmsServerRequestResultNodeWrite (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-
-static xmlSecXkmsServerRequestKlass xmlSecXkmsServerRequestResultKlass = {
- xmlSecXkmsServerRequestResultName, /* const xmlChar* name; */
- NULL, /* const xmlChar* requestNodeName; */
- NULL, /* const xmlChar* requestNodeNs; */
- xmlSecNodeResult, /* const xmlChar* responseNodeName; */
- xmlSecXkmsNs, /* const xmlChar* responseNodeNs; */
- 0, /* xmlSecBitMask flags; */
- NULL, /* xmlSecXkmsServerRequestNodeReadMethod readNode; */
- xmlSecXkmsServerRequestResultNodeWrite, /* xmlSecXkmsServerRequestNodeWriteMethod writeNode; */
- NULL, /* xmlSecXkmsServerRequestExecuteMethod execute; */
- NULL, /* void* reserved1; */
- NULL /* void* reserved2; */
-};
-
-/**
- * xmlSecXkmsServerRequestResultGetKlass:
- *
- * The Result response klass.
- *
- * Returns: Result response klass.
- */
-xmlSecXkmsServerRequestId
-xmlSecXkmsServerRequestResultGetKlass(void) {
- return(&xmlSecXkmsServerRequestResultKlass);
-}
-
-static int
-xmlSecXkmsServerRequestResultNodeWrite(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsServerRequestResultId, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* set missing parameters (if any) */
- if(ctx->service == NULL) {
- ctx->service = xmlStrdup((ctx->expectedService != NULL) ? ctx->expectedService : BAD_CAST "");
- if(ctx->service == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlStrdup",
- XMLSEC_ERRORS_R_MALLOC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- }
-
- /* first write the "parent" type */
- ret = xmlSecXkmsServerCtxResultTypeNodeWrite(ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxResultTypeNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-/********************************************************************
- *
- * StatusRequest/StatusResponse
- *
- *******************************************************************/
-static int xmlSecXkmsServerRequestStatusNodeRead (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static int xmlSecXkmsServerRequestStatusNodeWrite (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-
-static xmlSecXkmsServerRequestKlass xmlSecXkmsServerRequestStatusKlass = {
- xmlSecXkmsServerRequestStatusName, /* const xmlChar* name; */
- xmlSecNodeStatusRequest, /* const xmlChar* requestNodeName; */
- xmlSecXkmsNs, /* const xmlChar* requestNodeNs; */
- xmlSecNodeStatusResult, /* const xmlChar* responseNodeName; */
- xmlSecXkmsNs, /* const xmlChar* responseNodeNs; */
- 0, /* xmlSecBitMask flags; */
- xmlSecXkmsServerRequestStatusNodeRead, /* xmlSecXkmsServerRequestNodeReadMethod readNode; */
- xmlSecXkmsServerRequestStatusNodeWrite, /* xmlSecXkmsServerRequestNodeWriteMethod writeNode; */
- NULL, /* xmlSecXkmsServerRequestExecuteMethod execute; */
- NULL, /* void* reserved1; */
- NULL /* void* reserved2; */
-};
-
-/**
- * xmlSecXkmsServerRequestStatusGetKlass:
- *
- * The StatusRequest klass.
- *
- * Returns: StatusRequest klass.
- */
-xmlSecXkmsServerRequestId
-xmlSecXkmsServerRequestStatusGetKlass(void) {
- return(&xmlSecXkmsServerRequestStatusKlass);
-}
-
-/**
- *
- * <xkms:StatusRequest Id Service Nonce? OriginalRequestId? ResponseLimit? ResponseId?>
- * <ds:Signature>?
- * <xkms:MessageExtension>*
- * (<xkms:OpaqueClientData>
- * <xkms:OpaqueData>?
- * )?
- * <xkms:ResponseMechanism>*
- * <xkms:RespondWith>*
- * <xkms:PendingNotification Mechanism Identifier>?
- *
- * XML Schema:
- * <!-- StatusRequest -->
- * <element name="StatusRequest" type="xkms:StatusRequestType"/>
- * <complexType name="StatusRequestType">
- * <complexContent>
- * <extension base="xkms:PendingRequestType"/>
- * </complexContent>
- * </complexType>
- * <!-- /StatusRequest -->
- */
-static int
-xmlSecXkmsServerRequestStatusNodeRead(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- xmlNodePtr cur;
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsServerRequestStatusId, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- cur = node;
-
- /* first read "parent" type */
- ret = xmlSecXkmsServerCtxPendingRequestNodeRead(ctx, &cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxPendingRequestNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* check that there is nothing after the last node */
- if(cur != NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- xmlSecErrorsSafeString(xmlSecNodeGetName(cur)),
- XMLSEC_ERRORS_R_UNEXPECTED_NODE,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-/**
- *
- * <xkms:StatusResult Id Service Nonce? ResultMajor ResultMinor? RequestId? Success? Failure? Pending?>
- * <ds:Signature>?
- * <xkms:MessageExtension>*
- * (<xkms:OpaqueClientData>
- * <xkms:OpaqueData>?
- * )?
- * <xkms:RequestSignatureValue>*
- *
- * XML Schema:
- *
- * <!-- StatusResult -->
- * <element name="StatusResult" type="xkms:StatusResultType"/>
- * <complexType name="StatusResultType">
- * <complexContent>
- * <extension base="xkms:ResultType">
- * <attribute name="Success" type="integer" use="optional"/>
- * <attribute name="Failure" type="integer" use="optional"/>
- * <attribute name="Pending" type="integer" use="optional"/>
- * </extension>
- * </complexContent>
- * </complexType>
- * <!-- /StatusResult --> *
- */
-static int
-xmlSecXkmsServerRequestStatusNodeWrite(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsServerRequestStatusId, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* first write the "parent" type */
- ret = xmlSecXkmsServerCtxResultTypeNodeWrite(ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxResultTypeNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* todo: add optional StatusResult attributes */
- return(0);
-}
-
-/********************************************************************
- *
- * CompoundRequest/CompoundResponse
- *
- *******************************************************************/
-static int xmlSecXkmsServerRequestCompoundNodeRead (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static int xmlSecXkmsServerRequestCompoundNodeWrite(xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static int xmlSecXkmsServerRequestCompoundExecute (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx);
-
-static xmlSecXkmsServerRequestKlass xmlSecXkmsServerRequestCompoundKlass = {
- xmlSecXkmsServerRequestCompoundName, /* const xmlChar* name; */
- xmlSecNodeCompoundRequest, /* const xmlChar* requestNodeName; */
- xmlSecXkmsNs, /* const xmlChar* requestNodeNs; */
- xmlSecNodeCompoundResult, /* const xmlChar* responseNodeName; */
- xmlSecXkmsNs, /* const xmlChar* responseNodeNs; */
- 0, /* xmlSecBitMask flags; */
- xmlSecXkmsServerRequestCompoundNodeRead, /* xmlSecXkmsServerRequestNodeReadMethod readNode; */
- xmlSecXkmsServerRequestCompoundNodeWrite, /* xmlSecXkmsServerRequestNodeWriteMethod writeNode; */
- xmlSecXkmsServerRequestCompoundExecute, /* xmlSecXkmsServerRequestExecuteMethod execute; */
- NULL, /* void* reserved1; */
- NULL /* void* reserved2; */
-};
-
-/**
- * xmlSecXkmsServerRequestCompoundGetKlass:
- *
- * The CompoundRequest klass.
- *
- * Returns: CompoundRequest klass.
- */
-xmlSecXkmsServerRequestId
-xmlSecXkmsServerRequestCompoundGetKlass(void) {
- return(&xmlSecXkmsServerRequestCompoundKlass);
-}
-
-/**
- * <xkms:CompoundRequest Id Service Nonce? OriginalRequestId? ResponseLimit?>
- * <ds:Signature>?
- * <xkms:MessageExtension>*
- * (<xkms:OpaqueClientData>
- * <xkms:OpaqueData>?
- * )?
- * <xkms:ResponseMechanism>*
- * <xkms:RespondWith>*
- * <xkms:PendingNotification Mechanism Identifier>?
- * (
- * <xkms:LocateRequest>?
- * <xkms:ValidateRequest>?
- * <xkms:RegisterRequest>?
- * <xkms:ReissueRequest>?
- * <xkms:RecoverRequest>?
- * <xkms:RevokeRequest>?
- * )*
- *
- * XML Schema:
- *
- * <!-- CompoundRequest -->
- * <element name="CompoundRequest" type="xkms:CompoundRequestType"/>
- * <complexType name="CompoundRequestType">
- * <complexContent>
- * <extension base="xkms:RequestAbstractType">
- * <choice maxOccurs="unbounded">
- * <element ref="xkms:LocateRequest"/>
- * <element ref="xkms:ValidateRequest"/>
- * <element ref="xkms:RegisterRequest"/>
- * <element ref="xkms:ReissueRequest"/>
- * <element ref="xkms:RecoverRequest"/>
- * <element ref="xkms:RevokeRequest"/>
- * </choice>
- * </extension>
- * </complexContent>
- * </complexType>
- * <!-- /CompoundRequest -->
- */
-static int
-xmlSecXkmsServerRequestCompoundNodeRead(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- xmlSecPtrListPtr serverRequestIdsList;
- xmlNodePtr cur;
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsServerRequestCompoundId, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- cur = node;
-
- /* first read "parent" type */
- ret = xmlSecXkmsServerCtxRequestAbstractTypeNodeRead(ctx, &cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxRequestAbstractTypeNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* create list for compound requests */
- xmlSecAssert2(ctx->compoundRequestContexts == NULL, -1);
- ctx->compoundRequestContexts = xmlSecPtrListCreate(xmlSecXkmsServerCtxPtrListId);
- if(ctx->compoundRequestContexts == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListCreate",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* get the list of enabled or all request klasses */
- if(xmlSecPtrListGetSize(&(ctx->enabledServerRequestIds)) > 0) {
- serverRequestIdsList = &(ctx->enabledServerRequestIds);
- } else {
- serverRequestIdsList = xmlSecXkmsServerRequestIdsGet();
- }
- xmlSecAssert2(serverRequestIdsList != NULL, -1);
-
- while(cur != NULL) {
- xmlSecXkmsServerCtxPtr ctxChild;
-
- /* create a new context */
- ctxChild = xmlSecXkmsServerCtxCreate(ctx->keyInfoReadCtx.keysMngr);
- if(ctxChild == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxCreate",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* copy all settings from us */
- ret = xmlSecXkmsServerCtxCopyUserPref(ctxChild, ctx);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxCopyUserPref",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxDestroy(ctxChild);
- return(-1);
- }
-
- /* add it to the list */
- ret = xmlSecPtrListAdd(ctx->compoundRequestContexts, ctxChild);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListAdd",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxDestroy(ctxChild);
- return(-1);
- }
-
- /* and now process request from current node */
- ctxChild->requestId = xmlSecXkmsServerRequestIdListFindByNode(serverRequestIdsList, cur);
- if((ctxChild->requestId == xmlSecXkmsServerRequestIdUnknown) ||
- ((ctxChild->requestId->flags & XMLSEC_XKMS_SERVER_REQUEST_KLASS_ALLOWED_IN_COUMPOUND) == 0)) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestIdListFindByNode",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "node=%s",
- xmlSecErrorsSafeString(node->name));
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorMessageNotSupported);
- return(-1);
- }
-
- ret = xmlSecXkmsServerRequestNodeRead(ctxChild->requestId, ctxChild, cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "request=%s",
- xmlSecErrorsSafeString(xmlSecXkmsServerRequestKlassGetName(ctxChild->requestId)));
- xmlSecXkmsServerCtxSetResult(ctxChild, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorFailure);
- return(-1);
- }
- cur = xmlSecGetNextElementNode(cur->next);
- }
-
- /* check that there is nothing after the last node */
- if(cur != NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- xmlSecErrorsSafeString(xmlSecNodeGetName(cur)),
- XMLSEC_ERRORS_R_UNEXPECTED_NODE,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * <xkms:CompoundResult Id Service Nonce? ResultMajor ResultMinor? RequestId?>
- * <ds:Signature>?
- * <xkms:MessageExtension>*
- * (<xkms:OpaqueClientData>
- * <xkms:OpaqueData>?
- * )?
- * <xkms:RequestSignatureValue>*
- * (
- * <xkms:LocateResult>?
- * <xkms:ValidateResult>?
- * <xkms:RegisterResult>?
- * <xkms:ReissueResult>?
- * <xkms:RecoverResult>?
- * <xkms:RevokeResult>?
- * )*
- *
- *
- * XML Schema:
- *
- * <!-- CompoundResponse -->
- * <element name="CompoundResult" type="xkms:CompoundResultType"/>
- * <complexType name="CompoundResultType">
- * <complexContent>
- * <extension base="xkms:ResultType">
- * <choice maxOccurs="unbounded">
- * <element ref="xkms:LocateResult"/>
- * <element ref="xkms:ValidateResult"/>
- * <element ref="xkms:RegisterResult"/>
- * <element ref="xkms:ReissueResult"/>
- * <element ref="xkms:RecoverResult"/>
- * <element ref="xkms:RevokeResult"/>
- * </choice>
- * </extension>
- * </complexContent>
- * </complexType>
- * <!-- /CompoundResponse -->
- */
-static int
-xmlSecXkmsServerRequestCompoundNodeWrite(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsServerRequestCompoundId, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* walk thru the list of chilren and pickup first error */
- if(ctx->compoundRequestContexts != NULL) {
- xmlSecSize pos;
-
- for(pos = 0; pos < xmlSecPtrListGetSize(ctx->compoundRequestContexts); pos++) {
- xmlSecXkmsServerCtxPtr ctxChild;
-
- ctxChild = (xmlSecXkmsServerCtxPtr)xmlSecPtrListGetItem(ctx->compoundRequestContexts, pos);
- if(ctxChild == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListGetItem",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- if(ctxChild->resultMajor != xmlSecXkmsResultMajorSuccess) {
- xmlSecXkmsServerCtxSetResult(ctx, ctxChild->resultMajor, ctxChild->resultMinor);
- break;
- }
- }
- }
-
- /* first write the "parent" type */
- ret = xmlSecXkmsServerCtxResultTypeNodeWrite(ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxResultTypeNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* write compound result */
- if(ctx->compoundRequestContexts != NULL) {
- xmlSecSize pos;
-
- for(pos = 0; pos < xmlSecPtrListGetSize(ctx->compoundRequestContexts); pos++) {
- xmlSecXkmsServerCtxPtr ctxChild;
- xmlNodePtr cur;
-
- ctxChild = (xmlSecXkmsServerCtxPtr)xmlSecPtrListGetItem(ctx->compoundRequestContexts, pos);
- if(ctxChild == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListGetItem",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- cur = xmlSecXkmsServerRequestNodeWrite(ctxChild->requestId, ctxChild, node->doc, node);
- if(cur == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "request=%s",
- xmlSecErrorsSafeString(xmlSecXkmsServerRequestKlassGetName(ctxChild->requestId)));
- return(-1);
- }
-
- if(xmlSecAddChildNode(node, cur) == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecAddChildNode",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlFreeNode(cur);
- return(-1);
- }
- }
- }
-
- return(0);
-}
-
-static int
-xmlSecXkmsServerRequestCompoundExecute(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx) {
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsServerRequestCompoundId, -1);
- xmlSecAssert2(ctx != NULL, -1);
-
- if(ctx->compoundRequestContexts != NULL) {
- xmlSecSize pos;
-
- for(pos = 0; pos < xmlSecPtrListGetSize(ctx->compoundRequestContexts); pos++) {
- xmlSecXkmsServerCtxPtr ctxChild;
-
- ctxChild = (xmlSecXkmsServerCtxPtr)xmlSecPtrListGetItem(ctx->compoundRequestContexts, pos);
- if(ctxChild == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListGetItem",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorReceiver, xmlSecXkmsResultMinorFailure);
- continue;
- }
-
- ret = xmlSecXkmsServerRequestExecute(ctxChild->requestId, ctxChild);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestExecute",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "request=%s",
- xmlSecErrorsSafeString(xmlSecXkmsServerRequestKlassGetName(ctxChild->requestId)));
- xmlSecXkmsServerCtxSetResult(ctxChild, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorFailure);
- continue;
- }
- }
- }
-
- return(0);
-}
-
-
-/********************************************************************
- *
- * LocateRequest/LocateResponse
- *
- *******************************************************************/
-static int xmlSecXkmsServerRequestLocateNodeRead (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static int xmlSecXkmsServerRequestLocateNodeWrite (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static int xmlSecXkmsServerRequestLocateExecute (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx);
-
-static xmlSecXkmsServerRequestKlass xmlSecXkmsServerRequestLocateKlass = {
- xmlSecXkmsServerRequestLocateName, /* const xmlChar* name; */
- xmlSecNodeLocateRequest, /* const xmlChar* requestNodeName; */
- xmlSecXkmsNs, /* const xmlChar* requestNodeNs; */
- xmlSecNodeLocateResult, /* const xmlChar* responseNodeName; */
- xmlSecXkmsNs, /* const xmlChar* responseNodeNs; */
- XMLSEC_XKMS_SERVER_REQUEST_KLASS_ALLOWED_IN_COUMPOUND, /* xmlSecBitMask flags; */
- xmlSecXkmsServerRequestLocateNodeRead, /* xmlSecXkmsServerRequestNodeReadMethod readNode; */
- xmlSecXkmsServerRequestLocateNodeWrite, /* xmlSecXkmsServerRequestNodeWriteMethod writeNode; */
- xmlSecXkmsServerRequestLocateExecute, /* xmlSecXkmsServerRequestExecuteMethod execute; */
- NULL, /* void* reserved1; */
- NULL /* void* reserved2; */
-};
-
-/**
- * xmlSecXkmsServerRequestLocateGetKlass:
- *
- * The LocateRequest klass.
- *
- * Returns: LocateRequest klass.
- */
-xmlSecXkmsServerRequestId
-xmlSecXkmsServerRequestLocateGetKlass(void) {
- return(&xmlSecXkmsServerRequestLocateKlass);
-}
-
-/**
- * <xkms:LocateRequest Id Service Nonce? OriginalRequestId? ResponseLimit?>
- * <ds:Signature>?
- * <xkms:MessageExtension>*
- * (<xkms:OpaqueClientData>
- * <xkms:OpaqueData>?
- * )?
- * <xkms:ResponseMechanism>*
- * <xkms:RespondWith>*
- * <xkms:PendingNotification Mechanism Identifier>?
- * <xkms:QueryKeyBinding Id?>
- * <ds:KeyInfo>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:UseKeyWith Application Identifier>*
- * <xkms:TimeInstant Time>?
- *
- * XML Schema:
- *
- * <!-- LocateRequest -->
- * <element name="LocateRequest" type="xkms:LocateRequestType"/>
- * <complexType name="LocateRequestType">
- * <complexContent>
- * <extension base="xkms:RequestAbstractType">
- * <sequence>
- * <element ref="xkms:QueryKeyBinding"/>
- * </sequence>
- * </extension>
- * </complexContent>
- * </complexType>
- * <!-- /LocateRequest -->
- */
-static int
-xmlSecXkmsServerRequestLocateNodeRead(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- xmlNodePtr cur;
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsServerRequestLocateId, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- cur = node;
-
- /* first read "parent" type */
- ret = xmlSecXkmsServerCtxRequestAbstractTypeNodeRead(ctx, &cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxRequestAbstractTypeNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* now read required <xkms:QueryKeyBinding/> node */
- if((cur == NULL) || (!xmlSecCheckNodeName(cur, xmlSecNodeQueryKeyBinding, xmlSecXkmsNs))) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- xmlSecErrorsSafeString(xmlSecNodeGetName(cur)),
- XMLSEC_ERRORS_R_INVALID_NODE,
- "node=%s",
- xmlSecErrorsSafeString(xmlSecNodeQueryKeyBinding));
- return(-1);
- }
-
- /* read <xkms:QueryKeyBinding/> node */
- ret = xmlSecXkmsServerCtxQueryKeyBindingNodeRead(ctx, cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxQueryKeyBindingNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- cur = xmlSecGetNextElementNode(cur->next);
-
- /* check that there is nothing after the last node */
- if(cur != NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- xmlSecErrorsSafeString(xmlSecNodeGetName(cur)),
- XMLSEC_ERRORS_R_UNEXPECTED_NODE,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * <xkms:LocateResult Id Service Nonce? ResultMajor ResultMinor? RequestId?>
- * <ds:Signature>?
- * <xkms:MessageExtension>*
- * (<xkms:OpaqueClientData>
- * <xkms:OpaqueData>?
- * )?
- * <xkms:RequestSignatureValue>*
- * (<xkms:UnverifiedKeyBinding Id?>
- * <ds:KeyInfo>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:UseKeyWith Application Identifier>*
- * <xkms:ValidityInterval NotBefore NotOnOrAfter>?
- * )*
- *
- * XML Schema:
- * <!-- LocateResult -->
- * <element name="LocateResult" type="xkms:LocateResultType"/>
- * <complexType name="LocateResultType">
- * <complexContent>
- * <extension base="xkms:ResultType">
- * <sequence>
- * <element ref="xkms:UnverifiedKeyBinding" minOccurs="0"
- * maxOccurs="unbounded"/>
- * </sequence>
- * </extension>
- * </complexContent>
- * </complexType>
- * <!-- /LocateResult -->
- */
-static int
-xmlSecXkmsServerRequestLocateNodeWrite(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- xmlSecSize pos, size;
- xmlSecKeyPtr key;
- xmlNodePtr cur;
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsServerRequestLocateId, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* first write the "parent" type */
- ret = xmlSecXkmsServerCtxResultTypeNodeWrite(ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxResultTypeNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* write keys in <xkms:UnverifiedKeyBinding> nodes */
- size = xmlSecPtrListGetSize(&(ctx->keys));
- for(pos = 0; pos < size; ++pos) {
- key = (xmlSecKeyPtr)xmlSecPtrListGetItem(&(ctx->keys), pos);
- if(key == NULL) {
- continue;
- }
-
- cur = xmlSecAddChild(node, xmlSecNodeUnverifiedKeyBinding, xmlSecXkmsNs);
- if(cur == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecAddChild",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "node=%s",
- xmlSecErrorsSafeString(xmlSecNodeUnverifiedKeyBinding));
- return(-1);
- }
-
- ret = xmlSecXkmsServerCtxUnverifiedKeyBindingNodeWrite(ctx, cur, key);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxUnverifiedKeyBindingNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- }
-
- return(0);
-}
-
-static int
-xmlSecXkmsServerRequestLocateExecute(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx) {
- xmlSecKeyPtr key = NULL;
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsServerRequestLocateId, -1);
- xmlSecAssert2(ctx != NULL, -1);
-
- /* now we are ready to search for key */
- if((ctx->keyInfoReadCtx.keysMngr != NULL) && (ctx->keyInfoReadCtx.keysMngr->getKey != NULL)) {
- /* todo: set parameters to locate but not validate the key */
- key = (ctx->keyInfoReadCtx.keysMngr->getKey)(ctx->keyInfoNode, &(ctx->keyInfoReadCtx));
- }
-
- /* check that we got what we needed */
- if((key == NULL) || (!xmlSecKeyMatch(key, NULL, &(ctx->keyInfoReadCtx.keyReq)))) {
- if(key != NULL) {
- xmlSecKeyDestroy(key);
- }
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorNoMatch);
- return(-1);
- }
-
- xmlSecAssert2(key != NULL, -1);
- ret = xmlSecPtrListAdd(&(ctx->keys), key);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListAdd",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecKeyDestroy(key);
- return(-1);
- }
-
- return(0);
-}
-
-
-/********************************************************************
- *
- * ValidateRequest/ValidateResponse
- *
- *******************************************************************/
-static int xmlSecXkmsServerRequestValidateNodeRead (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static int xmlSecXkmsServerRequestValidateNodeWrite(xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx,
- xmlNodePtr node);
-static int xmlSecXkmsServerRequestValidateExecute (xmlSecXkmsServerRequestId id,
- xmlSecXkmsServerCtxPtr ctx);
-
-static xmlSecXkmsServerRequestKlass xmlSecXkmsServerRequestValidateKlass = {
- xmlSecXkmsServerRequestValidateName, /* const xmlChar* name; */
- xmlSecNodeValidateRequest, /* const xmlChar* requestNodeName; */
- xmlSecXkmsNs, /* const xmlChar* requestNodeNs; */
- xmlSecNodeValidateResult, /* const xmlChar* responseNodeName; */
- xmlSecXkmsNs, /* const xmlChar* responseNodeNs; */
- XMLSEC_XKMS_SERVER_REQUEST_KLASS_ALLOWED_IN_COUMPOUND, /* xmlSecBitMask flags; */
- xmlSecXkmsServerRequestValidateNodeRead, /* xmlSecXkmsServerRequestNodeReadMethod readNode; */
- xmlSecXkmsServerRequestValidateNodeWrite, /* xmlSecXkmsServerRequestNodeWriteMethod writeNode; */
- xmlSecXkmsServerRequestValidateExecute, /* xmlSecXkmsServerRequestExecuteMethod execute; */
- NULL, /* void* reserved1; */
- NULL /* void* reserved2; */
-};
-
-/**
- * xmlSecXkmsServerRequestValidateGetKlass:
- *
- * The ValidateRequest klass.
- *
- * Returns: ValidateRequest klass.
- */
-xmlSecXkmsServerRequestId
-xmlSecXkmsServerRequestValidateGetKlass(void) {
- return(&xmlSecXkmsServerRequestValidateKlass);
-}
-
-/**
- * <xkms:ValidateRequest Id Service Nonce? OriginalRequestId? ResponseLimit?>
- * <ds:Signature>?
- * <xkms:MessageExtension>*
- * (<xkms:OpaqueClientData>
- * <xkms:OpaqueData>?
- * )?
- * <xkms:ResponseMechanism>*
- * <xkms:RespondWith>*
- * <xkms:PendingNotification Mechanism Identifier>?
- * <xkms:QueryKeyBinding Id?>
- * <ds:KeyInfo>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:UseKeyWith Application Identifier>*
- * <xkms:TimeInstant Time>?
- *
- * XML Schema:
- *
- * <!-- ValidateRequest -->
- * <element name="ValidateRequest" type="xkms:ValidateRequestType"/>
- * <complexType name="ValidateRequestType">
- * <complexContent>
- * <extension base="xkms:RequestAbstractType">
- * <sequence>
- * <element ref="xkms:QueryKeyBinding"/>
- * </sequence>
- * </extension>
- * </complexContent>
- * </complexType>
- * <!-- /ValidateRequest -->
- */
-static int
-xmlSecXkmsServerRequestValidateNodeRead(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- xmlNodePtr cur;
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsServerRequestValidateId, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- cur = node;
-
- /* first read "parent" type */
- ret = xmlSecXkmsServerCtxRequestAbstractTypeNodeRead(ctx, &cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxRequestAbstractTypeNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* now read required <xkms:QueryKeyBinding/> node */
- if((cur == NULL) || (!xmlSecCheckNodeName(cur, xmlSecNodeQueryKeyBinding, xmlSecXkmsNs))) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- xmlSecErrorsSafeString(xmlSecNodeGetName(cur)),
- XMLSEC_ERRORS_R_INVALID_NODE,
- "node=%s",
- xmlSecErrorsSafeString(xmlSecNodeQueryKeyBinding));
- return(-1);
- }
-
- /* read <xkms:QueryKeyBinding/> node */
- ret = xmlSecXkmsServerCtxQueryKeyBindingNodeRead(ctx, cur);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxQueryKeyBindingNodeRead",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- cur = xmlSecGetNextElementNode(cur->next);
-
- /* check that there is nothing after the last node */
- if(cur != NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- xmlSecErrorsSafeString(xmlSecNodeGetName(cur)),
- XMLSEC_ERRORS_R_UNEXPECTED_NODE,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- return(0);
-}
-
-/**
- * <xkms:ValidateResult Id Service Nonce? ResultMajor ResultMinor? RequestId?>
- * <ds:Signature>?
- * <xkms:MessageExtension>*
- * (<xkms:OpaqueClientData>
- * <xkms:OpaqueData>?
- * )?
- * <xkms:RequestSignatureValue>*
- * (<xkms:KeyBinding Id?>
- * <ds:KeyInfo>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:KeyUsage>?
- * <xkms:UseKeyWith Application Identifier>*
- * <xkms:ValidityInterval NotBefore NotOnOrAfter>?
- * <xkms:Status StatusValue>
- * (<xkms:ValidReason>?
- * <xkms:IndeterminateReason>?
- * <xkms:InvalidReason>?
- * )*
- * )*
- *
- * XML Schema:
- *
- * <!-- ValidateResult -->
- * <element name="ValidateResult" type="xkms:ValidateResultType"/>
- * <complexType name="ValidateResultType">
- * <complexContent>
- * <extension base="xkms:ResultType">
- * <sequence>
- * <element ref="xkms:KeyBinding" minOccurs="0"
- * maxOccurs="unbounded"/>
- * </sequence>
- * </extension>
- * </complexContent>
- * </complexType>
- * <!-- /ValidateResult -->
- */
-static int
-xmlSecXkmsServerRequestValidateNodeWrite(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx, xmlNodePtr node) {
- xmlSecSize pos, size;
- xmlSecKeyPtr key;
- xmlNodePtr cur;
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsServerRequestValidateId, -1);
- xmlSecAssert2(ctx != NULL, -1);
- xmlSecAssert2(node != NULL, -1);
-
- /* first write the "parent" type */
- ret = xmlSecXkmsServerCtxResultTypeNodeWrite(ctx, node);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxResultTypeNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-
- /* write keys in <xkms:UnverifiedKeyBinding> nodes */
- size = xmlSecPtrListGetSize(&(ctx->keys));
- for(pos = 0; pos < size; ++pos) {
- key = (xmlSecKeyPtr)xmlSecPtrListGetItem(&(ctx->keys), pos);
- if(key == NULL) {
- continue;
- }
-
- cur = xmlSecAddChild(node, xmlSecNodeUnverifiedKeyBinding, xmlSecXkmsNs);
- if(cur == NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecAddChild",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- "node=%s",
- xmlSecErrorsSafeString(xmlSecNodeUnverifiedKeyBinding));
- return(-1);
- }
-
- ret = xmlSecXkmsServerCtxKeyBindingNodeWrite(ctx, cur, key);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerCtxKeyBindingNodeWrite",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- }
-
- return(0);
-}
-
-static int
-xmlSecXkmsServerRequestValidateExecute(xmlSecXkmsServerRequestId id, xmlSecXkmsServerCtxPtr ctx) {
- xmlSecKeyPtr key = NULL;
- int ret;
-
- xmlSecAssert2(id == xmlSecXkmsServerRequestValidateId, -1);
- xmlSecAssert2(ctx != NULL, -1);
-
- /* now we are ready to search for key */
- if((ctx->keyInfoReadCtx.keysMngr != NULL) && (ctx->keyInfoReadCtx.keysMngr->getKey != NULL)) {
- key = (ctx->keyInfoReadCtx.keysMngr->getKey)(ctx->keyInfoNode, &(ctx->keyInfoReadCtx));
- }
-
- /* check that we got what we needed */
- if((key == NULL) || (!xmlSecKeyMatch(key, NULL, &(ctx->keyInfoReadCtx.keyReq)))) {
- if(key != NULL) {
- xmlSecKeyDestroy(key);
- }
- xmlSecXkmsServerCtxSetResult(ctx, xmlSecXkmsResultMajorSender, xmlSecXkmsResultMinorNoMatch);
- return(-1);
- }
-
- xmlSecAssert2(key != NULL, -1);
- ret = xmlSecPtrListAdd(&(ctx->keys), key);
- if(ret < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecPtrListAdd",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- xmlSecKeyDestroy(key);
- return(-1);
- }
-
- return(0);
-}
-
-#endif /* XMLSEC_NO_XKMS */
-
diff --git a/src/xmldsig.c b/src/xmldsig.c
index b08b8b1..faf5545 100644
--- a/src/xmldsig.c
+++ b/src/xmldsig.c
@@ -8,7 +8,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -39,7 +39,8 @@
static int xmlSecDSigCtxProcessSignatureNode (xmlSecDSigCtxPtr dsigCtx,
xmlNodePtr node);
static int xmlSecDSigCtxProcessSignedInfoNode (xmlSecDSigCtxPtr dsigCtx,
- xmlNodePtr node);
+ xmlNodePtr node,
+ xmlNodePtr * firstReferenceNode);
static int xmlSecDSigCtxProcessKeyInfoNode (xmlSecDSigCtxPtr dsigCtx,
xmlNodePtr node);
static int xmlSecDSigCtxProcessObjectNode (xmlSecDSigCtxPtr dsigCtx,
@@ -47,6 +48,9 @@ static int xmlSecDSigCtxProcessObjectNode (xmlSecDSigCtxPtr dsigCt
static int xmlSecDSigCtxProcessManifestNode (xmlSecDSigCtxPtr dsigCtx,
xmlNodePtr node);
+static int xmlSecDSigCtxProcessReferences (xmlSecDSigCtxPtr dsigCtx,
+ xmlNodePtr firstReferenceNode);
+
/* The ID attribute in XMLDSig is 'Id' */
static const xmlChar* xmlSecDSigIds[] = { xmlSecAttrId, NULL };
@@ -73,7 +77,7 @@ xmlSecDSigCtxCreate(xmlSecKeysMngrPtr keysMngr) {
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
"sizeof(xmlSecDSigCtx)=%d",
- sizeof(xmlSecDSigCtx));
+ (int)sizeof(xmlSecDSigCtx));
return(NULL);
}
@@ -160,10 +164,26 @@ xmlSecDSigCtxInitialize(xmlSecDSigCtxPtr dsigCtx, xmlSecKeysMngrPtr keysMngr) {
}
/* references lists from SignedInfo and Manifest elements */
- xmlSecPtrListInitialize(&(dsigCtx->signedInfoReferences),
- xmlSecDSigReferenceCtxListId);
- xmlSecPtrListInitialize(&(dsigCtx->manifestReferences),
- xmlSecDSigReferenceCtxListId);
+ ret = xmlSecPtrListInitialize(&(dsigCtx->signedInfoReferences),
+ xmlSecDSigReferenceCtxListId);
+ if(ret != 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlSecPtrListInitialize",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(ret);
+ }
+ ret = xmlSecPtrListInitialize(&(dsigCtx->manifestReferences),
+ xmlSecDSigReferenceCtxListId);
+ if(ret != 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlSecPtrListInitialize",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(ret);
+ }
dsigCtx->enabledReferenceUris = xmlSecTransformUriTypeAny;
return(0);
@@ -454,6 +474,7 @@ xmlSecDSigCtxProcessSignatureNode(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr node) {
xmlSecTransformDataType firstType;
xmlNodePtr signedInfoNode = NULL;
xmlNodePtr keyInfoNode = NULL;
+ xmlNodePtr firstReferenceNode = NULL;
xmlNodePtr cur;
int ret;
@@ -542,7 +563,7 @@ xmlSecDSigCtxProcessSignatureNode(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr node) {
}
/* now validated all the references and prepare transform */
- ret = xmlSecDSigCtxProcessSignedInfoNode(dsigCtx, signedInfoNode);
+ ret = xmlSecDSigCtxProcessSignedInfoNode(dsigCtx, signedInfoNode, &firstReferenceNode);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
NULL,
@@ -551,15 +572,12 @@ xmlSecDSigCtxProcessSignatureNode(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr node) {
XMLSEC_ERRORS_NO_MESSAGE);
return(-1);
}
- /* references processing might change the status */
- if(dsigCtx->status != xmlSecDSigStatusUnknown) {
- return(0);
- }
/* as the result, we should have sign and c14n methods set */
xmlSecAssert2(dsigCtx->signMethod != NULL, -1);
xmlSecAssert2(dsigCtx->c14nMethod != NULL, -1);
+ /* now read key info node */
ret = xmlSecDSigCtxProcessKeyInfoNode(dsigCtx, keyInfoNode);
if(ret < 0) {
xmlSecError(XMLSEC_ERRORS_HERE,
@@ -572,6 +590,21 @@ xmlSecDSigCtxProcessSignatureNode(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr node) {
/* as the result, we should have a key */
xmlSecAssert2(dsigCtx->signKey != NULL, -1);
+ /* now actually process references and calculate digests */
+ ret = xmlSecDSigCtxProcessReferences(dsigCtx, firstReferenceNode);
+ if(ret < 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlSecDSigCtxProcessReferences",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+ /* references processing might change the status */
+ if(dsigCtx->status != xmlSecDSigStatusUnknown) {
+ return(0);
+ }
+
/* if we need to write result to xml node then we need base64 encode result */
if(dsigCtx->operation == xmlSecTransformOperationSign) {
xmlSecTransformPtr base64Encode;
@@ -667,18 +700,18 @@ xmlSecDSigCtxProcessSignatureNode(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr node) {
*
*/
static int
-xmlSecDSigCtxProcessSignedInfoNode(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr node) {
- xmlSecDSigReferenceCtxPtr dsigRefCtx;
+xmlSecDSigCtxProcessSignedInfoNode(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr node, xmlNodePtr * firstReferenceNode) {
+ xmlSecSize refNodesCount = 0;
xmlNodePtr cur;
- int ret;
xmlSecAssert2(dsigCtx != NULL, -1);
xmlSecAssert2(dsigCtx->status == xmlSecDSigStatusUnknown, -1);
xmlSecAssert2(dsigCtx->signMethod == NULL, -1);
xmlSecAssert2(dsigCtx->c14nMethod == NULL, -1);
xmlSecAssert2((dsigCtx->operation == xmlSecTransformOperationSign) || (dsigCtx->operation == xmlSecTransformOperationVerify), -1);
- xmlSecAssert2(xmlSecPtrListGetSize(&(dsigCtx->signedInfoReferences)) == 0, -1);
xmlSecAssert2(node != NULL, -1);
+ xmlSecAssert2(firstReferenceNode != NULL, -1);
+ xmlSecAssert2((*firstReferenceNode) == NULL, -1);
/* first node is required CanonicalizationMethod. */
cur = xmlSecGetNextElementNode(node->children);
@@ -772,9 +805,71 @@ xmlSecDSigCtxProcessSignedInfoNode(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr node) {
}
dsigCtx->signMethod->operation = dsigCtx->operation;
- /* calculate references */
- cur = xmlSecGetNextElementNode(cur->next);
+ /* read references */
+ if(cur != NULL) {
+ cur = xmlSecGetNextElementNode(cur->next);
+ }
while((cur != NULL) && (xmlSecCheckNodeName(cur, xmlSecNodeReference, xmlSecDSigNs))) {
+ /* record first reference node */
+ if((*firstReferenceNode) == NULL) {
+ (*firstReferenceNode) = cur;
+ }
+ ++refNodesCount;
+
+ /* go to next */
+ cur = xmlSecGetNextElementNode(cur->next);
+ }
+
+ /* check that we have at least one Reference */
+ if(refNodesCount == 0) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ NULL,
+ XMLSEC_ERRORS_R_DSIG_NO_REFERENCES,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ /* if there is something left than it's an error */
+ if(cur != NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ xmlSecErrorsSafeString(xmlSecNodeGetName(cur)),
+ XMLSEC_ERRORS_R_UNEXPECTED_NODE,
+ XMLSEC_ERRORS_NO_MESSAGE);
+ return(-1);
+ }
+
+ /* done */
+ return(0);
+}
+
+
+static int
+xmlSecDSigCtxProcessReferences(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr firstReferenceNode) {
+ xmlSecDSigReferenceCtxPtr dsigRefCtx;
+ xmlNodePtr cur;
+ int ret;
+
+ xmlSecAssert2(dsigCtx != NULL, -1);
+ xmlSecAssert2(dsigCtx->status == xmlSecDSigStatusUnknown, -1);
+ xmlSecAssert2((dsigCtx->operation == xmlSecTransformOperationSign) || (dsigCtx->operation == xmlSecTransformOperationVerify), -1);
+ xmlSecAssert2(xmlSecPtrListGetSize(&(dsigCtx->signedInfoReferences)) == 0, -1);
+ xmlSecAssert2(firstReferenceNode != NULL, -1);
+
+ /* process references */
+ for(cur = firstReferenceNode; (cur != NULL); cur = xmlSecGetNextElementNode(cur->next)) {
+ /* already checked but we trust none */
+ if(!xmlSecCheckNodeName(cur, xmlSecNodeReference, xmlSecDSigNs)) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ xmlSecErrorsSafeString(xmlSecNodeGetName(cur)),
+ XMLSEC_ERRORS_R_INVALID_NODE,
+ "expected=%s",
+ xmlSecErrorsSafeString(xmlSecNodeReference));
+ return(-1);
+ }
+
/* create reference */
dsigRefCtx = xmlSecDSigReferenceCtxCreate(dsigCtx, xmlSecDSigReferenceOriginSignedInfo);
if(dsigRefCtx == NULL) {
@@ -815,31 +910,13 @@ xmlSecDSigCtxProcessSignedInfoNode(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr node) {
dsigCtx->status = xmlSecDSigStatusInvalid;
return(0);
}
- cur = xmlSecGetNextElementNode(cur->next);
- }
-
- /* check that we have at least one Reference */
- if(xmlSecPtrListGetSize(&(dsigCtx->signedInfoReferences)) == 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- NULL,
- XMLSEC_ERRORS_R_DSIG_NO_REFERENCES,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
}
- /* if there is something left than it's an error */
- if(cur != NULL) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- xmlSecErrorsSafeString(xmlSecNodeGetName(cur)),
- XMLSEC_ERRORS_R_UNEXPECTED_NODE,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
+ /* done */
return(0);
}
+
static int
xmlSecDSigCtxProcessKeyInfoNode(xmlSecDSigCtxPtr dsigCtx, xmlNodePtr node) {
int ret;
@@ -1118,9 +1195,9 @@ xmlSecDSigCtxDebugDump(xmlSecDSigCtxPtr dsigCtx, FILE* output) {
(xmlSecBufferGetData(dsigCtx->result) != NULL)) {
fprintf(output, "== Result - start buffer:\n");
- fwrite(xmlSecBufferGetData(dsigCtx->result),
- xmlSecBufferGetSize(dsigCtx->result),
- 1, output);
+ (void)fwrite(xmlSecBufferGetData(dsigCtx->result),
+ xmlSecBufferGetSize(dsigCtx->result),
+ 1, output);
fprintf(output, "\n== Result - end buffer\n");
}
if(((dsigCtx->flags & XMLSEC_DSIG_FLAGS_STORE_SIGNATURE) != 0) &&
@@ -1128,9 +1205,9 @@ xmlSecDSigCtxDebugDump(xmlSecDSigCtxPtr dsigCtx, FILE* output) {
(xmlSecBufferGetData(xmlSecDSigCtxGetPreSignBuffer(dsigCtx)) != NULL)) {
fprintf(output, "== PreSigned data - start buffer:\n");
- fwrite(xmlSecBufferGetData(xmlSecDSigCtxGetPreSignBuffer(dsigCtx)),
- xmlSecBufferGetSize(xmlSecDSigCtxGetPreSignBuffer(dsigCtx)),
- 1, output);
+ (void)fwrite(xmlSecBufferGetData(xmlSecDSigCtxGetPreSignBuffer(dsigCtx)),
+ xmlSecBufferGetSize(xmlSecDSigCtxGetPreSignBuffer(dsigCtx)),
+ 1, output);
fprintf(output, "\n== PreSigned data - end buffer\n");
}
}
@@ -1207,9 +1284,9 @@ xmlSecDSigCtxDebugXmlDump(xmlSecDSigCtxPtr dsigCtx, FILE* output) {
(xmlSecBufferGetData(dsigCtx->result) != NULL)) {
fprintf(output, "<Result>");
- fwrite(xmlSecBufferGetData(dsigCtx->result),
- xmlSecBufferGetSize(dsigCtx->result),
- 1, output);
+ (void)fwrite(xmlSecBufferGetData(dsigCtx->result),
+ xmlSecBufferGetSize(dsigCtx->result),
+ 1, output);
fprintf(output, "</Result>\n");
}
if(((dsigCtx->flags & XMLSEC_DSIG_FLAGS_STORE_SIGNATURE) != 0) &&
@@ -1217,9 +1294,9 @@ xmlSecDSigCtxDebugXmlDump(xmlSecDSigCtxPtr dsigCtx, FILE* output) {
(xmlSecBufferGetData(xmlSecDSigCtxGetPreSignBuffer(dsigCtx)) != NULL)) {
fprintf(output, "<PreSignedData>");
- fwrite(xmlSecBufferGetData(xmlSecDSigCtxGetPreSignBuffer(dsigCtx)),
- xmlSecBufferGetSize(xmlSecDSigCtxGetPreSignBuffer(dsigCtx)),
- 1, output);
+ (void)fwrite(xmlSecBufferGetData(xmlSecDSigCtxGetPreSignBuffer(dsigCtx)),
+ xmlSecBufferGetSize(xmlSecDSigCtxGetPreSignBuffer(dsigCtx)),
+ 1, output);
fprintf(output, "</PreSignedData>\n");
}
@@ -1260,7 +1337,7 @@ xmlSecDSigReferenceCtxCreate(xmlSecDSigCtxPtr dsigCtx, xmlSecDSigReferenceOrigin
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
"sizeof(xmlSecDSigReferenceCtx)=%d",
- sizeof(xmlSecDSigReferenceCtx));
+ (int)sizeof(xmlSecDSigReferenceCtx));
return(NULL);
}
@@ -1669,9 +1746,9 @@ xmlSecDSigReferenceCtxDebugDump(xmlSecDSigReferenceCtxPtr dsigRefCtx, FILE* outp
(xmlSecBufferGetData(xmlSecDSigReferenceCtxGetPreDigestBuffer(dsigRefCtx)) != NULL)) {
fprintf(output, "== PreDigest data - start buffer:\n");
- fwrite(xmlSecBufferGetData(xmlSecDSigReferenceCtxGetPreDigestBuffer(dsigRefCtx)),
- xmlSecBufferGetSize(xmlSecDSigReferenceCtxGetPreDigestBuffer(dsigRefCtx)),
- 1, output);
+ (void)fwrite(xmlSecBufferGetData(xmlSecDSigReferenceCtxGetPreDigestBuffer(dsigRefCtx)),
+ xmlSecBufferGetSize(xmlSecDSigReferenceCtxGetPreDigestBuffer(dsigRefCtx)),
+ 1, output);
fprintf(output, "\n== PreDigest data - end buffer\n");
}
@@ -1679,9 +1756,9 @@ xmlSecDSigReferenceCtxDebugDump(xmlSecDSigReferenceCtxPtr dsigRefCtx, FILE* outp
(xmlSecBufferGetData(dsigRefCtx->result) != NULL)) {
fprintf(output, "== Result - start buffer:\n");
- fwrite(xmlSecBufferGetData(dsigRefCtx->result),
- xmlSecBufferGetSize(dsigRefCtx->result), 1,
- output);
+ (void)fwrite(xmlSecBufferGetData(dsigRefCtx->result),
+ xmlSecBufferGetSize(dsigRefCtx->result), 1,
+ output);
fprintf(output, "\n== Result - end buffer\n");
}
}
@@ -1742,9 +1819,9 @@ xmlSecDSigReferenceCtxDebugXmlDump(xmlSecDSigReferenceCtxPtr dsigRefCtx, FILE* o
(xmlSecBufferGetData(dsigRefCtx->result) != NULL)) {
fprintf(output, "<Result>");
- fwrite(xmlSecBufferGetData(dsigRefCtx->result),
- xmlSecBufferGetSize(dsigRefCtx->result), 1,
- output);
+ (void)fwrite(xmlSecBufferGetData(dsigRefCtx->result),
+ xmlSecBufferGetSize(dsigRefCtx->result), 1,
+ output);
fprintf(output, "</Result>\n");
}
@@ -1752,9 +1829,9 @@ xmlSecDSigReferenceCtxDebugXmlDump(xmlSecDSigReferenceCtxPtr dsigRefCtx, FILE* o
(xmlSecBufferGetData(xmlSecDSigReferenceCtxGetPreDigestBuffer(dsigRefCtx)) != NULL)) {
fprintf(output, "<PreDigestData>");
- fwrite(xmlSecBufferGetData(xmlSecDSigReferenceCtxGetPreDigestBuffer(dsigRefCtx)),
- xmlSecBufferGetSize(xmlSecDSigReferenceCtxGetPreDigestBuffer(dsigRefCtx)),
- 1, output);
+ (void)fwrite(xmlSecBufferGetData(xmlSecDSigReferenceCtxGetPreDigestBuffer(dsigRefCtx)),
+ xmlSecBufferGetSize(xmlSecDSigReferenceCtxGetPreDigestBuffer(dsigRefCtx)),
+ 1, output);
fprintf(output, "</PreDigestData>\n");
}
if(dsigRefCtx->dsigCtx->operation == xmlSecTransformOperationSign) {
diff --git a/src/xmlenc.c b/src/xmlenc.c
index 44c9877..36c7bca 100644
--- a/src/xmlenc.c
+++ b/src/xmlenc.c
@@ -7,7 +7,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -65,7 +65,7 @@ xmlSecEncCtxCreate(xmlSecKeysMngrPtr keysMngr) {
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
"sizeof(xmlSecEncCtx)=%d",
- sizeof(xmlSecEncCtx));
+ (int)sizeof(xmlSecEncCtx));
return(NULL);
}
@@ -1218,9 +1218,9 @@ xmlSecEncCtxDebugDump(xmlSecEncCtxPtr encCtx, FILE* output) {
(encCtx->resultBase64Encoded != 0)) {
fprintf(output, "== Result - start buffer:\n");
- fwrite(xmlSecBufferGetData(encCtx->result),
- xmlSecBufferGetSize(encCtx->result), 1,
- output);
+ (void)fwrite(xmlSecBufferGetData(encCtx->result),
+ xmlSecBufferGetSize(encCtx->result), 1,
+ output);
fprintf(output, "\n== Result - end buffer\n");
}
}
@@ -1311,9 +1311,9 @@ xmlSecEncCtxDebugXmlDump(xmlSecEncCtxPtr encCtx, FILE* output) {
(encCtx->resultBase64Encoded != 0)) {
fprintf(output, "<Result>");
- fwrite(xmlSecBufferGetData(encCtx->result),
- xmlSecBufferGetSize(encCtx->result), 1,
- output);
+ (void)fwrite(xmlSecBufferGetData(encCtx->result),
+ xmlSecBufferGetSize(encCtx->result), 1,
+ output);
fprintf(output, "</Result>\n");
}
diff --git a/src/xmlsec.c b/src/xmlsec.c
index 8b6d0ca..6098d3c 100644
--- a/src/xmlsec.c
+++ b/src/xmlsec.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -21,7 +21,6 @@
#include <xmlsec/transforms.h>
#include <xmlsec/app.h>
#include <xmlsec/io.h>
-#include <xmlsec/xkms.h>
#include <xmlsec/errors.h>
/**
@@ -66,24 +65,7 @@ xmlSecInit(void) {
return(-1);
}
-#ifndef XMLSEC_NO_XKMS
- if(xmlSecXkmsRespondWithIdsInit() < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsRespondWithIdsInit",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
- if(xmlSecXkmsServerRequestIdsInit() < 0) {
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
- "xmlSecXkmsServerRequestIdsInit",
- XMLSEC_ERRORS_R_XMLSEC_FAILED,
- XMLSEC_ERRORS_NO_MESSAGE);
- return(-1);
- }
-#endif /* XMLSEC_NO_XKMS */
+
/* we use rand() function to generate id attributes */
srand(time(NULL));
@@ -101,11 +83,6 @@ int
xmlSecShutdown(void) {
int res = 0;
-#ifndef XMLSEC_NO_XKMS
- xmlSecXkmsServerRequestIdsShutdown();
- xmlSecXkmsRespondWithIdsShutdown();
-#endif /* XMLSEC_NO_XKMS */
-
xmlSecTransformIdsShutdown();
xmlSecKeyDataIdsShutdown();
@@ -126,6 +103,17 @@ xmlSecShutdown(void) {
}
/**
+ * xmlSecShutdown:
+ *
+ * Gets the default crypto engine ("openssl", "nss", etc.) for the XML Security Library.
+ *
+ * Returns: the default crypto engine ("openssl", "nss", etc.).
+ */
+const xmlChar * xmlSecGetDefaultCrypto(void) {
+ return BAD_CAST XMLSEC_DEFAULT_CRYPTO;
+}
+
+/**
* xmlSecCheckVersionExt:
* @major: the major version number.
* @minor: the minor version number.
diff --git a/src/xmltree.c b/src/xmltree.c
index 27ad09e..86ad363 100644
--- a/src/xmltree.c
+++ b/src/xmltree.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -28,6 +28,33 @@
#include <xmlsec/errors.h>
/**
+ * xmlSecFindSibling:
+ * @cur: the pointer to XML node.
+ * @name: the name.
+ * @ns: the namespace href (may be NULL).
+ *
+ * Searches @cur and the next siblings of the @cur node having given name and
+ * namespace href.
+ *
+ * Returns: the pointer to the found node or NULL if an error occurs or
+ * node is not found.
+ */
+xmlNodePtr
+xmlSecFindSibling(const xmlNodePtr cur, const xmlChar *name, const xmlChar *ns) {
+ xmlNodePtr tmp;
+ xmlSecAssert2(name != NULL, NULL);
+
+ for(tmp = cur; tmp != NULL; tmp = tmp->next) {
+ if(tmp->type == XML_ELEMENT_NODE) {
+ if(xmlSecCheckNodeName(tmp, name, ns)) {
+ return(tmp);
+ }
+ }
+ }
+ return(NULL);
+}
+
+/**
* xmlSecFindChild:
* @parent: the pointer to XML node.
* @name: the name.
@@ -41,21 +68,10 @@
*/
xmlNodePtr
xmlSecFindChild(const xmlNodePtr parent, const xmlChar *name, const xmlChar *ns) {
- xmlNodePtr cur;
-
xmlSecAssert2(parent != NULL, NULL);
xmlSecAssert2(name != NULL, NULL);
- cur = parent->children;
- while(cur != NULL) {
- if(cur->type == XML_ELEMENT_NODE) {
- if(xmlSecCheckNodeName(cur, name, ns)) {
- return(cur);
- }
- }
- cur = cur->next;
- }
- return(NULL);
+ return(xmlSecFindSibling(parent->children, name, ns));
}
/**
@@ -281,6 +297,56 @@ xmlSecAddChildNode(xmlNodePtr parent, xmlNodePtr child) {
}
/**
+ * xmlSecEnsureEmptyChild:
+ * @parent: the pointer to XML node.
+ * @name: the name.
+ * @ns: the namespace href (may be NULL).
+ *
+ * Searches a direct child of the @parent node having given name and
+ * namespace href. If not found then element node with given name / namespace
+ * is added.
+ *
+ * Returns: the pointer to the found or created node; or NULL if an error occurs.
+ */
+xmlNodePtr
+xmlSecEnsureEmptyChild(const xmlNodePtr parent, const xmlChar *name, const xmlChar *ns) {
+ xmlNodePtr cur = NULL;
+ xmlNodePtr tmp;
+
+ xmlSecAssert2(parent != NULL, NULL);
+ xmlSecAssert2(name != NULL, NULL);
+
+ /* try to find an empty node first */
+ tmp = xmlSecFindNode(parent, name, ns);
+ while(tmp != NULL) {
+ cur = tmp;
+ if(xmlSecIsEmptyNode(cur) == 1) {
+ return(cur);
+ }
+ tmp = xmlSecFindSibling(cur->next, name, ns);
+ }
+
+ /* if not found then either add next or add at the end */
+ if(cur == NULL) {
+ cur = xmlSecAddChild(parent, name, ns);
+ } else if((cur->next != NULL) && (cur->next->type == XML_TEXT_NODE)) {
+ cur = xmlSecAddNextSibling(cur->next, name, ns);
+ } else {
+ cur = xmlSecAddNextSibling(cur, name, ns);
+ }
+ if(cur == NULL) {
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
+ "xmlSecAddChild or xmlSecAddNextSibling",
+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
+ "node=%s",
+ xmlSecErrorsSafeString(name));
+ return(NULL);
+ }
+ return(cur);
+}
+
+/**
* xmlSecAddNextSibling
* @node: the pointer to an XML node.
* @name: the new node name.
diff --git a/src/xpath.c b/src/xpath.c
index e67631e..8b0cf79 100644
--- a/src/xpath.c
+++ b/src/xpath.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -91,7 +91,7 @@ xmlSecXPathDataCreate(xmlSecXPathDataType type) {
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
"sizeof(xmlSecXPathData)=%d",
- sizeof(xmlSecXPathData));
+ (int)sizeof(xmlSecXPathData));
return(NULL);
}
memset(data, 0, sizeof(xmlSecXPathData));
@@ -285,17 +285,17 @@ xmlSecXPathDataExecute(xmlSecXPathDataPtr data, xmlDocPtr doc, xmlNodePtr hereNo
to reserve NULL for our own purposes so we simply create an empty
node set here */
if(xpathObj->nodesetval == NULL) {
- xpathObj->nodesetval = xmlXPathNodeSetCreate(NULL);
- if(xpathObj->nodesetval == NULL) {
- xmlXPathFreeObject(xpathObj);
- xmlSecError(XMLSEC_ERRORS_HERE,
- NULL,
+ xpathObj->nodesetval = xmlXPathNodeSetCreate(NULL);
+ if(xpathObj->nodesetval == NULL) {
+ xmlXPathFreeObject(xpathObj);
+ xmlSecError(XMLSEC_ERRORS_HERE,
+ NULL,
"xmlXPathNodeSetCreate",
XMLSEC_ERRORS_R_XML_FAILED,
"expr=%s",
xmlSecErrorsSafeString(data->expr));
- return(NULL);
- }
+ return(NULL);
+ }
}
nodes = xmlSecNodeSetCreate(doc, xpathObj->nodesetval, data->nodeSetType);
@@ -613,7 +613,7 @@ xmlSecTransformXPathNodeRead(xmlSecTransformPtr transform, xmlNodePtr node, xmlS
NULL,
XMLSEC_ERRORS_R_MALLOC_FAILED,
"size=%d",
- xmlStrlen(data->expr) + strlen(xpathPattern) + 1);
+ (int)(xmlStrlen(data->expr) + strlen(xpathPattern) + 1));
return(-1);
}
sprintf((char*)tmp, xpathPattern, (char*)data->expr);
@@ -1160,6 +1160,3 @@ xmlSecTransformVisa3DHackExecute(xmlSecTransformPtr transform, int last,
}
return(0);
}
-
-
-
diff --git a/src/xslt.c b/src/xslt.c
index 0353a25..e547058 100644
--- a/src/xslt.c
+++ b/src/xslt.c
@@ -6,7 +6,7 @@
* This is free software; see Copyright file in the source
* distribution for preciese wording.
*
- * Copyright (C) 2002-2003 Aleksey Sanin <aleksey at aleksey.com>
+ * Copyright (C) 2002-2016 Aleksey Sanin <aleksey at aleksey.com>. All Rights Reserved.
*/
#include "globals.h"
@@ -584,7 +584,7 @@ xmlSecXsApplyStylesheet(xmlSecXsltCtxPtr ctx, xmlDocPtr doc) {
XMLSEC_ERRORS_R_XSLT_FAILED,
XMLSEC_ERRORS_NO_MESSAGE);
goto done;
- }
+ }
/* set security prefs */
ret = xsltSetCtxtSecurityPrefs(g_xslt_default_security_prefs, xsltCtx);
diff --git a/tests/README b/tests/README
new file mode 100644
index 0000000..2464318
--- /dev/null
+++ b/tests/README
@@ -0,0 +1,10 @@
+If a test fails, it's possible to re-run just that specific test for that
+specific backend using:
+
+> make check-crypto-$backend XMLSEC_TEST_NAME="$name"
+
+where $name is the key name for key tests, and a file name otherwise.
+
+Example:
+
+> make check-crypto-nss XMLSEC_TEST_NAME="enveloping-sha256-rsa-sha256-relationship"
diff --git a/tests/aleksey-xkms-01/bad-request-name-not-supported.xml b/tests/aleksey-xkms-01/bad-request-name-not-supported.xml
deleted file mode 100644
index f2d874f..0000000
--- a/tests/aleksey-xkms-01/bad-request-name-not-supported.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0"?>
-<Result xmlns="http://www.w3.org/2002/03/xkms#" Id="K5FhJO2yxpaycO7RjWW87ASoUt7qQc0h" Service="http://www.example.com/xkms" ResultMajor="Sender" ResultMinor="MessageNotSupported"/>
diff --git a/tests/aleksey-xkms-01/bad-request-name.xml b/tests/aleksey-xkms-01/bad-request-name.xml
deleted file mode 100644
index 1166191..0000000
--- a/tests/aleksey-xkms-01/bad-request-name.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<InvalidRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
- xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
- xmlns="http://www.w3.org/2002/03/xkms#"
- Id="aleksey_xkms_01_bad_request_name"
- Service="http://www.example.com/xkms"
- Nonce="NhdGUxFjAUBgNVBAMTDUFsZWtzZXkasdfgU2Fu"
- ResponseLimit="5" >
- <RespondWith>KeyName</RespondWith>
-</InvalidRequest>
diff --git a/tests/aleksey-xkms-01/compound-example-1-no-match.xml b/tests/aleksey-xkms-01/compound-example-1-no-match.xml
deleted file mode 100644
index 4027213..0000000
--- a/tests/aleksey-xkms-01/compound-example-1-no-match.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0"?>
-<CompoundResult xmlns="http://www.w3.org/2002/03/xkms#" Id="PTLTkLuPfZtNrXVhhcrCqa_0o_73Sqno" Service="http://www.example.com/xkms" RequestId="Ie383fac377f1e54d2b26596c072b8b7a" ResultMajor="Sender" ResultMinor="NoMatch">
-<LocateResult Id="ADj5gRxQoJ__nZ6iWKweeUVy7C4ydhs3" Service="http://www.example.com/xkms" RequestId="I97a5c09bff0fe094d27facf5e5adb206" ResultMajor="Sender" ResultMinor="NoMatch"/>
-
-<LocateResult Id="tWuDz6Ahiw2U40SQXvT_X4Dq1B5KCanL" Service="http://www.example.com/xkms" RequestId="Icf173d33d71c80c74589c6204f7aeb4f" ResultMajor="Sender" ResultMinor="NoMatch"/>
-
-</CompoundResult>
diff --git a/tests/aleksey-xkms-01/compound-example-1.xml b/tests/aleksey-xkms-01/compound-example-1.xml
deleted file mode 100644
index f933ab6..0000000
--- a/tests/aleksey-xkms-01/compound-example-1.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<CompoundRequest xmlns="http://www.w3.org/2002/03/xkms#"
- Id="Ie383fac377f1e54d2b26596c072b8b7a"
- Service="http://www.example.com/xkms">
- <LocateRequest Id="I97a5c09bff0fe094d27facf5e5adb206"
- Service="http://www.example.com/xkms">
- <RespondWith>KeyValue</RespondWith>
- <QueryKeyBinding>
- <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
- <X509Data>
- <X509Certificate>
-MIIDdDCCAx6gAwIBAgIBAjANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
-EzARBgNVBAgTCkNhbGlmb3JuaWExHjAcBgNVBAoTFWFsZWtzZXkteGttcy0wMSB0
-ZXN0czEZMBcGA1UECxMQc2Vjb25kIGxldmVsIGtleTEmMCQGA1UEAxMdaHR0cDov
-L3d3dy5hbGVrc2V5LmNvbS94bWxzZWMxIjAgBgkqhkiG9w0BCQEWE2FsZWtzZXlA
-YWxla3NleS5jb20wHhcNMDQwMjAyMjA1NzAyWhcNMDUwMjAxMjA1NzAyWjCBqDEL
-MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExHjAcBgNVBAoTFWFsZWtz
-ZXkteGttcy0wMSB0ZXN0czEYMBYGA1UECxMPdGhpcmQgbGV2ZWwga2V5MSYwJAYD
-VQQDEx1odHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYzEiMCAGCSqGSIb3DQEJ
-ARYTYWxla3NleUBhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDn
-yQJWr0ZHBuP0uaOACOkD78aRjBr9pEfafTN9qOJv519GD3fg0NFSdZFOpsUKvNYO
-vwOJiyf+S9gSOOtnJVzpAgMBAAGjggEuMIIBKjAJBgNVHRMEAjAAMCwGCWCGSAGG
-+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU
-VBaMhaAXDULGX8z23piFj9uzOPowgc8GA1UdIwSBxzCBxIAUi6lU1cREQvVyXYY6
-y8pTI4qPt/yhgaikgaUwgaIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9y
-bmlhMRIwEAYDVQQHEwlTdW5ueXZhbGUxHjAcBgNVBAoTFWFsZWtzZXkteGttcy0w
-MSB0ZXN0czEmMCQGA1UEAxMdaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMx
-IjAgBgkqhkiG9w0BCQEWE2FsZWtzZXlAYWxla3NleS5jb22CAQEwDQYJKoZIhvcN
-AQEEBQADQQAKRCJXl5CTvvDN5jMaawgGU4DYDpvKmJbMKIV7XM+ZXBFnvcooUSIy
-6EGxF8UmAOSNaqZy+bPXJHiRCbmpNR3e
- </X509Certificate>
- </X509Data>
- </KeyInfo>
- <KeyUsage>Signature</KeyUsage>
- </QueryKeyBinding>
- </LocateRequest>
- <LocateRequest Id="Icf173d33d71c80c74589c6204f7aeb4f"
- Service="http://www.example.com/xkms">
- <RespondWith>KeyName</RespondWith>
- <RespondWith>KeyValue</RespondWith>
- <RespondWith>X509Cert</RespondWith>
- <RespondWith>X509Chain</RespondWith>
- <RespondWith>PGPWeb</RespondWith>
- <RespondWith>PGP</RespondWith>
- <QueryKeyBinding>
- <KeyUsage>Encryption</KeyUsage>
- <UseKeyWith Application="urn:ietf:rfc:2440" Identifier="bob at bobcorp.test"/>
- <UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob at bobcorp.test"/>
- </QueryKeyBinding>
- </LocateRequest>
-</CompoundRequest>
diff --git a/tests/aleksey-xkms-01/keys/cert1.der b/tests/aleksey-xkms-01/keys/cert1.der
deleted file mode 100644
index 491687f..0000000
Binary files a/tests/aleksey-xkms-01/keys/cert1.der and /dev/null differ
diff --git a/tests/aleksey-xkms-01/keys/cert1.pem b/tests/aleksey-xkms-01/keys/cert1.pem
deleted file mode 100644
index c7d4e77..0000000
--- a/tests/aleksey-xkms-01/keys/cert1.pem
+++ /dev/null
@@ -1,26 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEbTCCA9agAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgTCkNhbGlmb3JuaWExEjAQBgNVBAcTCVN1bm55dmFsZTEdMBsGA1UE
-ChMUWE1MIFNlY3VyaXR5IExpYnJhcnkxKTAnBgNVBAsTIGFsZWtzZXkteGttcy0w
-MSByb290IGNlcnRpZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXku
-Y29tL3htbHNlYzEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4X
-DTA0MDIwMzE5MTEyN1oXDTA0MDMwNDE5MTEyN1owgcsxCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIEwpDYWxpZm9ybmlhMRIwEAYDVQQHEwlTdW5ueXZhbGUxHTAbBgNVBAoT
-FFhNTCBTZWN1cml0eSBMaWJyYXJ5MSkwJwYDVQQLEyBhbGVrc2V5LXhrbXMtMDEg
-cm9vdCBjZXJ0aWZpY2F0ZTEmMCQGA1UEAxMdaHR0cDovL3d3dy5hbGVrc2V5LmNv
-bS94bWxzZWMxITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTCBnzAN
-BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAsq7Kwr1+KvsQ2FHud4ZHet3lmj8L3jnu
-xinzAg3CmDmvMomawqpr11eQyJPBjWoWt+KWXIHZv435YbVSnv/MZ96lGC/QDMj+
-Ni1N6tMjjTxmp6qEXrQ0IrskI7jVs2DaceA4GGqLkQ3y1bSQ5RBbhDMwzSLsU8Mz
-8xdsbYIfndkCAwEAAaOCAV0wggFZMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFAv8
-ELYR+j4WXCUEteLjbzDpxGE2MIH4BgNVHSMEgfAwge2AFAv8ELYR+j4WXCUEteLj
-bzDpxGE2oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5p
-YTESMBAGA1UEBxMJU3Vubnl2YWxlMR0wGwYDVQQKExRYTUwgU2VjdXJpdHkgTGli
-cmFyeTEpMCcGA1UECxMgYWxla3NleS14a21zLTAxIHJvb3QgY2VydGlmaWNhdGUx
-JjAkBgNVBAMTHWh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjMSEwHwYJKoZI
-hvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CAQAwLwYJYIZIAYb4QgENBCIWIGFs
-ZWtzZXkteGttcy0wMSByb290IGNlcnRpZmljYXRlMA0GCSqGSIb3DQEBBAUAA4GB
-ABJOf0Q8mVh2IA0Z9DDx/ELDObra7jbbjbthYNmPJlBQ2nwT+zACqoV4rEAm3USR
-BbY9n2ny3voxT5ODEFgi1S8s6VCoyyrou1RJttToN0h+r9kQmgEaTr/bGcKDb5pk
-U07fkNzxY/VkfaLH2b68xfvmQ8J4d9bHTmahiTdZuW4h
------END CERTIFICATE-----
diff --git a/tests/aleksey-xkms-01/keys/cert2.der b/tests/aleksey-xkms-01/keys/cert2.der
deleted file mode 100644
index 215727b..0000000
Binary files a/tests/aleksey-xkms-01/keys/cert2.der and /dev/null differ
diff --git a/tests/aleksey-xkms-01/keys/cert2.pem b/tests/aleksey-xkms-01/keys/cert2.pem
deleted file mode 100644
index 1d87817..0000000
--- a/tests/aleksey-xkms-01/keys/cert2.pem
+++ /dev/null
@@ -1,25 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEJTCCA46gAwIBAgIBATANBgkqhkiG9w0BAQUFADCByzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgTCkNhbGlmb3JuaWExEjAQBgNVBAcTCVN1bm55dmFsZTEdMBsGA1UE
-ChMUWE1MIFNlY3VyaXR5IExpYnJhcnkxKTAnBgNVBAsTIGFsZWtzZXkteGttcy0w
-MSByb290IGNlcnRpZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXku
-Y29tL3htbHNlYzEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4X
-DTA0MDIwMzE5MTEyN1oXDTE0MDEzMTE5MTEyN1owgb8xCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIEwpDYWxpZm9ybmlhMR0wGwYDVQQKExRYTUwgU2VjdXJpdHkgTGlicmFy
-eTExMC8GA1UECxMoYWxla3NleS14a21zLTAxIHNlY29uZCBsZXZlbCBjZXJ0aWZp
-Y2F0ZTEmMCQGA1UEAxMdaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMxITAf
-BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUA
-A0sAMEgCQQDd+36RCkHXnn6pxsfTKhTo/Zocgr4pgtOzS+aT5eji+A0GzPaFHXpY
-0K+nDphWUYBzjrjOkxMBzlvv+BOvc9SzAgMBAAGjggFlMIIBYTAMBgNVHRMEBTAD
-AQH/MB0GA1UdDgQWBBQTZBEwsylIFyyafRuyvYQ+rY3gwzCB+AYDVR0jBIHwMIHt
-gBQL/BC2Efo+FlwlBLXi428w6cRhNqGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzAR
-BgNVBAgTCkNhbGlmb3JuaWExEjAQBgNVBAcTCVN1bm55dmFsZTEdMBsGA1UEChMU
-WE1MIFNlY3VyaXR5IExpYnJhcnkxKTAnBgNVBAsTIGFsZWtzZXkteGttcy0wMSBy
-b290IGNlcnRpZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXkuY29t
-L3htbHNlYzEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggEAMDcG
-CWCGSAGG+EIBDQQqFihhbGVrc2V5LXhrbXMtMDEgc2Vjb25kIGxldmVsIGNlcnRp
-ZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGMs5oZgbjfJBTeWZ7VZHAOyT+sS0tzK
-EPONgoId9RZLlBmxosG2zZ+Tu5xEqxh4HlkUzHEnenB7K/fmGTnQDrHHQH3Q/afI
-zMot8vXO5V3GX7vdYwU6tCEWUG+2JoaJ2riDcrkVwdEpKLo6GH3bGsqkreeH05ll
-oL+n2iYuEzV+
------END CERTIFICATE-----
diff --git a/tests/aleksey-xkms-01/keys/cert3.der b/tests/aleksey-xkms-01/keys/cert3.der
deleted file mode 100644
index 83eb352..0000000
Binary files a/tests/aleksey-xkms-01/keys/cert3.der and /dev/null differ
diff --git a/tests/aleksey-xkms-01/keys/cert3.pem b/tests/aleksey-xkms-01/keys/cert3.pem
deleted file mode 100644
index 67b3caf..0000000
--- a/tests/aleksey-xkms-01/keys/cert3.pem
+++ /dev/null
@@ -1,24 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEDTCCA7egAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBvzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgTCkNhbGlmb3JuaWExHTAbBgNVBAoTFFhNTCBTZWN1cml0eSBMaWJy
-YXJ5MTEwLwYDVQQLEyhhbGVrc2V5LXhrbXMtMDEgc2Vjb25kIGxldmVsIGNlcnRp
-ZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYzEh
-MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4XDTA0MDIwMzE5MTEy
-OFoXDTE0MDEzMTE5MTEyOFowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxp
-Zm9ybmlhMR0wGwYDVQQKExRYTUwgU2VjdXJpdHkgTGlicmFyeTE9MDsGA1UECxM0
-YWxla3NleS14a21zLTAxIHNpZ25hdHVyZSBhbmQgZW5jcnlwdGlvbiBjZXJ0aWZp
-Y2F0ZTEmMCQGA1UEAxMdaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMxITAf
-BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUA
-A0sAMEgCQQDS208fS1M+MzOOewMytAU7ecT5ErtLTrK2mZr7QMqAGs696qHv9WOW
-i115eDaLW50XRVNr16eiquDtXl53EfBvAgMBAAGjggGOMIIBijAJBgNVHRMEAjAA
-MBEGCWCGSAGG+EIBAQQEAwIEsDALBgNVHQ8EBAMCBeAwQwYJYIZIAYb4QgENBDYW
-NGFsZWtzZXkteGttcy0wMSBzaWduYXR1cmUgYW5kIGVuY3J5cHRpb24gY2VydGlm
-aWNhdGUwHQYDVR0OBBYEFJw9QoFYPiU7VQheRsUV7LrY84+TMIH4BgNVHSMEgfAw
-ge2AFBNkETCzKUgXLJp9G7K9hD6tjeDDoYHRpIHOMIHLMQswCQYDVQQGEwJVUzET
-MBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJU3Vubnl2YWxlMR0wGwYDVQQK
-ExRYTUwgU2VjdXJpdHkgTGlicmFyeTEpMCcGA1UECxMgYWxla3NleS14a21zLTAx
-IHJvb3QgY2VydGlmaWNhdGUxJjAkBgNVBAMTHWh0dHA6Ly93d3cuYWxla3NleS5j
-b20veG1sc2VjMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CAQEw
-DQYJKoZIhvcNAQEFBQADQQAsb2Wh4hp+axYEGrsTMqd9j8pKuxJqa89ob4nl/FwN
-5jelwnWbB+3HG7f9GusYg6nNzga1EFD3YTfW23YWIKd9
------END CERTIFICATE-----
diff --git a/tests/aleksey-xkms-01/keys/create-keys.sh b/tests/aleksey-xkms-01/keys/create-keys.sh
deleted file mode 100755
index 127e127..0000000
--- a/tests/aleksey-xkms-01/keys/create-keys.sh
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/sh
-#
-# This script along with "openssl.cnf" file from this folder creates
-# a chain of three certificates containing RSA 1024 keys:
-# cert1 (key1) - root CA certificate (self signed).
-# cert2 (key2) - second level CA certificate (signed with key1/cert1)
-# cert3 (key3) - signature/encryption certificate (signed with key2/cert2)
-# All the private keys are encrypted with password "secret".
-#
-export CA_TOP=./demoCA
-export CA_PWD=secret
-
-echo "Remove old file"
-rm -rf "$CA_TOP" *.pem *.der *.p12 *.req
-
-echo "Create CA folders structure"
-mkdir "$CA_TOP"
-mkdir "${CA_TOP}/certs"
-mkdir "${CA_TOP}/crl"
-mkdir "${CA_TOP}/newcerts"
-mkdir "${CA_TOP}/private"
-echo "01" > "$CA_TOP/serial"
-touch "$CA_TOP/index.txt"
-
-echo "Create root key and certificate"
-export CERT_NAME="aleksey-xkms-01 root certificate"
-openssl req -config ./openssl.cnf -new -x509 -keyout key1.pem -out cert1.pem -batch
-
-echo "Generate RSA key and second level certificate"
-export CERT_NAME="aleksey-xkms-01 second level certificate"
-openssl genrsa -out key2.pem
-openssl req -config ./openssl.cnf -batch -new -key key2.pem -out req2.pem
-openssl ca -config ./openssl.cnf -passin pass:$CA_PWD -batch -extensions v3_ca -cert cert1.pem -keyfile key1.pem -out cert2.pem -infiles req2.pem
-
-echo "Generate another RSA key and third level certificate"
-export CERT_NAME="aleksey-xkms-01 signature and encryption certificate"
-openssl genrsa -out key3.pem
-openssl req -config ./openssl.cnf -batch -new -key key3.pem -out req3.pem
-openssl ca -config ./openssl.cnf -passin pass:$CA_PWD -batch -cert cert2.pem -keyfile key2.pem -out cert3.pem -infiles req3.pem
-
-echo "Convert all private keys to der, pkcs8/der and pkcs12 format"
-openssl rsa -passin pass:$CA_PWD -passout pass:$CA_PWD -inform PEM -outform DER -in key1.pem -out key1.der
-openssl rsa -passin pass:$CA_PWD -passout pass:$CA_PWD -inform PEM -outform DER -in key2.pem -out key2.der
-openssl rsa -passin pass:$CA_PWD -passout pass:$CA_PWD -inform PEM -outform DER -in key3.pem -out key3.der
-
-openssl pkcs8 -passin pass:$CA_PWD -passout pass:$CA_PWD -in key1.pem -inform pem -out key1-pk8.der -outform der -topk8
-openssl pkcs8 -passin pass:$CA_PWD -passout pass:$CA_PWD -in key2.pem -inform pem -out key2-pk8.der -outform der -topk8
-openssl pkcs8 -passin pass:$CA_PWD -passout pass:$CA_PWD -in key3.pem -inform pem -out key3-pk8.der -outform der -topk8
-
-openssl pkcs12 -passin pass:$CA_PWD -passout pass:$CA_PWD -export -in cert1.pem -inkey key1.pem -name key1 -out key1.p12
-openssl pkcs12 -passin pass:$CA_PWD -passout pass:$CA_PWD -export -in cert2.pem -inkey key2.pem -name key2 -out key2.p12
-openssl pkcs12 -passin pass:$CA_PWD -passout pass:$CA_PWD -export -in cert3.pem -inkey key3.pem -name key3 -out key3.p12
-
-echo "Convert all certificates to der format"
-openssl x509 -outform DER -in cert1.pem -out cert1.der
-openssl x509 -outform DER -in cert2.pem -out cert2.der
-openssl x509 -outform DER -in cert3.pem -out cert3.der
-
-echo "View certificates"
-openssl x509 -noout -text -in cert1.pem
-openssl x509 -noout -text -in cert2.pem
-openssl x509 -noout -text -in cert3.pem
-
-echo "Test certificates"
-openssl verify -CAfile cert1.pem cert2.pem
-openssl verify -CAfile cert1.pem -untrusted cert2.pem cert3.pem
-
-
-echo "Cleanup"
-rm -rf "$CA_TOP" *.req
-
-
-
\ No newline at end of file
diff --git a/tests/aleksey-xkms-01/keys/key1-pk8.der b/tests/aleksey-xkms-01/keys/key1-pk8.der
deleted file mode 100644
index 534bbe0..0000000
Binary files a/tests/aleksey-xkms-01/keys/key1-pk8.der and /dev/null differ
diff --git a/tests/aleksey-xkms-01/keys/key1.der b/tests/aleksey-xkms-01/keys/key1.der
deleted file mode 100644
index 418252f..0000000
Binary files a/tests/aleksey-xkms-01/keys/key1.der and /dev/null differ
diff --git a/tests/aleksey-xkms-01/keys/key1.p12 b/tests/aleksey-xkms-01/keys/key1.p12
deleted file mode 100644
index 1747570..0000000
Binary files a/tests/aleksey-xkms-01/keys/key1.p12 and /dev/null differ
diff --git a/tests/aleksey-xkms-01/keys/key1.pem b/tests/aleksey-xkms-01/keys/key1.pem
deleted file mode 100644
index 384146f..0000000
--- a/tests/aleksey-xkms-01/keys/key1.pem
+++ /dev/null
@@ -1,18 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-Proc-Type: 4,ENCRYPTED
-DEK-Info: DES-EDE3-CBC,EF746F459C10E84C
-
-+vGzkn5DyrDLs2Y0Lob6vcvfA/GgjJDU6HOrOUziiujCSWE0ajdsrQROcuoLjkm3
-EyHsIxEqqawJM5uYMhw/tYH+9n+89w0GYRELhL/z+u23dUPNlJd/32ttGDmywyBB
-byucTX4plVs74nrbeXuK9AJy7AKmZKV/h2fWjLNSNtWEa86A2b9wH2MrIIxfjoQX
-cw9rb1ejs6O8takn0HmOfoTHvor+jq21w299jLZ32GfUhJTiTPNpfnqBwwmlKvoe
-UyIPgquRi1XAstCuzTRCrfCqJTRB7OBh2dvoWgz/12/z11PULtr15XB3ex9pOZn/
-Dw/qYLwDqv4pp7sRHZeTOPRZ6By6KPTeFn3A7jd4P/s/M1IcGJ46DXSjx+wlhYs6
-QnanaZhApt1Xk9HWiLPlrGbT98QkXYorp6NHGeuAl1HB3epnZRfGB7DhgbKcVTlJ
-FS/MOo6knz5XjKjbE03Jf0EQlad5UsXcwlAzxGGYDjEnCOpOwowkKBrpl4yvkEBK
-Md69hiAaIHup35yz51mwTXalwUiJMNSKp6DSoM2I9MFxTvKJXnClVwa/Xy6fb1L+
-W1tMyFvLtUpe2un9NFBS/7bxfOxSeBWQGxvKFyqwcn/JC3xNhnXybpgIFPijrfXj
-Dot8uDHjZZaZ0PogsnF1chd7TcNXH93VKQJSHPt/2p9+B2hM10cQE27iS9Op6AXr
-S62hLDddlxja1xebclecfWG6IVZrL2fH2rDQDUWxXbZ4Mq/qWO2prkrvEBhK447h
-WuupfwIAY9wVEFsTY3jbnjlpHo4ucpXCxvxJl5niXgwKwMXVoccOFg==
------END RSA PRIVATE KEY-----
diff --git a/tests/aleksey-xkms-01/keys/key2-pk8.der b/tests/aleksey-xkms-01/keys/key2-pk8.der
deleted file mode 100644
index 4144ca8..0000000
Binary files a/tests/aleksey-xkms-01/keys/key2-pk8.der and /dev/null differ
diff --git a/tests/aleksey-xkms-01/keys/key2.der b/tests/aleksey-xkms-01/keys/key2.der
deleted file mode 100644
index 2501276..0000000
Binary files a/tests/aleksey-xkms-01/keys/key2.der and /dev/null differ
diff --git a/tests/aleksey-xkms-01/keys/key2.p12 b/tests/aleksey-xkms-01/keys/key2.p12
deleted file mode 100644
index e1b69c2..0000000
Binary files a/tests/aleksey-xkms-01/keys/key2.p12 and /dev/null differ
diff --git a/tests/aleksey-xkms-01/keys/key2.pem b/tests/aleksey-xkms-01/keys/key2.pem
deleted file mode 100644
index 3786b66..0000000
--- a/tests/aleksey-xkms-01/keys/key2.pem
+++ /dev/null
@@ -1,9 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIBPAIBAAJBAN37fpEKQdeefqnGx9MqFOj9mhyCvimC07NL5pPl6OL4DQbM9oUd
-eljQr6cOmFZRgHOOuM6TEwHOW+/4E69z1LMCAwEAAQJAdaKTHfWbktIxOXNX7bV9
-Q0Mxai5267Siz39Hf9T0p2HjERBxLjn2/wr6LbzmIsj13hLr4CcGzjS1nQFo2ogU
-8QIhAP2XFRdCV6virQiK/yAkRU+oBHEcLdKdJb61h5QM3SMlAiEA4BeEycqGq8Pz
-Bg86CA2cf4asTj/PzULyU7XmDgB9fPcCIQCvruqaqYiJeUm9IGatgtNN4y3omsgY
-IGzU2XhrFhphzQIhALj28KXWwt3X+SoRO2cWRQyFzocv6IeWMIqj42W/RdT1AiEA
-1sl/iVwvUefejP+CaD00Aswo8PW6zUiNNfoLeH4dfwo=
------END RSA PRIVATE KEY-----
diff --git a/tests/aleksey-xkms-01/keys/key3-pk8.der b/tests/aleksey-xkms-01/keys/key3-pk8.der
deleted file mode 100644
index 17dcd29..0000000
Binary files a/tests/aleksey-xkms-01/keys/key3-pk8.der and /dev/null differ
diff --git a/tests/aleksey-xkms-01/keys/key3.der b/tests/aleksey-xkms-01/keys/key3.der
deleted file mode 100644
index 8209754..0000000
Binary files a/tests/aleksey-xkms-01/keys/key3.der and /dev/null differ
diff --git a/tests/aleksey-xkms-01/keys/key3.p12 b/tests/aleksey-xkms-01/keys/key3.p12
deleted file mode 100644
index 8670b50..0000000
Binary files a/tests/aleksey-xkms-01/keys/key3.p12 and /dev/null differ
diff --git a/tests/aleksey-xkms-01/keys/key3.pem b/tests/aleksey-xkms-01/keys/key3.pem
deleted file mode 100644
index 9574d1d..0000000
--- a/tests/aleksey-xkms-01/keys/key3.pem
+++ /dev/null
@@ -1,9 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIBOgIBAAJBANLbTx9LUz4zM457AzK0BTt5xPkSu0tOsraZmvtAyoAazr3qoe/1
-Y5aLXXl4NotbnRdFU2vXp6Kq4O1eXncR8G8CAwEAAQJAa3T2qrUhlCZV1Pvd0l4p
-+HiDKIgiSSuvKh23/Om1CXkyhUot7ky5FtH0vjPjy8C9YNeVQefcOFpUlgT13ifH
-GQIhAPogHHKhfQz1RveauqOUEhUM60M861oioeDTVICgFUGTAiEA188Xz+fPHg8P
-EaOnlWAfpj5MEPv/Hn1bG3Z1LRA1TzUCICmtQBA5qESIehK3zXGEMp8fT/QcKnsS
-WjbD/8iO4/vRAiAzgugBJSin2RpUsIaAvifvy3DmoO+9PFixzm2bqwG+fQIhAJIA
-D28ibeq5xOdikLT3yyZQQ7kuYRVp7lQeVb0K7U5l
------END RSA PRIVATE KEY-----
diff --git a/tests/aleksey-xkms-01/keys/openssl.cnf b/tests/aleksey-xkms-01/keys/openssl.cnf
deleted file mode 100644
index 0d6326b..0000000
--- a/tests/aleksey-xkms-01/keys/openssl.cnf
+++ /dev/null
@@ -1,106 +0,0 @@
-#
-# aleksey-xkms-01 OpenSSL configuration file.
-#
-# Environment variables:
-# CA_TOP - the CA folder (./demoCA)
-# CERT_NAME - the currently generated certificate name ("")
-
-# This definition stops the following lines choking if HOME isn't
-# defined.
-HOME = .
-RANDFILE = $ENV::HOME/.rnd
-
-[ ca ]
-default_ca = CA_default # The default ca section
-
-[ CA_default ]
-dir = $ENV::CA_TOP # Where everything is kept
-certs = $dir/certs # Where the issued certs are kept
-crl_dir = $dir/crl # Where the issued crl are kept
-database = $dir/index.txt # database index file.
-new_certs_dir = $dir/newcerts # default place for new certs.
-
-certificate = cert1.pem # The CA certificate
-private_key = key1.pem # The private key
-serial = $dir/serial # The current serial number
-crl = $dir/crl.pem # The current CRL
-RANDFILE = $dir/private/.rand # private random number file
-
-x509_extensions = usr_cert # The extentions to add to the cert
-
-# Comment out the following two lines for the "traditional"
-# (and highly broken) format.
-name_opt = ca_default # Subject Name options
-cert_opt = ca_default # Certificate field options
-
-default_days = 3650 # how long to certify for
-default_crl_days = 30 # how long before next CRL
-default_md = sha1 # which md to use.
-preserve = no # keep passed DN ordering
-
-policy = policy_match
-
-[ policy_match ]
-countryName = match
-stateOrProvinceName = match
-organizationName = match
-organizationalUnitName = optional
-commonName = supplied
-emailAddress = optional
-
-[ policy_anything ]
-countryName = optional
-stateOrProvinceName = optional
-localityName = optional
-organizationName = optional
-organizationalUnitName = optional
-commonName = supplied
-emailAddress = optional
-
-####################################################################
-[ req ]
-default_bits = 1024
-default_keyfile = privkey.pem
-distinguished_name = req_distinguished_name
-attributes = req_attributes
-x509_extensions = v3_ca
-input_password = secret
-output_password = secret
-string_mask = nombstr
-
-[ req_distinguished_name ]
-countryName = Country Name (2 letter code)
-countryName_default = US
-stateOrProvinceName = State or Province Name (full name)
-stateOrProvinceName_default = California
-localityName = Locality Name (eg, city)
-localityName_default = Sunnyvale
-0.organizationName = Organization Name (eg, company)
-0.organizationName_default = XML Security Library
-organizationalUnitName = Organizational Unit Name (eg, section)
-organizationalUnitName_default = $ENV::CERT_NAME
-commonName = Common Name (eg, your name or your server\'s hostname)
-commonName_default = http://www.aleksey.com/xmlsec
-emailAddress = Email Address
-emailAddress_default = xmlsec at aleksey.com
-
-[ req_attributes ]
-
-[ v3_req ]
-basicConstraints = CA:FALSE
-keyUsage = nonRepudiation, digitalSignature, keyEncipherment
-nsComment = $ENV::CERT_NAME
-
-[ v3_ca ]
-basicConstraints = CA:TRUE
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid:always,issuer:always
-nsComment = $ENV::CERT_NAME
-
-[ usr_cert ]
-basicConstraints = CA:FALSE
-nsCertType = client, email, objsign
-keyUsage = nonRepudiation, digitalSignature, keyEncipherment
-nsComment = $ENV::CERT_NAME
-subjectKeyIdentifier = hash
-authorityKeyIdentifier = keyid,issuer:always
diff --git a/tests/aleksey-xkms-01/keys/req2.pem b/tests/aleksey-xkms-01/keys/req2.pem
deleted file mode 100644
index 3860d8d..0000000
--- a/tests/aleksey-xkms-01/keys/req2.pem
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN CERTIFICATE REQUEST-----
-MIIBjzCCATkCAQAwgdMxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
-MRIwEAYDVQQHEwlTdW5ueXZhbGUxHTAbBgNVBAoTFFhNTCBTZWN1cml0eSBMaWJy
-YXJ5MTEwLwYDVQQLEyhhbGVrc2V5LXhrbXMtMDEgc2Vjb25kIGxldmVsIGNlcnRp
-ZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYzEh
-MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFwwDQYJKoZIhvcNAQEB
-BQADSwAwSAJBAN37fpEKQdeefqnGx9MqFOj9mhyCvimC07NL5pPl6OL4DQbM9oUd
-eljQr6cOmFZRgHOOuM6TEwHOW+/4E69z1LMCAwEAAaAAMA0GCSqGSIb3DQEBBAUA
-A0EAoBq9CU6bylLSV9+msyb1Ya49PV4eCXJuvQ4S6lJz/FdrOnxK65BsXWI3Vo58
-KSIfJNTjAC0Xy51ANAG5mUxeyw==
------END CERTIFICATE REQUEST-----
diff --git a/tests/aleksey-xkms-01/keys/req3.pem b/tests/aleksey-xkms-01/keys/req3.pem
deleted file mode 100644
index 16b3344..0000000
--- a/tests/aleksey-xkms-01/keys/req3.pem
+++ /dev/null
@@ -1,11 +0,0 @@
------BEGIN CERTIFICATE REQUEST-----
-MIIBmzCCAUUCAQAwgd8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
-MRIwEAYDVQQHEwlTdW5ueXZhbGUxHTAbBgNVBAoTFFhNTCBTZWN1cml0eSBMaWJy
-YXJ5MT0wOwYDVQQLEzRhbGVrc2V5LXhrbXMtMDEgc2lnbmF0dXJlIGFuZCBlbmNy
-eXB0aW9uIGNlcnRpZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXku
-Y29tL3htbHNlYzEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMFww
-DQYJKoZIhvcNAQEBBQADSwAwSAJBANLbTx9LUz4zM457AzK0BTt5xPkSu0tOsraZ
-mvtAyoAazr3qoe/1Y5aLXXl4NotbnRdFU2vXp6Kq4O1eXncR8G8CAwEAAaAAMA0G
-CSqGSIb3DQEBBAUAA0EAqBHpXfIIFP1VGwqI6em5vOuyapzYx+s4Cjrem7zHZ+7J
-GM4uRSy8oE2RPiLODy9DVmPRpdit/9yhWrlQIhxalQ==
------END CERTIFICATE REQUEST-----
diff --git a/tests/aleksey-xkms-01/locate-example-1-bad-service.xml b/tests/aleksey-xkms-01/locate-example-1-bad-service.xml
deleted file mode 100644
index ca54d13..0000000
--- a/tests/aleksey-xkms-01/locate-example-1-bad-service.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0"?>
-<LocateResult xmlns="http://www.w3.org/2002/03/xkms#" Id="AK4RNs6LxPMwFfTN5X3UEaIzsts8n7i3" Service="http://www.example.com/xkms" RequestId="Ibcef5348aa386dedeff0bdf6bae872db" ResultMajor="Sender" ResultMinor="Failure"/>
diff --git a/tests/aleksey-xkms-01/locate-example-1-no-match.xml b/tests/aleksey-xkms-01/locate-example-1-no-match.xml
deleted file mode 100644
index f3a230a..0000000
--- a/tests/aleksey-xkms-01/locate-example-1-no-match.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0"?>
-<LocateResult xmlns="http://www.w3.org/2002/03/xkms#" Id="i_EgHv33_VtORyYM7QcrREX_ERkxuMin" Service="http://www.example.com/xkms" RequestId="Ibcef5348aa386dedeff0bdf6bae872db" ResultMajor="Sender" ResultMinor="NoMatch"/>
diff --git a/tests/aleksey-xkms-01/locate-example-1.xml b/tests/aleksey-xkms-01/locate-example-1.xml
deleted file mode 100644
index 6c57574..0000000
--- a/tests/aleksey-xkms-01/locate-example-1.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LocateRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
- xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
- xmlns="http://www.w3.org/2002/03/xkms#"
- Id="Ibcef5348aa386dedeff0bdf6bae872db"
- Service="http://www.example.com/xkms">
- <RespondWith>KeyName</RespondWith>
- <RespondWith>KeyValue</RespondWith>
- <RespondWith>X509Cert</RespondWith>
- <RespondWith>X509Chain</RespondWith>
- <RespondWith>PGPWeb</RespondWith>
- <RespondWith>PGP</RespondWith>
- <QueryKeyBinding>
- <KeyUsage>Encryption</KeyUsage>
- <UseKeyWith Application="urn:ietf:rfc:2440" Identifier="bob at bobcorp.test"/>
- <UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob at bobcorp.test"/>
- </QueryKeyBinding>
-</LocateRequest>
diff --git a/tests/aleksey-xkms-01/locate-example-2-no-match.xml b/tests/aleksey-xkms-01/locate-example-2-no-match.xml
deleted file mode 100644
index 57092c0..0000000
--- a/tests/aleksey-xkms-01/locate-example-2-no-match.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0"?>
-<LocateResult xmlns="http://www.w3.org/2002/03/xkms#" Id="kh561pqakQw3jtjxWZ19apUKn__1Ggpw" Service="http://www.example.com/xkms" RequestId="I4593b8d4b6bd9ae7262560b5de1016bc" ResultMajor="Sender" ResultMinor="NoMatch"/>
diff --git a/tests/aleksey-xkms-01/locate-example-2.xml b/tests/aleksey-xkms-01/locate-example-2.xml
deleted file mode 100644
index cc91dc9..0000000
--- a/tests/aleksey-xkms-01/locate-example-2.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LocateRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
- xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
- xmlns="http://www.w3.org/2002/03/xkms#"
- Id="I4593b8d4b6bd9ae7262560b5de1016bc"
- Service="http://www.example.com/xkms">
- <RespondWith>KeyValue</RespondWith>
- <QueryKeyBinding>
- <ds:KeyInfo>
- <ds:X509Data>
- <ds:X509Certificate>
-MIIEDTCCA7egAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBvzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgTCkNhbGlmb3JuaWExHTAbBgNVBAoTFFhNTCBTZWN1cml0eSBMaWJy
-YXJ5MTEwLwYDVQQLEyhhbGVrc2V5LXhrbXMtMDEgc2Vjb25kIGxldmVsIGNlcnRp
-ZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYzEh
-MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4XDTA0MDIwMzE5MTEy
-OFoXDTE0MDEzMTE5MTEyOFowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxp
-Zm9ybmlhMR0wGwYDVQQKExRYTUwgU2VjdXJpdHkgTGlicmFyeTE9MDsGA1UECxM0
-YWxla3NleS14a21zLTAxIHNpZ25hdHVyZSBhbmQgZW5jcnlwdGlvbiBjZXJ0aWZp
-Y2F0ZTEmMCQGA1UEAxMdaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMxITAf
-BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUA
-A0sAMEgCQQDS208fS1M+MzOOewMytAU7ecT5ErtLTrK2mZr7QMqAGs696qHv9WOW
-i115eDaLW50XRVNr16eiquDtXl53EfBvAgMBAAGjggGOMIIBijAJBgNVHRMEAjAA
-MBEGCWCGSAGG+EIBAQQEAwIEsDALBgNVHQ8EBAMCBeAwQwYJYIZIAYb4QgENBDYW
-NGFsZWtzZXkteGttcy0wMSBzaWduYXR1cmUgYW5kIGVuY3J5cHRpb24gY2VydGlm
-aWNhdGUwHQYDVR0OBBYEFJw9QoFYPiU7VQheRsUV7LrY84+TMIH4BgNVHSMEgfAw
-ge2AFBNkETCzKUgXLJp9G7K9hD6tjeDDoYHRpIHOMIHLMQswCQYDVQQGEwJVUzET
-MBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJU3Vubnl2YWxlMR0wGwYDVQQK
-ExRYTUwgU2VjdXJpdHkgTGlicmFyeTEpMCcGA1UECxMgYWxla3NleS14a21zLTAx
-IHJvb3QgY2VydGlmaWNhdGUxJjAkBgNVBAMTHWh0dHA6Ly93d3cuYWxla3NleS5j
-b20veG1sc2VjMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CAQEw
-DQYJKoZIhvcNAQEFBQADQQAsb2Wh4hp+axYEGrsTMqd9j8pKuxJqa89ob4nl/FwN
-5jelwnWbB+3HG7f9GusYg6nNzga1EFD3YTfW23YWIKd9
- </ds:X509Certificate>
- </ds:X509Data>
- </ds:KeyInfo>
- <KeyUsage>Signature</KeyUsage>
- </QueryKeyBinding>
-</LocateRequest>
diff --git a/tests/aleksey-xkms-01/locate-opaque-client-data-no-match.xml b/tests/aleksey-xkms-01/locate-opaque-client-data-no-match.xml
deleted file mode 100644
index 0e3f152..0000000
--- a/tests/aleksey-xkms-01/locate-opaque-client-data-no-match.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0"?>
-<LocateResult xmlns="http://www.w3.org/2002/03/xkms#" Id="lWW2Ua0wnq19PPm09tZdVx87UcG2Wt_g" Service="http://www.example.com/xkms" RequestId="aleksey_xkms_01_locate_opaque_client_data" ResultMajor="Sender" ResultMinor="NoMatch"/>
diff --git a/tests/aleksey-xkms-01/locate-opaque-client-data.xml b/tests/aleksey-xkms-01/locate-opaque-client-data.xml
deleted file mode 100644
index b8345e4..0000000
--- a/tests/aleksey-xkms-01/locate-opaque-client-data.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xkms:LocateRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
- xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
- xmlns:xkms="http://www.w3.org/2002/03/xkms#"
- Id="aleksey_xkms_01_locate_opaque_client_data"
- Service="http://www.example.com/xkms"
- Nonce="NhdGUxFjAUBgNVBAMTDUFsZWtzZXkgU2Fu"
- ResponseLimit="5" >
- <xkms:MessageExtension>
- <example:Data xmlns:example="http://www.example.com/MessageExtension">01234</example:Data>
- </xkms:MessageExtension>
- <xkms:MessageExtension>
- <example:Data xmlns:example="http://www.example.com/MessageExtension">56789</example:Data>
- </xkms:MessageExtension>
- <xkms:OpaqueClientData>
- <xkms:OpaqueData>XfiZuHwu3rTFhca9O6sVPOcBuFTrnAgMBAAGjggFXMIIBUzAJBgNVHRMEAjAA</xkms:OpaqueData>
- </xkms:OpaqueClientData>
- <xkms:RespondWith>xkms:KeyName</xkms:RespondWith>
- <xkms:RespondWith>xkms:KeyValue</xkms:RespondWith>
- <xkms:RespondWith>xkms:X509Cert</xkms:RespondWith>
- <xkms:RespondWith>xkms:X509Chain</xkms:RespondWith>
- <xkms:RespondWith>PGPWeb</xkms:RespondWith>
- <xkms:RespondWith>PGP</xkms:RespondWith>
- <xkms:QueryKeyBinding>
- <ds:KeyInfo>
- <KeyName>key2</KeyName>
- </ds:KeyInfo>
- <xkms:KeyUsage>xkms:Encryption</xkms:KeyUsage>
- <xkms:UseKeyWith Application="urn:ietf:rfc:2440" Identifier="bob at bobcorp.test"/>
- <xkms:UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob at bobcorp.test"/>
- </xkms:QueryKeyBinding>
-</xkms:LocateRequest>
diff --git a/tests/aleksey-xkms-01/readme.txt b/tests/aleksey-xkms-01/readme.txt
deleted file mode 100644
index 8aac6f4..0000000
--- a/tests/aleksey-xkms-01/readme.txt
+++ /dev/null
@@ -1,117 +0,0 @@
-XKMS Featrues
- <xkms:StatusRequest>
- <xkms:LocateRequest>
- <xkms:ValidateRequest>
- <xkms:CompundRequest>
- Pending requests
- <xkms:MessageExtension>
- <xkms:OpaqueClientData>
- <xkms:KeyUsage>
- <xkms:UseKeyWith>
- <xkms:TieInstant> and <xkms:ValidityInterval>
-
-
-Expected service is http://www.example.com/xkms
-
-1) Tests
-1.1) locate-example-1 (LocateRequest example 4.1.1 from XKMS 2.0 spec).
-
- * locate-example-1.xml - LocateRequest file.
- * locate-example-1-no-match.xml - LocateResult: "NoMatch" error
- (key not found).
- * locate-example-1-bad-service.xml - LocateResult: bad "Service".
-
-1.2) locate-example-2 (LocateRequest example 4.1.2 from XKMS 2.0 spec
-with certificate from cert2.pem file).
-
- * locate-example-2.xml - LocateRequest file.
- * locate-example-2-no-match.xml - LocateResult: "NoMatch" error
- (key not found).
-
-1.3) validate-example-1 (ValidateRequest example 4.2.1 from XKMS 2.0 spec
-with certificates from cert2.pem and cert3.pem file).
-
- * validate-example-1.xml - ValidateRequest file.
- * validate-example-1-no-match.xml - ValidateResult: "NoMatch" error
- (key not found).
-
-1.4) compaund-example-1 (CompaundRequest example 2.8.1 from XKMS 2.0 spec
-with certificate from cert3.pem file).
-
- * compaund-example-1.xml - CompaundRequest file.
- * compound-example-1-no-match.xml - CompoundResult: "NoMatch" error
- (key not found).
-
-1.5) locate-opaque-client-data (LocateRequest with xkms:MessageExtension and
-xkms:OpaqueClientData nodes).
-
- * locate-opaque-client-data.xml - LocateRequest file.
- * locate-opaque-client-data-no-match.xml
- - LocateResult: "NoMatch" error
- (key not found).
-
-1.6) status-request (simple StatusRequest)
-
- * status-request.xml - StatusRequest file.
- * status-request-success.xml - StatusResult: success.
-
-1.7) soap12-locate-example-1 (SOAP 1.2 LocateRequest example 3.1.1
-from XKMS 2.0 spec
-
- * soap12-locate-example-1.xml - SOAP 1.2 LocateRequest file.
- * soap12-locate-example-1-no-match.xml
- - SOAP 1.2 LocateResult: "NoMatch"
- error (key not found).
- * soap12-locate-example-1-unsupported.xml
- - Processing SOAP 1.2 request with
- SOAP 1.1: "Unsupported SOAP Version":
-
-1.8) soap11-locate-example-1 (SOAP 1.1 LocateRequest example 3.1.2
-from XKMS 2.0 spec
-
- * soap11-locate-example-1.xml - SOAP 1.1 LocateRequest file.
- * soap11-locate-example-1-no-match.xml
- - SOAP 1.1 LocateResult: "NoMatch"
- error (key not found).
- * soap11-locate-example-1-unsupported.xml
- - Processing SOAP 1.1 request with
- SOAP 1.2: "Unsupported SOAP Version":
-
-1.9) bad-request-name (A request with invalid node name).
- bad-request-name.xml - Invalid request file.
- bad-request-name-not-supported.xml - Result: MessageNotSupported error.
-
-1.10) soap12-bad-request-name (SOAP 1.2 request with invalid node name).
- soap12-bad-request-name.xml - SOAP 1.2 Invalid request file.
- soap12-bad-request-name-not-supported.xml
- - SOAP 1.2 Result: MessageNotSupported error.
-
-1.11) soap11-bad-request-name (SOAP 1.1 request with invalid node name).
- soap11-bad-request-name.xml - SOAP 1.1 Invalid request file.
- soap11-bad-request-name-not-supported.xml
- - SOAP 1.1 Result: MessageNotSupported error.
-
-
-2) Keys and certificates (private keys are encrypted with password "secret")
- keys/create-keys.sh - shell script to create the keys and certificates chain
- keys/openssl.cnf - config file for create-keys.sh script
- keys/key1.pem - root certificate RSA 1024 key in PEM format
- keys/key1.der - key1.pem key in DER format
- keys/key1-pk8.der - key1.pem key in PKCS8 DER format
- keys/key1.p12 - key1.pem key and cert1.pem in PKCS12 format
- keys/cert1.pem - root certificate for key1.pem
- keys/cert1.der - cert1.pem certificate in DER format
- keys/key2.pem - second level CA RSA 1024 key
- keys/key2.der - key2.pem key in DER format
- keys/key2.p12 - key2.pem key and cert2.pem in PKCS12 format
- keys/key2-pk8.der - key2.pem key in PKCS8 DER format
- keys/cert2.pem - certificate for key2.pem signed with key1.pem (cert1.pem)
- keys/cert2.der - cert2.pem certificate in DER format
- keys/key3.pem - signature/encryption RSA 1024 key
- keys/key3.der - key3.pem key in DER format
- keys/key3.p12 - key3.pem key and cert3.pem in PKCS12 format
- keys/key3-pk8.der - key3.pem key in PKCS8 DER format
- keys/cert3.pem - certificate for key3.pem signed with key2.pem (cert2.pem)
- keys/cert3.der - cert3.pem certificate in DER format
-
-
\ No newline at end of file
diff --git a/tests/aleksey-xkms-01/soap11-bad-request-name-msg-invalid.xml b/tests/aleksey-xkms-01/soap11-bad-request-name-msg-invalid.xml
deleted file mode 100644
index b53a68c..0000000
--- a/tests/aleksey-xkms-01/soap11-bad-request-name-msg-invalid.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0"?>
-<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
-<Body>
-<Fault>
-<faultcode>Client</faultcode>
-<faultstring>InvalidRequest message invalid</faultstring>
-</Fault>
-</Body>
-</Envelope>
diff --git a/tests/aleksey-xkms-01/soap11-bad-request-name.xml b/tests/aleksey-xkms-01/soap11-bad-request-name.xml
deleted file mode 100644
index 1c41d8d..0000000
--- a/tests/aleksey-xkms-01/soap11-bad-request-name.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0"?>
-<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
- <env:Body>
- <xkms:InvalidRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
- xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
- xmlns:xkms="http://www.w3.org/2002/03/xkms#"
- Id="aleksey_xkms_01_bad_request_name"
- Service="http://www.example.com/xkms"
- Nonce="NhdGUxFjAUBgNVBAMTDUFsZWtzZXkasdfgU2Fu"
- ResponseLimit="5" >
- <xkms:RespondWith>KeyName</xkms:RespondWith>
- </xkms:InvalidRequest>
- </env:Body>
-</env:Envelope>
diff --git a/tests/aleksey-xkms-01/soap11-locate-example-1-no-match.xml b/tests/aleksey-xkms-01/soap11-locate-example-1-no-match.xml
deleted file mode 100644
index 77dfc5f..0000000
--- a/tests/aleksey-xkms-01/soap11-locate-example-1-no-match.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0"?>
-<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
-<Body>
-<LocateResult xmlns="http://www.w3.org/2002/03/xkms#" Id="VWctryrG7XgGsbTws4kvbVDTR_9lXg8u" Service="http://www.example.com/xkms" RequestId="I94d1048aa24259465d7271cb4433dbb4" ResultMajor="Sender" ResultMinor="NoMatch"/>
-</Body>
-</Envelope>
diff --git a/tests/aleksey-xkms-01/soap11-locate-example-1-unsupported.xml b/tests/aleksey-xkms-01/soap11-locate-example-1-unsupported.xml
deleted file mode 100644
index 9b0fceb..0000000
--- a/tests/aleksey-xkms-01/soap11-locate-example-1-unsupported.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<Envelope xmlns="http://www.w3.org/2002/06/soap-envelope">
-<Body>
-<Fault>
-<Code>
-<Value>VersionMismatch</Value>
-</Code>
-<Reason>
-<Text xml:lang="en">Unsupported SOAP version</Text>
-</Reason>
-</Fault>
-</Body>
-</Envelope>
diff --git a/tests/aleksey-xkms-01/soap11-locate-example-1.xml b/tests/aleksey-xkms-01/soap11-locate-example-1.xml
deleted file mode 100644
index 67213ff..0000000
--- a/tests/aleksey-xkms-01/soap11-locate-example-1.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
- <env:Body>
- <LocateRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
- xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
- xmlns="http://www.w3.org/2002/03/xkms#"
- Id="I94d1048aa24259465d7271cb4433dbb4"
- Service="http://www.example.com/xkms">
- <RespondWith>KeyName</RespondWith>
- <RespondWith>KeyValue</RespondWith>
- <RespondWith>X509Cert</RespondWith>
- <RespondWith>X509Chain</RespondWith>
- <RespondWith>PGPWeb</RespondWith>
- <RespondWith>PGP</RespondWith>
- <RespondWith>Multiple</RespondWith>
- <QueryKeyBinding>
- <KeyUsage>Encryption</KeyUsage>
- <UseKeyWith Application="urn:ietf:rfc:2440" Identifier="bob at bobcorp.test"/>
- <UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob at bobcorp.test"/>
- </QueryKeyBinding>
- </LocateRequest>
- </env:Body>
-</env:Envelope>
diff --git a/tests/aleksey-xkms-01/soap12-bad-request-name-msg-invalid.xml b/tests/aleksey-xkms-01/soap12-bad-request-name-msg-invalid.xml
deleted file mode 100644
index f9de89e..0000000
--- a/tests/aleksey-xkms-01/soap12-bad-request-name-msg-invalid.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0"?>
-<Envelope xmlns="http://www.w3.org/2002/06/soap-envelope">
-<Body>
-<Fault xmlns:xkms="http://www.w3.org/2002/03/xkms#">
-<Code>xkms:MessageNotSupported</Code>
-<Reason>
-<Text xml:lang="en">InvalidRequest message invalid</Text>
-</Reason>
-</Fault>
-</Body>
-</Envelope>
diff --git a/tests/aleksey-xkms-01/soap12-bad-request-name.xml b/tests/aleksey-xkms-01/soap12-bad-request-name.xml
deleted file mode 100644
index 76a05cc..0000000
--- a/tests/aleksey-xkms-01/soap12-bad-request-name.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0"?>
-<env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope">
- <env:Body>
- <xkms:InvalidRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
- xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
- xmlns:xkms="http://www.w3.org/2002/03/xkms#"
- Id="aleksey_xkms_01_bad_request_name"
- Service="http://www.example.com/xkms"
- Nonce="NhdGUxFjAUBgNVBAMTDUFsZWtzZXkasdfgU2Fu"
- ResponseLimit="5" >
- <xkms:RespondWith>KeyName</xkms:RespondWith>
- </xkms:InvalidRequest>
- </env:Body>
-</env:Envelope>
diff --git a/tests/aleksey-xkms-01/soap12-locate-example-1-no-match.xml b/tests/aleksey-xkms-01/soap12-locate-example-1-no-match.xml
deleted file mode 100644
index f4a47df..0000000
--- a/tests/aleksey-xkms-01/soap12-locate-example-1-no-match.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0"?>
-<Envelope xmlns="http://www.w3.org/2002/06/soap-envelope">
-<Body>
-<LocateResult xmlns="http://www.w3.org/2002/03/xkms#" Id="AlDwXZQSF4xaOGzRVMb6cympaV8fKmqU" Service="http://www.example.com/xkms" RequestId="I94d1048aa24259465d7271cb4433dbb4" ResultMajor="Sender" ResultMinor="NoMatch"/>
-</Body>
-</Envelope>
diff --git a/tests/aleksey-xkms-01/soap12-locate-example-1-unsupported.xml b/tests/aleksey-xkms-01/soap12-locate-example-1-unsupported.xml
deleted file mode 100644
index 02b7e2a..0000000
--- a/tests/aleksey-xkms-01/soap12-locate-example-1-unsupported.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0"?>
-<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
-<Body>
-<Fault>
-<faultcode>VersionMismatch</faultcode>
-<faultstring>Unsupported SOAP version</faultstring>
-</Fault>
-</Body>
-</Envelope>
diff --git a/tests/aleksey-xkms-01/soap12-locate-example-1.xml b/tests/aleksey-xkms-01/soap12-locate-example-1.xml
deleted file mode 100644
index f5f0cc9..0000000
--- a/tests/aleksey-xkms-01/soap12-locate-example-1.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope">
- <env:Body>
- <LocateRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
- xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
- xmlns="http://www.w3.org/2002/03/xkms#"
- Id="I94d1048aa24259465d7271cb4433dbb4"
- Service="http://www.example.com/xkms">
- <RespondWith>KeyName</RespondWith>
- <RespondWith>KeyValue</RespondWith>
- <RespondWith>X509Cert</RespondWith>
- <RespondWith>X509Chain</RespondWith>
- <RespondWith>PGPWeb</RespondWith>
- <RespondWith>PGP</RespondWith>
- <RespondWith>Multiple</RespondWith>
- <QueryKeyBinding>
- <KeyUsage>Encryption</KeyUsage>
- <UseKeyWith Application="urn:ietf:rfc:2440" Identifier="bob at bobcorp.test"/>
- <UseKeyWith Application="urn:ietf:rfc:2633" Identifier="bob at bobcorp.test"/>
- </QueryKeyBinding>
- </LocateRequest>
- </env:Body>
-</env:Envelope>
diff --git a/tests/aleksey-xkms-01/status-request-success.xml b/tests/aleksey-xkms-01/status-request-success.xml
deleted file mode 100644
index 14f5243..0000000
--- a/tests/aleksey-xkms-01/status-request-success.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0"?>
-<StatusResult xmlns="http://www.w3.org/2002/03/xkms#" Id="qWvHe4Wa3MO8EpJoPhhXTY9jf_PGByYC" Service="http://www.example.com/xkms" RequestId="aleksey_xkms_01_status_request" ResultMajor="Success"/>
diff --git a/tests/aleksey-xkms-01/status-request.xml b/tests/aleksey-xkms-01/status-request.xml
deleted file mode 100644
index bb54cf6..0000000
--- a/tests/aleksey-xkms-01/status-request.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xkms:StatusRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
- xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
- xmlns:xkms="http://www.w3.org/2002/03/xkms#"
- Id="aleksey_xkms_01_status_request"
- Service="http://www.example.com/xkms" >
-</xkms:StatusRequest>
diff --git a/tests/aleksey-xkms-01/validate-example-1-no-match.xml b/tests/aleksey-xkms-01/validate-example-1-no-match.xml
deleted file mode 100644
index 482ddff..0000000
--- a/tests/aleksey-xkms-01/validate-example-1-no-match.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0"?>
-<ValidateResult xmlns="http://www.w3.org/2002/03/xkms#" Id="U8u3JSp5D5o2rbKEd8Y8yG1UBBC5_szY" Service="http://www.example.com/xkms" RequestId="Ic4d10f0affff49382b021a820613fa71" ResultMajor="Sender" ResultMinor="NoMatch"/>
diff --git a/tests/aleksey-xkms-01/validate-example-1.xml b/tests/aleksey-xkms-01/validate-example-1.xml
deleted file mode 100644
index a184cb9..0000000
--- a/tests/aleksey-xkms-01/validate-example-1.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<ValidateRequest xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
- xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
- xmlns="http://www.w3.org/2002/03/xkms#"
- Id="Ic4d10f0affff49382b021a820613fa71"
- Service="http://www.example.com/xkms">
- <RespondWith>KeyName</RespondWith>
- <QueryKeyBinding>
- <ds:KeyInfo>
- <ds:X509Data>
- <ds:X509Certificate>
-MIIEDTCCA7egAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBvzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgTCkNhbGlmb3JuaWExHTAbBgNVBAoTFFhNTCBTZWN1cml0eSBMaWJy
-YXJ5MTEwLwYDVQQLEyhhbGVrc2V5LXhrbXMtMDEgc2Vjb25kIGxldmVsIGNlcnRp
-ZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYzEh
-MB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4XDTA0MDIwMzE5MTEy
-OFoXDTE0MDEzMTE5MTEyOFowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxp
-Zm9ybmlhMR0wGwYDVQQKExRYTUwgU2VjdXJpdHkgTGlicmFyeTE9MDsGA1UECxM0
-YWxla3NleS14a21zLTAxIHNpZ25hdHVyZSBhbmQgZW5jcnlwdGlvbiBjZXJ0aWZp
-Y2F0ZTEmMCQGA1UEAxMdaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMxITAf
-BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUA
-A0sAMEgCQQDS208fS1M+MzOOewMytAU7ecT5ErtLTrK2mZr7QMqAGs696qHv9WOW
-i115eDaLW50XRVNr16eiquDtXl53EfBvAgMBAAGjggGOMIIBijAJBgNVHRMEAjAA
-MBEGCWCGSAGG+EIBAQQEAwIEsDALBgNVHQ8EBAMCBeAwQwYJYIZIAYb4QgENBDYW
-NGFsZWtzZXkteGttcy0wMSBzaWduYXR1cmUgYW5kIGVuY3J5cHRpb24gY2VydGlm
-aWNhdGUwHQYDVR0OBBYEFJw9QoFYPiU7VQheRsUV7LrY84+TMIH4BgNVHSMEgfAw
-ge2AFBNkETCzKUgXLJp9G7K9hD6tjeDDoYHRpIHOMIHLMQswCQYDVQQGEwJVUzET
-MBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJU3Vubnl2YWxlMR0wGwYDVQQK
-ExRYTUwgU2VjdXJpdHkgTGlicmFyeTEpMCcGA1UECxMgYWxla3NleS14a21zLTAx
-IHJvb3QgY2VydGlmaWNhdGUxJjAkBgNVBAMTHWh0dHA6Ly93d3cuYWxla3NleS5j
-b20veG1sc2VjMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CAQEw
-DQYJKoZIhvcNAQEFBQADQQAsb2Wh4hp+axYEGrsTMqd9j8pKuxJqa89ob4nl/FwN
-5jelwnWbB+3HG7f9GusYg6nNzga1EFD3YTfW23YWIKd9
- </ds:X509Certificate>
- <ds:X509Certificate>
-MIIEJTCCA46gAwIBAgIBATANBgkqhkiG9w0BAQUFADCByzELMAkGA1UEBhMCVVMx
-EzARBgNVBAgTCkNhbGlmb3JuaWExEjAQBgNVBAcTCVN1bm55dmFsZTEdMBsGA1UE
-ChMUWE1MIFNlY3VyaXR5IExpYnJhcnkxKTAnBgNVBAsTIGFsZWtzZXkteGttcy0w
-MSByb290IGNlcnRpZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXku
-Y29tL3htbHNlYzEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMB4X
-DTA0MDIwMzE5MTEyN1oXDTE0MDEzMTE5MTEyN1owgb8xCzAJBgNVBAYTAlVTMRMw
-EQYDVQQIEwpDYWxpZm9ybmlhMR0wGwYDVQQKExRYTUwgU2VjdXJpdHkgTGlicmFy
-eTExMC8GA1UECxMoYWxla3NleS14a21zLTAxIHNlY29uZCBsZXZlbCBjZXJ0aWZp
-Y2F0ZTEmMCQGA1UEAxMdaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMxITAf
-BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUA
-A0sAMEgCQQDd+36RCkHXnn6pxsfTKhTo/Zocgr4pgtOzS+aT5eji+A0GzPaFHXpY
-0K+nDphWUYBzjrjOkxMBzlvv+BOvc9SzAgMBAAGjggFlMIIBYTAMBgNVHRMEBTAD
-AQH/MB0GA1UdDgQWBBQTZBEwsylIFyyafRuyvYQ+rY3gwzCB+AYDVR0jBIHwMIHt
-gBQL/BC2Efo+FlwlBLXi428w6cRhNqGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzAR
-BgNVBAgTCkNhbGlmb3JuaWExEjAQBgNVBAcTCVN1bm55dmFsZTEdMBsGA1UEChMU
-WE1MIFNlY3VyaXR5IExpYnJhcnkxKTAnBgNVBAsTIGFsZWtzZXkteGttcy0wMSBy
-b290IGNlcnRpZmljYXRlMSYwJAYDVQQDEx1odHRwOi8vd3d3LmFsZWtzZXkuY29t
-L3htbHNlYzEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggEAMDcG
-CWCGSAGG+EIBDQQqFihhbGVrc2V5LXhrbXMtMDEgc2Vjb25kIGxldmVsIGNlcnRp
-ZmljYXRlMA0GCSqGSIb3DQEBBQUAA4GBAGMs5oZgbjfJBTeWZ7VZHAOyT+sS0tzK
-EPONgoId9RZLlBmxosG2zZ+Tu5xEqxh4HlkUzHEnenB7K/fmGTnQDrHHQH3Q/afI
-zMot8vXO5V3GX7vdYwU6tCEWUG+2JoaJ2riDcrkVwdEpKLo6GH3bGsqkreeH05ll
-oL+n2iYuEzV+
- </ds:X509Certificate>
- </ds:X509Data>
- </ds:KeyInfo>
- <KeyUsage>Signature</KeyUsage>
- <UseKeyWith Application="urn:ietf:rfc:2633" Identifier="alice at alicecorp.test"/>
- </QueryKeyBinding>
-</ValidateRequest>
diff --git a/tests/aleksey-xmldsig-01/enveloping-gost2012-256.xml b/tests/aleksey-xmldsig-01/enveloping-gost2012-256.xml
new file mode 100644
index 0000000..765ea39
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-gost2012-256.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><outer><inner Id="obj1">Here is some data to sign.<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"/><Reference Id="refId123456" URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><Transform Algorithm="h [...]
\ No newline at end of file
diff --git a/tests/aleksey-xmldsig-01/enveloping-gots2012-512.xml b/tests/aleksey-xmldsig-01/enveloping-gots2012-512.xml
new file mode 100644
index 0000000..ff3ba50
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-gots2012-512.xml
@@ -0,0 +1 @@
+<outer><inner Id="obj1">Here is some data to sign.<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512"/><Reference Id="refId123456" URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n- [...]
\ No newline at end of file
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha1-ecdsa-sha1.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha1-ecdsa-sha1.tmpl
new file mode 100644
index 0000000..485854b
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha1-ecdsa-sha1.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <SignedInfo>
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
+ <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha1"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data/>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
\ No newline at end of file
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha1-ecdsa-sha1.xml b/tests/aleksey-xmldsig-01/enveloping-sha1-ecdsa-sha1.xml
new file mode 100644
index 0000000..358a7a1
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha1-ecdsa-sha1.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <SignedInfo>
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
+ <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha1"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <DigestValue>7/XTsHaBSOnJ/jXD5v0zL6VKYsk=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>kTx1j2j4J3hQuKBTGrPMj1ZQvYJgoyKtqcIPMoyB+623RD8dpp38v7DWmYipsqZA
+mHrqJBEmRI9o8h3Gwy/1Bg==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+<X509Certificate>MIID9zCCA2CgAwIBAgIJAK+ii7kzrdqsMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEQMA4G
+A1UECxMHUm9vdCBDQTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3
+DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMCAXDTE0MDUyMzE3NTA1OVoYDzIxMTQw
+NDI5MTc1MDU5WjCBrjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx
+PTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtz
+ZXkuY29tL3htbHNlYykxEDAOBgNVBAsTB1Jvb3QgQ0ExFjAUBgNVBAMTDUFsZWtz
+ZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtY4MCNj/qrOzVuex1BD/PuCYTDDOLLVj
+tpKXQteQPqy0kgMwuQgRwdNnICIHQbnFKL40XoyACJVWKM7b0LkvWJNeyVzXPqEE
+9ZPmNxWGUjVcr7powT7v8V7S2QflUnr8ZvR4XWwkZJ9EYKNhenijgJ5yYDrXCWdv
+C+fnjBjv2LcCAwEAAaOCARcwggETMB0GA1UdDgQWBBQGtaSsp6p1ROoVnE/fBYNP
+ah7+CzCB4wYDVR0jBIHbMIHYgBQGtaSsp6p1ROoVnE/fBYNPah7+C6GBtKSBsTCB
+rjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhN
+TCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNl
+YykxEDAOBgNVBAsTB1Jvb3QgQ0ExFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAf
+BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbYIJAK+ii7kzrdqsMAwGA1Ud
+EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEARpb86RP/ck55X+NunXeIX81i763b
+j7Z1VJwFbA/QfupzxnqJ2IP/lxC8YxJ3Bp2IJMI7rC9r0poa41ZxI5rGHip97Dpg
+sxPF9lkRUmKBBQjkICOq1w/4d2DRInBoqXttD+0WsqDfNDVK+7kSE07ytn3RzHCj
+j0gv0PdxmuCsR/E=</X509Certificate>
+<X509Certificate>MIIDzzCCAzigAwIBAgIJAK+ii7kzrdqtMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEQMA4G
+A1UECxMHUm9vdCBDQTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3
+DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMCAXDTE0MDUyMzE3NTIzOFoYDzIxMTQw
+NDI5MTc1MjM4WjCBnDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx
+PTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtz
+ZXkuY29tL3htbHNlYykxFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG
+9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQCyuvKJ2CuUPD33ghPt4Q8MilesHxVbbpyKfmabrYVpDGVDmOKKp337qJUZZ95K
+fwlXbR2j0zyKWJmvRxUx+PsTAgMBAAGjggFFMIIBQTAMBgNVHRMEBTADAQH/MCwG
+CWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNV
+HQ4EFgQU/uTsUyTwlZXHELXhRLVdOWVa434wgeMGA1UdIwSB2zCB2IAUBrWkrKeq
+dUTqFZxP3wWDT2oe/guhgbSkgbEwga4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpD
+YWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGlicmFyeSAoaHR0cDov
+L3d3dy5hbGVrc2V5LmNvbS94bWxzZWMpMRAwDgYDVQQLEwdSb290IENBMRYwFAYD
+VQQDEw1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3Nl
+eS5jb22CCQCvoou5M63arDANBgkqhkiG9w0BAQUFAAOBgQBuTAW63AgWqqUDPGi8
+BiXbdKHhFP4J8qgkdv5WMa6SpSWVgNgOYXkK/BSg1aSmQtGv8/8UvBRPoJnO4y0N
+jWUFf1ubOgUNmedYNLq7YbTp8yTGWeogCyM2xdWELMP8BMgQL0sP+MDAFMKO3itY
+mEWnCEsP15HKSTms54RNj7oJ+A==</X509Certificate>
+<X509Certificate>MIIDfDCCAyagAwIBAgIJAK+ii7kzrdq0MA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEWMBQG
+A1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtz
+ZXkuY29tMCAXDTE2MDEyOTE3MjYxMloYDzIxMTYwMTA1MTcyNjEyWjCBojELMAkG
+A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1
+cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHDAa
+BgNVBAMTE0VDRFNBIHNlY3AyNTZrMSBLZXkxITAfBgkqhkiG9w0BCQEWEnhtbHNl
+Y0BhbGVrc2V5LmNvbTBWMBAGByqGSM49AgEGBSuBBAAKA0IABGfbnXrR7bjGBsK6
+LIo2LkMPz9OhqW6U4EUwhA+0wbXbLzRufuaaUuGHkhl9LDa5128d1209j25iWgyL
+QoxgMLOjggFFMIIBQTAMBgNVHRMEBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVu
+U1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUPJXHiW1HSqdwbucp
+ESi1JeIJHKAwgeMGA1UdIwSB2zCB2IAU/uTsUyTwlZXHELXhRLVdOWVa436hgbSk
+gbEwga4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQK
+EzRYTUwgU2VjdXJpdHkgTGlicmFyeSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94
+bWxzZWMpMRAwDgYDVQQLEwdSb290IENBMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQCvoou5M63arTAN
+BgkqhkiG9w0BAQUFAANBAFweA03Qo3e3BvU4MT3wnsn7VZukTI61ewyrGCQshOc5
+ng3TuNfNcAuwhwDnTkHEarbwvG3OmJIl+yDqgVtTD9M=</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha256-dsa2048-sha256.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha256-dsa2048-sha256.tmpl
new file mode 100644
index 0000000..f0597b7
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha256-dsa2048-sha256.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <SignedInfo>
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
+ <SignatureMethod Algorithm="http://www.w3.org/2009/xmldsig11#dsa-sha256"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data/>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha256-dsa2048-sha256.xml b/tests/aleksey-xmldsig-01/enveloping-sha256-dsa2048-sha256.xml
new file mode 100644
index 0000000..9423da2
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha256-dsa2048-sha256.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <SignedInfo>
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
+ <SignatureMethod Algorithm="http://www.w3.org/2009/xmldsig11#dsa-sha256"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <DigestValue>iDhYt78o294fA6pzQ7k44+eejrQMi+WX3l3UrUdtL1Q=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>WGF1z2lw2lwWQl4e9gNW6yZDZb2xyRBxfGUAt1ttirKSDGUvUgEYrgMrs170D9xU
+QqEiVsFVAQqBEBD82JL5Fg==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+<X509Certificate>MIID9zCCA2CgAwIBAgIJAK+ii7kzrdqsMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEQMA4G
+A1UECxMHUm9vdCBDQTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3
+DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMCAXDTE0MDUyMzE3NTA1OVoYDzIxMTQw
+NDI5MTc1MDU5WjCBrjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx
+PTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtz
+ZXkuY29tL3htbHNlYykxEDAOBgNVBAsTB1Jvb3QgQ0ExFjAUBgNVBAMTDUFsZWtz
+ZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtY4MCNj/qrOzVuex1BD/PuCYTDDOLLVj
+tpKXQteQPqy0kgMwuQgRwdNnICIHQbnFKL40XoyACJVWKM7b0LkvWJNeyVzXPqEE
+9ZPmNxWGUjVcr7powT7v8V7S2QflUnr8ZvR4XWwkZJ9EYKNhenijgJ5yYDrXCWdv
+C+fnjBjv2LcCAwEAAaOCARcwggETMB0GA1UdDgQWBBQGtaSsp6p1ROoVnE/fBYNP
+ah7+CzCB4wYDVR0jBIHbMIHYgBQGtaSsp6p1ROoVnE/fBYNPah7+C6GBtKSBsTCB
+rjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhN
+TCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNl
+YykxEDAOBgNVBAsTB1Jvb3QgQ0ExFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAf
+BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbYIJAK+ii7kzrdqsMAwGA1Ud
+EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEARpb86RP/ck55X+NunXeIX81i763b
+j7Z1VJwFbA/QfupzxnqJ2IP/lxC8YxJ3Bp2IJMI7rC9r0poa41ZxI5rGHip97Dpg
+sxPF9lkRUmKBBQjkICOq1w/4d2DRInBoqXttD+0WsqDfNDVK+7kSE07ytn3RzHCj
+j0gv0PdxmuCsR/E=</X509Certificate>
+<X509Certificate>MIIDzzCCAzigAwIBAgIJAK+ii7kzrdqtMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEQMA4G
+A1UECxMHUm9vdCBDQTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3
+DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMCAXDTE0MDUyMzE3NTIzOFoYDzIxMTQw
+NDI5MTc1MjM4WjCBnDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx
+PTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtz
+ZXkuY29tL3htbHNlYykxFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG
+9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQCyuvKJ2CuUPD33ghPt4Q8MilesHxVbbpyKfmabrYVpDGVDmOKKp337qJUZZ95K
+fwlXbR2j0zyKWJmvRxUx+PsTAgMBAAGjggFFMIIBQTAMBgNVHRMEBTADAQH/MCwG
+CWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNV
+HQ4EFgQU/uTsUyTwlZXHELXhRLVdOWVa434wgeMGA1UdIwSB2zCB2IAUBrWkrKeq
+dUTqFZxP3wWDT2oe/guhgbSkgbEwga4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpD
+YWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGlicmFyeSAoaHR0cDov
+L3d3dy5hbGVrc2V5LmNvbS94bWxzZWMpMRAwDgYDVQQLEwdSb290IENBMRYwFAYD
+VQQDEw1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3Nl
+eS5jb22CCQCvoou5M63arDANBgkqhkiG9w0BAQUFAAOBgQBuTAW63AgWqqUDPGi8
+BiXbdKHhFP4J8qgkdv5WMa6SpSWVgNgOYXkK/BSg1aSmQtGv8/8UvBRPoJnO4y0N
+jWUFf1ubOgUNmedYNLq7YbTp8yTGWeogCyM2xdWELMP8BMgQL0sP+MDAFMKO3itY
+mEWnCEsP15HKSTms54RNj7oJ+A==</X509Certificate>
+<X509Certificate>MIIGmTCCBkOgAwIBAgIJAK+ii7kzrdqyMA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEWMBQG
+A1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtz
+ZXkuY29tMCAXDTE1MDMwNTIyNTQwOVoYDzIxMTUwMjA5MjI1NDA5WjCBzDELMAkG
+A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1
+cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxLjAs
+BgNVBAsTJVRlc3QgVGhpcmQgTGV2ZWwgRFNBIDIwNDggQ2VydGlmaWNhdGUxFjAU
+BgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVr
+c2V5LmNvbTCCA0cwggI5BgcqhkjOOAQBMIICLAKCAQEA3h/6T60pCdSKYh+y66Rt
+6/R4jUoLXisrxTtU7acbcjeWZ0RcKtJM/zBBiOPSd+TfOxewOUzQFs6Xt2lWrreS
+3wLpWp9qcAW+xbVr/+OBJqShBnzEmrPc5l16shZWb7Lsz/ymvAgvZpUQkf8QkxSs
+29ts6mLwrff4+o/6Ta2w61/whJRaFxwRtftmmwOVF5AcvppeowRHBSvDEv210G9T
+1vXO8/5Q1q30hR/BgiB9wWJDcW95Ygw2WRqfe0drl+zJfbIFBouci2NOoTVGKw7s
+UsjruQMBzQ8J/1VEnV2oh9rLR19mYD35tyZlDzumE3lHuzza/F2QRlIWGR1xWcHJ
+rwIhAMDsLCKBC/+7J8cGViJbMEqu75keyH2YewaYykGXfLx9AoIBABJdcRq29Jsi
+zyar65NYt/o05QAiALmJMRRiv/DYX6zOUiXm2LXMee6XvaPt3b8OcM1QubBCdjKV
+982Swtc09rS/XrBeWOFJjdsAWxR+e9iKe4YshlJW1YCid595LVXZfA2wqnjrOuGz
++WA5OK+CO4VlabsZ7GrdXn5brFSe+LMxSJY34LcWxQZkNQyvek92zLRAngdTkYOa
+i1li0XHeZxenzv62VnbNeXrMFwdSkukivDCZOLaUgi7Ms07nojstNlbMEkgDT9U2
+rTdHxkxI9bmpSR5jla7pxuX35qgNvXz4jNgB6PIg5eznJlmzdmG5VePw+PIU2fAp
+XpHj1JVxE7IDggEGAAKCAQEAqh1v9VPCu2tkvTsFFN5PWL8XNct0oclgPI9kYx8F
+LDKEZ1MW5am2UfFeFFzjjt4+Pqzhz4BvVJqG75vNmizfnWTW3bFI8qJpuot1kRgD
+2elpK2W9YxfXkEgps7t0L7p5AIJ/lhQ+JuKuFOS1zMlLHZ8CL+DSCv6q0liwjSDj
+THNICMUqBmoTxFm2j0+sO3SPB4dTZNyzDanFxammaJ8ah0AuNp15nkPYXG5/48Zq
+qv+QM6YAxaZgADlyJfNFsNln22m/TfDT53iqMPxVNhJdUiWy5hVTKN3GpSoNkctq
+7uCcO1yTIH8QtyluWxrc/NYbOMy+bub/zIvAHz57RDdXMqOCAUUwggFBMAwGA1Ud
+EwQFMAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRp
+ZmljYXRlMB0GA1UdDgQWBBTS4K/9+Uc2bNwMc2bazv8es4GKmjCB4wYDVR0jBIHb
+MIHYgBT+5OxTJPCVlccQteFEtV05ZVrjfqGBtKSBsTCBrjELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJy
+YXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxEDAOBgNVBAsTB1Jv
+b3QgQ0ExFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnht
+bHNlY0BhbGVrc2V5LmNvbYIJAK+ii7kzrdqtMA0GCSqGSIb3DQEBBQUAA0EAGN7+
+p/0NF8rNfgawPc1pEcRnYxDNTtNtY0ybAh052l/jLYThz/0f7klUu4VXTKYY8wnE
++IzoJB6Zzegun8uEqw==</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha256-dsa3072-sha256.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha256-dsa3072-sha256.tmpl
new file mode 100644
index 0000000..f0597b7
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha256-dsa3072-sha256.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <SignedInfo>
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
+ <SignatureMethod Algorithm="http://www.w3.org/2009/xmldsig11#dsa-sha256"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data/>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha256-dsa3072-sha256.xml b/tests/aleksey-xmldsig-01/enveloping-sha256-dsa3072-sha256.xml
new file mode 100644
index 0000000..dc473dc
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha256-dsa3072-sha256.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <SignedInfo>
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
+ <SignatureMethod Algorithm="http://www.w3.org/2009/xmldsig11#dsa-sha256"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <DigestValue>iDhYt78o294fA6pzQ7k44+eejrQMi+WX3l3UrUdtL1Q=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>XJQVvHJwOVNPctX/VY4B6diavxIWSoZhQAluwforH7Jkb5BCChueuUQllNep616M
+Fs3A2JcCrr2MAwQ8Bq9Jdw==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+<X509Certificate>MIID9zCCA2CgAwIBAgIJAK+ii7kzrdqsMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEQMA4G
+A1UECxMHUm9vdCBDQTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3
+DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMCAXDTE0MDUyMzE3NTA1OVoYDzIxMTQw
+NDI5MTc1MDU5WjCBrjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx
+PTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtz
+ZXkuY29tL3htbHNlYykxEDAOBgNVBAsTB1Jvb3QgQ0ExFjAUBgNVBAMTDUFsZWtz
+ZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtY4MCNj/qrOzVuex1BD/PuCYTDDOLLVj
+tpKXQteQPqy0kgMwuQgRwdNnICIHQbnFKL40XoyACJVWKM7b0LkvWJNeyVzXPqEE
+9ZPmNxWGUjVcr7powT7v8V7S2QflUnr8ZvR4XWwkZJ9EYKNhenijgJ5yYDrXCWdv
+C+fnjBjv2LcCAwEAAaOCARcwggETMB0GA1UdDgQWBBQGtaSsp6p1ROoVnE/fBYNP
+ah7+CzCB4wYDVR0jBIHbMIHYgBQGtaSsp6p1ROoVnE/fBYNPah7+C6GBtKSBsTCB
+rjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhN
+TCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNl
+YykxEDAOBgNVBAsTB1Jvb3QgQ0ExFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAf
+BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbYIJAK+ii7kzrdqsMAwGA1Ud
+EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEARpb86RP/ck55X+NunXeIX81i763b
+j7Z1VJwFbA/QfupzxnqJ2IP/lxC8YxJ3Bp2IJMI7rC9r0poa41ZxI5rGHip97Dpg
+sxPF9lkRUmKBBQjkICOq1w/4d2DRInBoqXttD+0WsqDfNDVK+7kSE07ytn3RzHCj
+j0gv0PdxmuCsR/E=</X509Certificate>
+<X509Certificate>MIIDzzCCAzigAwIBAgIJAK+ii7kzrdqtMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEQMA4G
+A1UECxMHUm9vdCBDQTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3
+DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMCAXDTE0MDUyMzE3NTIzOFoYDzIxMTQw
+NDI5MTc1MjM4WjCBnDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx
+PTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtz
+ZXkuY29tL3htbHNlYykxFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG
+9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQCyuvKJ2CuUPD33ghPt4Q8MilesHxVbbpyKfmabrYVpDGVDmOKKp337qJUZZ95K
+fwlXbR2j0zyKWJmvRxUx+PsTAgMBAAGjggFFMIIBQTAMBgNVHRMEBTADAQH/MCwG
+CWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNV
+HQ4EFgQU/uTsUyTwlZXHELXhRLVdOWVa434wgeMGA1UdIwSB2zCB2IAUBrWkrKeq
+dUTqFZxP3wWDT2oe/guhgbSkgbEwga4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpD
+YWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGlicmFyeSAoaHR0cDov
+L3d3dy5hbGVrc2V5LmNvbS94bWxzZWMpMRAwDgYDVQQLEwdSb290IENBMRYwFAYD
+VQQDEw1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3Nl
+eS5jb22CCQCvoou5M63arDANBgkqhkiG9w0BAQUFAAOBgQBuTAW63AgWqqUDPGi8
+BiXbdKHhFP4J8qgkdv5WMa6SpSWVgNgOYXkK/BSg1aSmQtGv8/8UvBRPoJnO4y0N
+jWUFf1ubOgUNmedYNLq7YbTp8yTGWeogCyM2xdWELMP8BMgQL0sP+MDAFMKO3itY
+mEWnCEsP15HKSTms54RNj7oJ+A==</X509Certificate>
+<X509Certificate>MIIIGjCCB8SgAwIBAgIJAK+ii7kzrdqzMA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEWMBQG
+A1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtz
+ZXkuY29tMCAXDTE1MDMwNTIyNTQ1M1oYDzIxMTUwMjA5MjI1NDUzWjCBzDELMAkG
+A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1
+cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxLjAs
+BgNVBAsTJVRlc3QgVGhpcmQgTGV2ZWwgRFNBIDMwNzIgQ2VydGlmaWNhdGUxFjAU
+BgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVr
+c2V5LmNvbTCCBMgwggM6BgcqhkjOOAQBMIIDLQKCAYEA44gyKnZNNfMz0+FQK/Op
+YkrSm1/aWlzM3B1MWFsnFMNB0r+5Fby/EYerAf+k/PNCR+j719VJiU/N+E2YvYhi
+6AHKpKLb57IWL1taFHeYbryf8DgMVV6zpaJBj/6SZD1iiWLyf8cygN0t0n9c9N8Y
+Z8a4Ge9J0X1K94jhtsteMNIfFhv5cnkagwdar5GsVF146kYBgufcAvQLU9xxE+nt
+qGQebYF2OHpBCzWbX3k7Acx6w/VqwJjlK4fRUlSOgXZreMlu2s96WSGo2LxZUYEj
+72kVZvnVanwgmuHouE5bhirL9tKQ7ZdvYKBF4Ki0UaZaLG7bPgKnFB9bkjDZA+5p
++ohxnFph02gS/4dNB9qwF5LYcME81rP2deoInVpD+Am1940ynpBIOOxvUVHkzL9P
+De9WT9RYo2qitW9Ze0CYkzL6JlcaCLQL/FuJoV4+xZRDnVZHNBIoCXQnSARuznZF
+3BXPFGt6+vXOSh0HWGFdYIpNCQAgFvQxt+MeTMjojT4PAiEAwoh7eB78mIJOxLEU
+HGA1vpvIPYF3Muqk0PEv8Ti4Wd8CggGBAIt6oRx2SXjlMwDGCnKFXwvcGB/FkDri
+0NAH+kxQZycXVGVZ7/pU7DFmtkifKul0DB4H2S61uOphRPZBbWgzQ3QhD0DVuc7O
+SyRJoDEEcgCQj2epOAt5AZaXOL7PxZQ6w+l/Wm45EVTzxRl/tLoVFwCE6FWIXmO3
+mIitgDmBBWwKH5Iukr6S2ePHO/P3/WsHQdvgHPDiXGTEWv+WAdZC0LP28JkEBuyw
+8ccunEbtUDongjYpfPZdN7Iy/Tj2t9ZS/hIgOAuzlfByEz49aS48Ushz8ss5jyh6
+YPevI4YqDYeh8YUVv6hsf7e22xWx1Ptg1TttcAo1P64nBujQBP3bH0ZYNuQLdzos
+n8HmQSmktgIRrptFYzJ6kjMurxkM9wGHlKv1v3zMzAG8gwAp6Q56cVXsKyWlfEF+
+MMGK6jTXJo/ZQ/msFhGSQ/uZRjxwesa9Xj3Q3hZ+tWcQWt06yav2/xXUPko5zgRu
+omRKNVFIfZPahBIiET0ZyVoj4Khj9LvJEwOCAYYAAoIBgQDJio6mTgj0/mg3XTDo
+zuL6v77a3clglfU6GN5mxn9rh9JdRIe7jzQJnvU8q0TnqFnmcTr4rmdjS5V3+1XH
+IGO/NUAuL3w1kPW1KmTc/HuYerW+N5pm7ZyX71bBWkfx0TQWjOXeDnoSZQ1NBuj8
+GkHbcG0fICJQHd2f1q9AJ8dFME/bCk1Mi/Y/jJ9Kr0AEKPQwnt0SZhdhqOp6Er0T
+ItbsHt9bruc45GmuyZGgkn+wEI7G3x7BL484UaplNo0sF43tWmB35ZEffxWOYFlL
+LkoXTlZnSnXW7zx8oXTOIbn9K33A9NgXuDpMg7IouUh0FYV2dVjvNqwk8dZrON+p
+AtV7CQvN6pzePg/oBJrUlV/NO2j0BuZvl9ARv2JYkrZufFtmMNBbof6j+WbFnIqb
+27XCLl1a70Q1WKCvE8qD3LiZHx/7lsrcaTV8KZF8d5kzgXRISFs5NkYFxru/LjBP
+777FLH23QTW2getPS9yExUw9kteFaF4yOUB5KgeEleZlT+SjggFFMIIBQTAMBgNV
+HRMEBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0
+aWZpY2F0ZTAdBgNVHQ4EFgQUlIEFcjRTD1H8Y7jeWfisarvxRnIwgeMGA1UdIwSB
+2zCB2IAU/uTsUyTwlZXHELXhRLVdOWVa436hgbSkgbEwga4xCzAJBgNVBAYTAlVT
+MRMwEQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGli
+cmFyeSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMpMRAwDgYDVQQLEwdS
+b290IENBMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4
+bWxzZWNAYWxla3NleS5jb22CCQCvoou5M63arTANBgkqhkiG9w0BAQUFAANBAA93
+upXGmGSg0hyBphu86KkwUVnaeh4GTtx2v1C1qBPH4AAh/oKpzIYpTn3t7uAsiTk7
+im7eapblsXBRezkRoK4=</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha256-ecdsa-sha256.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha256-ecdsa-sha256.tmpl
new file mode 100644
index 0000000..56a4b88
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha256-ecdsa-sha256.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <SignedInfo>
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
+ <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data/>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
\ No newline at end of file
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha256-ecdsa-sha256.xml b/tests/aleksey-xmldsig-01/enveloping-sha256-ecdsa-sha256.xml
new file mode 100644
index 0000000..393f095
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha256-ecdsa-sha256.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <SignedInfo>
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
+ <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <DigestValue>iDhYt78o294fA6pzQ7k44+eejrQMi+WX3l3UrUdtL1Q=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>r58DPJHB2Fi7Ssc/5W5/ZXys8uWiz3aF+XtDo6ZRF78rgk2TQDTse6yvTUC9kY3L
+UHcDZl9sGTJXyrw3DirasQ==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+<X509Certificate>MIID9zCCA2CgAwIBAgIJAK+ii7kzrdqsMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEQMA4G
+A1UECxMHUm9vdCBDQTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3
+DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMCAXDTE0MDUyMzE3NTA1OVoYDzIxMTQw
+NDI5MTc1MDU5WjCBrjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx
+PTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtz
+ZXkuY29tL3htbHNlYykxEDAOBgNVBAsTB1Jvb3QgQ0ExFjAUBgNVBAMTDUFsZWtz
+ZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtY4MCNj/qrOzVuex1BD/PuCYTDDOLLVj
+tpKXQteQPqy0kgMwuQgRwdNnICIHQbnFKL40XoyACJVWKM7b0LkvWJNeyVzXPqEE
+9ZPmNxWGUjVcr7powT7v8V7S2QflUnr8ZvR4XWwkZJ9EYKNhenijgJ5yYDrXCWdv
+C+fnjBjv2LcCAwEAAaOCARcwggETMB0GA1UdDgQWBBQGtaSsp6p1ROoVnE/fBYNP
+ah7+CzCB4wYDVR0jBIHbMIHYgBQGtaSsp6p1ROoVnE/fBYNPah7+C6GBtKSBsTCB
+rjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhN
+TCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNl
+YykxEDAOBgNVBAsTB1Jvb3QgQ0ExFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAf
+BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbYIJAK+ii7kzrdqsMAwGA1Ud
+EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEARpb86RP/ck55X+NunXeIX81i763b
+j7Z1VJwFbA/QfupzxnqJ2IP/lxC8YxJ3Bp2IJMI7rC9r0poa41ZxI5rGHip97Dpg
+sxPF9lkRUmKBBQjkICOq1w/4d2DRInBoqXttD+0WsqDfNDVK+7kSE07ytn3RzHCj
+j0gv0PdxmuCsR/E=</X509Certificate>
+<X509Certificate>MIIDzzCCAzigAwIBAgIJAK+ii7kzrdqtMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEQMA4G
+A1UECxMHUm9vdCBDQTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3
+DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMCAXDTE0MDUyMzE3NTIzOFoYDzIxMTQw
+NDI5MTc1MjM4WjCBnDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx
+PTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtz
+ZXkuY29tL3htbHNlYykxFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG
+9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQCyuvKJ2CuUPD33ghPt4Q8MilesHxVbbpyKfmabrYVpDGVDmOKKp337qJUZZ95K
+fwlXbR2j0zyKWJmvRxUx+PsTAgMBAAGjggFFMIIBQTAMBgNVHRMEBTADAQH/MCwG
+CWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNV
+HQ4EFgQU/uTsUyTwlZXHELXhRLVdOWVa434wgeMGA1UdIwSB2zCB2IAUBrWkrKeq
+dUTqFZxP3wWDT2oe/guhgbSkgbEwga4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpD
+YWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGlicmFyeSAoaHR0cDov
+L3d3dy5hbGVrc2V5LmNvbS94bWxzZWMpMRAwDgYDVQQLEwdSb290IENBMRYwFAYD
+VQQDEw1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3Nl
+eS5jb22CCQCvoou5M63arDANBgkqhkiG9w0BAQUFAAOBgQBuTAW63AgWqqUDPGi8
+BiXbdKHhFP4J8qgkdv5WMa6SpSWVgNgOYXkK/BSg1aSmQtGv8/8UvBRPoJnO4y0N
+jWUFf1ubOgUNmedYNLq7YbTp8yTGWeogCyM2xdWELMP8BMgQL0sP+MDAFMKO3itY
+mEWnCEsP15HKSTms54RNj7oJ+A==</X509Certificate>
+<X509Certificate>MIIDfDCCAyagAwIBAgIJAK+ii7kzrdq0MA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEWMBQG
+A1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtz
+ZXkuY29tMCAXDTE2MDEyOTE3MjYxMloYDzIxMTYwMTA1MTcyNjEyWjCBojELMAkG
+A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1
+cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHDAa
+BgNVBAMTE0VDRFNBIHNlY3AyNTZrMSBLZXkxITAfBgkqhkiG9w0BCQEWEnhtbHNl
+Y0BhbGVrc2V5LmNvbTBWMBAGByqGSM49AgEGBSuBBAAKA0IABGfbnXrR7bjGBsK6
+LIo2LkMPz9OhqW6U4EUwhA+0wbXbLzRufuaaUuGHkhl9LDa5128d1209j25iWgyL
+QoxgMLOjggFFMIIBQTAMBgNVHRMEBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVu
+U1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUPJXHiW1HSqdwbucp
+ESi1JeIJHKAwgeMGA1UdIwSB2zCB2IAU/uTsUyTwlZXHELXhRLVdOWVa436hgbSk
+gbEwga4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQK
+EzRYTUwgU2VjdXJpdHkgTGlicmFyeSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94
+bWxzZWMpMRAwDgYDVQQLEwdSb290IENBMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQCvoou5M63arTAN
+BgkqhkiG9w0BAQUFAANBAFweA03Qo3e3BvU4MT3wnsn7VZukTI61ewyrGCQshOc5
+ng3TuNfNcAuwhwDnTkHEarbwvG3OmJIl+yDqgVtTD9M=</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256-relationship.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256-relationship.tmpl
new file mode 100644
index 0000000..e56bc37
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256-relationship.tmpl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <SignedInfo>
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
+ <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
+ <Reference URI="relationship/xml-base-input.xml">
+ <Transforms>
+ <Transform Algorithm="http://schemas.openxmlformats.org/package/2006/RelationshipTransform">
+ <mdssi:RelationshipReference xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" SourceId="rId1"/>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data/>
+ </KeyInfo>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256-relationship.xml b/tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256-relationship.xml
new file mode 100644
index 0000000..a55b4c4
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha256-rsa-sha256-relationship.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <SignedInfo>
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
+ <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
+ <Reference URI="relationship/xml-base-input.xml">
+ <Transforms>
+ <Transform Algorithm="http://schemas.openxmlformats.org/package/2006/RelationshipTransform">
+ <mdssi:RelationshipReference xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" SourceId="rId1"/>
+ </Transform>
+ <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
+ </Transforms>
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+ <DigestValue>Mq3mDDWudLiaQFa1psBgLG+/en7p7r8re0MtlxnuiUI=</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>pNHMrrqGvq6gOcYwmScUWjUvndGm1TLYvfZXdiCGhNfD6nXq65IwWH+nCS4n3AeZ
+Nwglj8/vtbcbAWXUsIvnZQ==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+<X509Certificate>MIIDpzCCA1GgAwIBAgIJAK+ii7kzrdqvMA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEWMBQG
+A1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtz
+ZXkuY29tMCAXDTE0MDUyMzE3NTUzNFoYDzIxMTQwNDI5MTc1NTM0WjCBxzELMAkG
+A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1
+cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxKTAn
+BgNVBAsTIFRlc3QgVGhpcmQgTGV2ZWwgUlNBIENlcnRpZmljYXRlMRYwFAYDVQQD
+Ew1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5j
+b20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEA09BtD3aeVt6DVDkk0dI7Vh7Ljqdn
+sYmW0tbDVxxK+nume+Z9Sb4znbUKkWl+vgQATdRUEyhT2P+Gqrd0UBzYfQIDAQAB
+o4IBRTCCAUEwDAYDVR0TBAUwAwEB/zAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBH
+ZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFNf0xkZ3zjcEI60pVPuwDqTM
+QygZMIHjBgNVHSMEgdswgdiAFP7k7FMk8JWVxxC14US1XTllWuN+oYG0pIGxMIGu
+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1M
+IFNlY3VyaXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2Vj
+KTEQMA4GA1UECxMHUm9vdCBDQTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8G
+CSqGSIb3DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tggkAr6KLuTOt2q0wDQYJKoZI
+hvcNAQEFBQADQQAOXBj0yICp1RmHXqnUlsppryLCW3pKBD1dkb4HWarO7RjA1yJJ
+fBjXssrERn05kpBcrRfzou4r3DCgQFPhjxga</X509Certificate>
+<X509Certificate>MIIDzzCCAzigAwIBAgIJAK+ii7kzrdqtMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEQMA4G
+A1UECxMHUm9vdCBDQTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3
+DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMCAXDTE0MDUyMzE3NTIzOFoYDzIxMTQw
+NDI5MTc1MjM4WjCBnDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx
+PTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtz
+ZXkuY29tL3htbHNlYykxFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG
+9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQCyuvKJ2CuUPD33ghPt4Q8MilesHxVbbpyKfmabrYVpDGVDmOKKp337qJUZZ95K
+fwlXbR2j0zyKWJmvRxUx+PsTAgMBAAGjggFFMIIBQTAMBgNVHRMEBTADAQH/MCwG
+CWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNV
+HQ4EFgQU/uTsUyTwlZXHELXhRLVdOWVa434wgeMGA1UdIwSB2zCB2IAUBrWkrKeq
+dUTqFZxP3wWDT2oe/guhgbSkgbEwga4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpD
+YWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGlicmFyeSAoaHR0cDov
+L3d3dy5hbGVrc2V5LmNvbS94bWxzZWMpMRAwDgYDVQQLEwdSb290IENBMRYwFAYD
+VQQDEw1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3Nl
+eS5jb22CCQCvoou5M63arDANBgkqhkiG9w0BAQUFAAOBgQBuTAW63AgWqqUDPGi8
+BiXbdKHhFP4J8qgkdv5WMa6SpSWVgNgOYXkK/BSg1aSmQtGv8/8UvBRPoJnO4y0N
+jWUFf1ubOgUNmedYNLq7YbTp8yTGWeogCyM2xdWELMP8BMgQL0sP+MDAFMKO3itY
+mEWnCEsP15HKSTms54RNj7oJ+A==</X509Certificate>
+<X509Certificate>MIID9zCCA2CgAwIBAgIJAK+ii7kzrdqsMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEQMA4G
+A1UECxMHUm9vdCBDQTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3
+DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMCAXDTE0MDUyMzE3NTA1OVoYDzIxMTQw
+NDI5MTc1MDU5WjCBrjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx
+PTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtz
+ZXkuY29tL3htbHNlYykxEDAOBgNVBAsTB1Jvb3QgQ0ExFjAUBgNVBAMTDUFsZWtz
+ZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtY4MCNj/qrOzVuex1BD/PuCYTDDOLLVj
+tpKXQteQPqy0kgMwuQgRwdNnICIHQbnFKL40XoyACJVWKM7b0LkvWJNeyVzXPqEE
+9ZPmNxWGUjVcr7powT7v8V7S2QflUnr8ZvR4XWwkZJ9EYKNhenijgJ5yYDrXCWdv
+C+fnjBjv2LcCAwEAAaOCARcwggETMB0GA1UdDgQWBBQGtaSsp6p1ROoVnE/fBYNP
+ah7+CzCB4wYDVR0jBIHbMIHYgBQGtaSsp6p1ROoVnE/fBYNPah7+C6GBtKSBsTCB
+rjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhN
+TCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNl
+YykxEDAOBgNVBAsTB1Jvb3QgQ0ExFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAf
+BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbYIJAK+ii7kzrdqsMAwGA1Ud
+EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEARpb86RP/ck55X+NunXeIX81i763b
+j7Z1VJwFbA/QfupzxnqJ2IP/lxC8YxJ3Bp2IJMI7rC9r0poa41ZxI5rGHip97Dpg
+sxPF9lkRUmKBBQjkICOq1w/4d2DRInBoqXttD+0WsqDfNDVK+7kSE07ytn3RzHCj
+j0gv0PdxmuCsR/E=</X509Certificate>
+</X509Data>
+ </KeyInfo>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha512-ecdsa-sha512.tmpl b/tests/aleksey-xmldsig-01/enveloping-sha512-ecdsa-sha512.tmpl
new file mode 100644
index 0000000..9269eb9
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha512-ecdsa-sha512.tmpl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <SignedInfo>
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
+ <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
+ <DigestValue></DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>
+ </SignatureValue>
+ <KeyInfo>
+ <X509Data/>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
\ No newline at end of file
diff --git a/tests/aleksey-xmldsig-01/enveloping-sha512-ecdsa-sha512.xml b/tests/aleksey-xmldsig-01/enveloping-sha512-ecdsa-sha512.xml
new file mode 100644
index 0000000..a33ea36
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/enveloping-sha512-ecdsa-sha512.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
+ <SignedInfo>
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
+ <SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512"/>
+ <Reference URI="#object">
+ <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
+ <DigestValue>E2Jo801uUCgAIa65niLU7jPSWPWUbsgT+okPgBcw/h72V7bmI0J2faJ+8EbwVwah
+XDnbRaf22WqerzX1vL0QzA==</DigestValue>
+ </Reference>
+ </SignedInfo>
+ <SignatureValue>p8iywKCFPKqaRq9tIpu2tXWx8BQ7L+1laypGaNucLtqzyUjSJy6XGoV9yNTnAEKq
+afu0z12Y/KTPRgfjLOqWXA==</SignatureValue>
+ <KeyInfo>
+ <X509Data>
+<X509Certificate>MIID9zCCA2CgAwIBAgIJAK+ii7kzrdqsMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEQMA4G
+A1UECxMHUm9vdCBDQTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3
+DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMCAXDTE0MDUyMzE3NTA1OVoYDzIxMTQw
+NDI5MTc1MDU5WjCBrjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx
+PTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtz
+ZXkuY29tL3htbHNlYykxEDAOBgNVBAsTB1Jvb3QgQ0ExFjAUBgNVBAMTDUFsZWtz
+ZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTCBnzAN
+BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAtY4MCNj/qrOzVuex1BD/PuCYTDDOLLVj
+tpKXQteQPqy0kgMwuQgRwdNnICIHQbnFKL40XoyACJVWKM7b0LkvWJNeyVzXPqEE
+9ZPmNxWGUjVcr7powT7v8V7S2QflUnr8ZvR4XWwkZJ9EYKNhenijgJ5yYDrXCWdv
+C+fnjBjv2LcCAwEAAaOCARcwggETMB0GA1UdDgQWBBQGtaSsp6p1ROoVnE/fBYNP
+ah7+CzCB4wYDVR0jBIHbMIHYgBQGtaSsp6p1ROoVnE/fBYNPah7+C6GBtKSBsTCB
+rjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhN
+TCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNl
+YykxEDAOBgNVBAsTB1Jvb3QgQ0ExFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAf
+BgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbYIJAK+ii7kzrdqsMAwGA1Ud
+EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEARpb86RP/ck55X+NunXeIX81i763b
+j7Z1VJwFbA/QfupzxnqJ2IP/lxC8YxJ3Bp2IJMI7rC9r0poa41ZxI5rGHip97Dpg
+sxPF9lkRUmKBBQjkICOq1w/4d2DRInBoqXttD+0WsqDfNDVK+7kSE07ytn3RzHCj
+j0gv0PdxmuCsR/E=</X509Certificate>
+<X509Certificate>MIIDzzCCAzigAwIBAgIJAK+ii7kzrdqtMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEQMA4G
+A1UECxMHUm9vdCBDQTEWMBQGA1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3
+DQEJARYSeG1sc2VjQGFsZWtzZXkuY29tMCAXDTE0MDUyMzE3NTIzOFoYDzIxMTQw
+NDI5MTc1MjM4WjCBnDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWEx
+PTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtz
+ZXkuY29tL3htbHNlYykxFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG
+9w0BCQEWEnhtbHNlY0BhbGVrc2V5LmNvbTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgC
+QQCyuvKJ2CuUPD33ghPt4Q8MilesHxVbbpyKfmabrYVpDGVDmOKKp337qJUZZ95K
+fwlXbR2j0zyKWJmvRxUx+PsTAgMBAAGjggFFMIIBQTAMBgNVHRMEBTADAQH/MCwG
+CWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNV
+HQ4EFgQU/uTsUyTwlZXHELXhRLVdOWVa434wgeMGA1UdIwSB2zCB2IAUBrWkrKeq
+dUTqFZxP3wWDT2oe/guhgbSkgbEwga4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpD
+YWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGlicmFyeSAoaHR0cDov
+L3d3dy5hbGVrc2V5LmNvbS94bWxzZWMpMRAwDgYDVQQLEwdSb290IENBMRYwFAYD
+VQQDEw1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3Nl
+eS5jb22CCQCvoou5M63arDANBgkqhkiG9w0BAQUFAAOBgQBuTAW63AgWqqUDPGi8
+BiXbdKHhFP4J8qgkdv5WMa6SpSWVgNgOYXkK/BSg1aSmQtGv8/8UvBRPoJnO4y0N
+jWUFf1ubOgUNmedYNLq7YbTp8yTGWeogCyM2xdWELMP8BMgQL0sP+MDAFMKO3itY
+mEWnCEsP15HKSTms54RNj7oJ+A==</X509Certificate>
+<X509Certificate>MIIDfDCCAyagAwIBAgIJAK+ii7kzrdq0MA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEWMBQG
+A1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtz
+ZXkuY29tMCAXDTE2MDEyOTE3MjYxMloYDzIxMTYwMTA1MTcyNjEyWjCBojELMAkG
+A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1
+cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHDAa
+BgNVBAMTE0VDRFNBIHNlY3AyNTZrMSBLZXkxITAfBgkqhkiG9w0BCQEWEnhtbHNl
+Y0BhbGVrc2V5LmNvbTBWMBAGByqGSM49AgEGBSuBBAAKA0IABGfbnXrR7bjGBsK6
+LIo2LkMPz9OhqW6U4EUwhA+0wbXbLzRufuaaUuGHkhl9LDa5128d1209j25iWgyL
+QoxgMLOjggFFMIIBQTAMBgNVHRMEBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVu
+U1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUPJXHiW1HSqdwbucp
+ESi1JeIJHKAwgeMGA1UdIwSB2zCB2IAU/uTsUyTwlZXHELXhRLVdOWVa436hgbSk
+gbEwga4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQK
+EzRYTUwgU2VjdXJpdHkgTGlicmFyeSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94
+bWxzZWMpMRAwDgYDVQQLEwdSb290IENBMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQCvoou5M63arTAN
+BgkqhkiG9w0BAQUFAANBAFweA03Qo3e3BvU4MT3wnsn7VZukTI61ewyrGCQshOc5
+ng3TuNfNcAuwhwDnTkHEarbwvG3OmJIl+yDqgVtTD9M=</X509Certificate>
+</X509Data>
+ </KeyInfo>
+ <Object Id="object">some text</Object>
+</Signature>
diff --git a/tests/aleksey-xmldsig-01/relationship/xml-base-input.xml b/tests/aleksey-xmldsig-01/relationship/xml-base-input.xml
new file mode 100644
index 0000000..2764305
--- /dev/null
+++ b/tests/aleksey-xmldsig-01/relationship/xml-base-input.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Tar [...]
diff --git a/tests/keys/README b/tests/keys/README
index 1451502..7a5a568 100644
--- a/tests/keys/README
+++ b/tests/keys/README
@@ -11,6 +11,8 @@ README
ca2cert.pem Second-level RSA cert for ca2key.pem
dsakey.pem DSA private key
dsacert.pem Third level DSA cert for dsakey.pem
+ dsa2048key.pem DSA private key (2048 bits)
+ dsa3072key.pem DSA private key (3072 bits)
rsakey.pem RSA private key
rsacert.pem Third level RSA cert for rsacert.pem
hmackey.bin HMAC key ('secret')
@@ -37,12 +39,24 @@ README
> openssl verify -CAfile cacert.pem ca2cert.pem
C. Generate and sign DSA key with second level CA
- > openssl dsaparam -out dsakey.pem -genkey 512
+ > openssl dsaparam -out dsakey.pem -genkey 1024
> openssl req -config ./openssl.cnf -new -key dsakey.pem -out dsareq.pem
> openssl ca -config ./openssl.cnf -cert ca2cert.pem -keyfile ca2key.pem \
-out dsacert.pem -infiles dsareq.pem
> openssl verify -CAfile cacert.pem -untrusted ca2cert.pem dsacert.pem
+ > openssl dsaparam -out dsa2048key.pem -genkey 2048
+ > openssl req -config ./openssl.cnf -new -key dsa2048key.pem -out dsa2048req.pem
+ > openssl ca -config ./openssl.cnf -cert ca2cert.pem -keyfile ca2key.pem \
+ -out dsa2048cert.pem -infiles dsa2048req.pem
+ > openssl verify -CAfile cacert.pem -untrusted ca2cert.pem dsa2048cert.pem
+
+ > openssl dsaparam -out dsa3072key.pem -genkey 3072
+ > openssl req -config ./openssl.cnf -new -key dsa3072key.pem -out dsa3072req.pem
+ > openssl ca -config ./openssl.cnf -cert ca2cert.pem -keyfile ca2key.pem \
+ -out dsa3072cert.pem -infiles dsa3072req.pem
+ > openssl verify -CAfile cacert.pem -untrusted ca2cert.pem dsa3072cert.pem
+
D. Generate and sign RSA key with second level CA
> openssl genrsa -out rsakey.pem
> openssl req -config ./openssl.cnf -new -key rsakey.pem -out rsareq.pem
@@ -64,24 +78,41 @@ README
> openssl ca -config ./openssl.cnf -days 1 -cert ca2cert.pem \
-keyfile ca2key.pem -out expiredcert.pem -infiles expiredreq.pem
> openssl verify -CAfile cacert.pem -untrusted ca2cert.pem expiredcert.pem
+
+ G. Generate ECDSA key with second level CA
+ > openssl ecparam -list_curves
+ > openssl ecparam -name secp256k1 -genkey -noout -out ecdsa-secp256k1-key.pem
+ > openssl req -config ./openssl.cnf -new -key ecdsa-secp256k1-key.pem -out ecdsa-secp256k1-req.pem
+ > openssl ca -config ./openssl.cnf -cert ca2cert.pem -keyfile ca2key.pem \
+ -out ecdsa-secp256k1-cert.pem -infiles ecdsa-secp256k1-req.pem
+ > openssl verify -CAfile cacert.pem -untrusted ca2cert.pem ecdsa-secp256k1-cert.pem
+ > rm ecdsa-secp256k1-req.pem
3. Converting key and certs between PEM and DER formats
- Convert PEM private key file to DER file
- RSA key:
+ RSA keys:
> openssl rsa -inform PEM -outform DER -in rsakey.pem -out rsakey.der
> openssl rsa -inform PEM -outform DER -in largersakey.pem -out largersakey.der
> openssl rsa -inform PEM -outform DER -in expiredkey.pem -out expiredkey.der
- DSA key:
+ DSA keys:
> openssl dsa -inform PEM -outform DER -in dsakey.pem -out dsakey.der
+ > openssl dsa -inform PEM -outform DER -in dsa2048key.pem -out dsa2048key.der
+ > openssl dsa -inform PEM -outform DER -in dsa3072key.pem -out dsa3072key.der
+
+ ECDSA keys:
+ > openssl ec -inform PEM -outform DER -in ecdsa-secp256k1-key.pem -out ecdsa-secp256k1-key.der
- Convert PEM cert file to DER file
> openssl x509 -outform DER -in cacert.pem -out cacert.der
> openssl x509 -outform DER -in ca2cert.pem -out ca2cert.der
> openssl x509 -outform DER -in dsacert.pem -out dsacert.der
+ > openssl x509 -outform DER -in dsa2048cert.pem -out dsa2048cert.der
+ > openssl x509 -outform DER -in dsa3072cert.pem -out dsa3072cert.der
> openssl x509 -outform DER -in rsacert.pem -out rsacert.der
> openssl x509 -outform DER -in largersacert.pem -out largersacert.der
> openssl x509 -outform DER -in expiredcert.pem -out expiredcert.der
+ > openssl x509 -outform DER -in ecdsa-secp256k1-cert.pem -out ecdsa-secp256k1-cert.der
- (optional) Convert PEM public key file to DER file
RSA key:
@@ -97,23 +128,35 @@ README
4. Converting an unencrypted PEM or DER file containing a private key
to an encrypted PEM or DER file containing the same private key but
- encrypted
+ encrypted (the tests password is secret123):
> openssl pkcs8 -in dsakey.pem -inform pem -out dsakey.p8-pem -outform pem -topk8
> openssl pkcs8 -in dsakey.der -inform der -out dsakey.p8-der -outform der -topk8
+ > openssl pkcs8 -in dsa2048key.pem -inform pem -out dsa2048key.p8-pem -outform pem -topk8
+ > openssl pkcs8 -in dsa2048key.der -inform der -out dsa2048key.p8-der -outform der -topk8
+ > openssl pkcs8 -in dsa3072key.pem -inform pem -out dsa3072key.p8-pem -outform pem -topk8
+ > openssl pkcs8 -in dsa3072key.der -inform der -out dsa3072key.p8-der -outform der -topk8
> openssl pkcs8 -in rsakey.pem -inform pem -out rsakey.p8-pem -outform pem -topk8
> openssl pkcs8 -in rsakey.der -inform der -out rsakey.p8-der -outform der -topk8
> openssl pkcs8 -in largersakey.pem -inform pem -out largersakey.p8-pem \
-outform pem -topk8
> openssl pkcs8 -in largersakey.der -inform der -out largersakey.p8-der \
-outform der -topk8
+ > openssl pkcs8 -in ecdsa-secp256k1-key.der -inform der -out ecdsa-secp256k1-key.p8-der \
+ -outform der -topk8
5. NSS is unfriendly towards standalone private keys.
This procedure helps convert raw private keys into PKCS12 form that is
- suitable for not only NSS but all crypto engines.
+ suitable for not only NSS but all crypto engines (the tests password is secret123):
> cat dsakey.pem dsacert.pem ca2cert.pem cacert.pem > alldsa.pem
> openssl pkcs12 -export -in alldsa.pem -name TestDsaKey -out dsakey.p12
+ > cat dsa2048key.pem dsa2048cert.pem ca2cert.pem cacert.pem > alldsa2048.pem
+ > openssl pkcs12 -export -in alldsa2048.pem -name TestDsa2048Key -out dsa2048key.p12
+
+ > cat dsa3072key.pem dsa3072cert.pem ca2cert.pem cacert.pem > alldsa3072.pem
+ > openssl pkcs12 -export -in alldsa3072.pem -name TestDsa3072Key -out dsa3072key.p12
+
> cat rsakey.pem rsacert.pem ca2cert.pem cacert.pem > allrsa.pem
> openssl pkcs12 -export -in allrsa.pem -name TestRsaKey -out rsakey.p12
@@ -124,6 +167,9 @@ README
> openssl pkcs12 -export -in allexpired.pem -name TestExpiredRsaKey \
-out expiredkey.p12
+ > cat ecdsa-secp256k1-key.pem ecdsa-secp256k1-cert.pem ca2cert.pem cacert.pem > all-ecdsa-secp256k1.pem
+ > openssl pkcs12 -export -in all-ecdsa-secp256k1.pem -name TestEcdsaSecp256k1Key -out ecdsa-secp256k1-key.p12
+ > rm all-ecdsa-secp256k1.pem
5a.
Input: DSA/RSA private key in PEM or DER format
diff --git a/tests/keys/demoCA/index.txt b/tests/keys/demoCA/index.txt
index 4fa08b6..1b8c10f 100644
--- a/tests/keys/demoCA/index.txt
+++ b/tests/keys/demoCA/index.txt
@@ -4,3 +4,6 @@ V 21140429175426Z AFA28BB933ADDAAE unknown /C=US/ST=California/O=XML Security L
V 21140429175534Z AFA28BB933ADDAAF unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Third Level RSA Certificate/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
V 21140429175706Z AFA28BB933ADDAB0 unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Large RSA Key/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
V 140524175816Z AFA28BB933ADDAB1 unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Expired RSA Certificate/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+V 21150209225409Z AFA28BB933ADDAB2 unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Third Level DSA 2048 Certificate/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+V 21150209225453Z AFA28BB933ADDAB3 unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Third Level DSA 3072 Certificate/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+V 21160105172612Z AFA28BB933ADDAB4 unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/CN=ECDSA secp256k1 Key/emailAddress=xmlsec at aleksey.com
diff --git a/tests/keys/demoCA/index.txt.old b/tests/keys/demoCA/index.txt.old
index 050ef06..c8270ea 100644
--- a/tests/keys/demoCA/index.txt.old
+++ b/tests/keys/demoCA/index.txt.old
@@ -3,3 +3,6 @@ V 21140429175238Z AFA28BB933ADDAAD unknown /C=US/ST=California/O=XML Security L
V 21140429175426Z AFA28BB933ADDAAE unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Third Level DSA Certificate/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
V 21140429175534Z AFA28BB933ADDAAF unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Third Level RSA Certificate/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
V 21140429175706Z AFA28BB933ADDAB0 unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Large RSA Key/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+V 140524175816Z AFA28BB933ADDAB1 unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Expired RSA Certificate/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+V 21150209225409Z AFA28BB933ADDAB2 unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Third Level DSA 2048 Certificate/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+V 21150209225453Z AFA28BB933ADDAB3 unknown /C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Test Third Level DSA 3072 Certificate/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
diff --git a/tests/keys/demoCA/newcerts/AFA28BB933ADDAB2.pem b/tests/keys/demoCA/newcerts/AFA28BB933ADDAB2.pem
new file mode 100644
index 0000000..370106f
--- /dev/null
+++ b/tests/keys/demoCA/newcerts/AFA28BB933ADDAB2.pem
@@ -0,0 +1,128 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 12655831530416757426 (0xafa28bb933addab2)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ Validity
+ Not Before: Mar 5 22:54:09 2015 GMT
+ Not After : Feb 9 22:54:09 2115 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Third Level DSA 2048 Certificate, CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: dsaEncryption
+ pub:
+ 00:aa:1d:6f:f5:53:c2:bb:6b:64:bd:3b:05:14:de:
+ 4f:58:bf:17:35:cb:74:a1:c9:60:3c:8f:64:63:1f:
+ 05:2c:32:84:67:53:16:e5:a9:b6:51:f1:5e:14:5c:
+ e3:8e:de:3e:3e:ac:e1:cf:80:6f:54:9a:86:ef:9b:
+ cd:9a:2c:df:9d:64:d6:dd:b1:48:f2:a2:69:ba:8b:
+ 75:91:18:03:d9:e9:69:2b:65:bd:63:17:d7:90:48:
+ 29:b3:bb:74:2f:ba:79:00:82:7f:96:14:3e:26:e2:
+ ae:14:e4:b5:cc:c9:4b:1d:9f:02:2f:e0:d2:0a:fe:
+ aa:d2:58:b0:8d:20:e3:4c:73:48:08:c5:2a:06:6a:
+ 13:c4:59:b6:8f:4f:ac:3b:74:8f:07:87:53:64:dc:
+ b3:0d:a9:c5:c5:a9:a6:68:9f:1a:87:40:2e:36:9d:
+ 79:9e:43:d8:5c:6e:7f:e3:c6:6a:aa:ff:90:33:a6:
+ 00:c5:a6:60:00:39:72:25:f3:45:b0:d9:67:db:69:
+ bf:4d:f0:d3:e7:78:aa:30:fc:55:36:12:5d:52:25:
+ b2:e6:15:53:28:dd:c6:a5:2a:0d:91:cb:6a:ee:e0:
+ 9c:3b:5c:93:20:7f:10:b7:29:6e:5b:1a:dc:fc:d6:
+ 1b:38:cc:be:6e:e6:ff:cc:8b:c0:1f:3e:7b:44:37:
+ 57:32
+ P:
+ 00:de:1f:fa:4f:ad:29:09:d4:8a:62:1f:b2:eb:a4:
+ 6d:eb:f4:78:8d:4a:0b:5e:2b:2b:c5:3b:54:ed:a7:
+ 1b:72:37:96:67:44:5c:2a:d2:4c:ff:30:41:88:e3:
+ d2:77:e4:df:3b:17:b0:39:4c:d0:16:ce:97:b7:69:
+ 56:ae:b7:92:df:02:e9:5a:9f:6a:70:05:be:c5:b5:
+ 6b:ff:e3:81:26:a4:a1:06:7c:c4:9a:b3:dc:e6:5d:
+ 7a:b2:16:56:6f:b2:ec:cf:fc:a6:bc:08:2f:66:95:
+ 10:91:ff:10:93:14:ac:db:db:6c:ea:62:f0:ad:f7:
+ f8:fa:8f:fa:4d:ad:b0:eb:5f:f0:84:94:5a:17:1c:
+ 11:b5:fb:66:9b:03:95:17:90:1c:be:9a:5e:a3:04:
+ 47:05:2b:c3:12:fd:b5:d0:6f:53:d6:f5:ce:f3:fe:
+ 50:d6:ad:f4:85:1f:c1:82:20:7d:c1:62:43:71:6f:
+ 79:62:0c:36:59:1a:9f:7b:47:6b:97:ec:c9:7d:b2:
+ 05:06:8b:9c:8b:63:4e:a1:35:46:2b:0e:ec:52:c8:
+ eb:b9:03:01:cd:0f:09:ff:55:44:9d:5d:a8:87:da:
+ cb:47:5f:66:60:3d:f9:b7:26:65:0f:3b:a6:13:79:
+ 47:bb:3c:da:fc:5d:90:46:52:16:19:1d:71:59:c1:
+ c9:af
+ Q:
+ 00:c0:ec:2c:22:81:0b:ff:bb:27:c7:06:56:22:5b:
+ 30:4a:ae:ef:99:1e:c8:7d:98:7b:06:98:ca:41:97:
+ 7c:bc:7d
+ G:
+ 12:5d:71:1a:b6:f4:9b:22:cf:26:ab:eb:93:58:b7:
+ fa:34:e5:00:22:00:b9:89:31:14:62:bf:f0:d8:5f:
+ ac:ce:52:25:e6:d8:b5:cc:79:ee:97:bd:a3:ed:dd:
+ bf:0e:70:cd:50:b9:b0:42:76:32:95:f7:cd:92:c2:
+ d7:34:f6:b4:bf:5e:b0:5e:58:e1:49:8d:db:00:5b:
+ 14:7e:7b:d8:8a:7b:86:2c:86:52:56:d5:80:a2:77:
+ 9f:79:2d:55:d9:7c:0d:b0:aa:78:eb:3a:e1:b3:f9:
+ 60:39:38:af:82:3b:85:65:69:bb:19:ec:6a:dd:5e:
+ 7e:5b:ac:54:9e:f8:b3:31:48:96:37:e0:b7:16:c5:
+ 06:64:35:0c:af:7a:4f:76:cc:b4:40:9e:07:53:91:
+ 83:9a:8b:59:62:d1:71:de:67:17:a7:ce:fe:b6:56:
+ 76:cd:79:7a:cc:17:07:52:92:e9:22:bc:30:99:38:
+ b6:94:82:2e:cc:b3:4e:e7:a2:3b:2d:36:56:cc:12:
+ 48:03:4f:d5:36:ad:37:47:c6:4c:48:f5:b9:a9:49:
+ 1e:63:95:ae:e9:c6:e5:f7:e6:a8:0d:bd:7c:f8:8c:
+ d8:01:e8:f2:20:e5:ec:e7:26:59:b3:76:61:b9:55:
+ e3:f0:f8:f2:14:d9:f0:29:5e:91:e3:d4:95:71:13:
+ b2
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ D2:E0:AF:FD:F9:47:36:6C:DC:0C:73:66:DA:CE:FF:1E:B3:81:8A:9A
+ X509v3 Authority Key Identifier:
+ keyid:FE:E4:EC:53:24:F0:95:95:C7:10:B5:E1:44:B5:5D:39:65:5A:E3:7E
+ DirName:/C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Root CA/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ serial:AF:A2:8B:B9:33:AD:DA:AD
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 18:de:fe:a7:fd:0d:17:ca:cd:7e:06:b0:3d:cd:69:11:c4:67:
+ 63:10:cd:4e:d3:6d:63:4c:9b:02:1d:39:da:5f:e3:2d:84:e1:
+ cf:fd:1f:ee:49:54:bb:85:57:4c:a6:18:f3:09:c4:f8:8c:e8:
+ 24:1e:99:cd:e8:2e:9f:cb:84:ab
+-----BEGIN CERTIFICATE-----
+MIIGmTCCBkOgAwIBAgIJAK+ii7kzrdqyMA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEWMBQG
+A1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtz
+ZXkuY29tMCAXDTE1MDMwNTIyNTQwOVoYDzIxMTUwMjA5MjI1NDA5WjCBzDELMAkG
+A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1
+cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxLjAs
+BgNVBAsTJVRlc3QgVGhpcmQgTGV2ZWwgRFNBIDIwNDggQ2VydGlmaWNhdGUxFjAU
+BgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVr
+c2V5LmNvbTCCA0cwggI5BgcqhkjOOAQBMIICLAKCAQEA3h/6T60pCdSKYh+y66Rt
+6/R4jUoLXisrxTtU7acbcjeWZ0RcKtJM/zBBiOPSd+TfOxewOUzQFs6Xt2lWrreS
+3wLpWp9qcAW+xbVr/+OBJqShBnzEmrPc5l16shZWb7Lsz/ymvAgvZpUQkf8QkxSs
+29ts6mLwrff4+o/6Ta2w61/whJRaFxwRtftmmwOVF5AcvppeowRHBSvDEv210G9T
+1vXO8/5Q1q30hR/BgiB9wWJDcW95Ygw2WRqfe0drl+zJfbIFBouci2NOoTVGKw7s
+UsjruQMBzQ8J/1VEnV2oh9rLR19mYD35tyZlDzumE3lHuzza/F2QRlIWGR1xWcHJ
+rwIhAMDsLCKBC/+7J8cGViJbMEqu75keyH2YewaYykGXfLx9AoIBABJdcRq29Jsi
+zyar65NYt/o05QAiALmJMRRiv/DYX6zOUiXm2LXMee6XvaPt3b8OcM1QubBCdjKV
+982Swtc09rS/XrBeWOFJjdsAWxR+e9iKe4YshlJW1YCid595LVXZfA2wqnjrOuGz
++WA5OK+CO4VlabsZ7GrdXn5brFSe+LMxSJY34LcWxQZkNQyvek92zLRAngdTkYOa
+i1li0XHeZxenzv62VnbNeXrMFwdSkukivDCZOLaUgi7Ms07nojstNlbMEkgDT9U2
+rTdHxkxI9bmpSR5jla7pxuX35qgNvXz4jNgB6PIg5eznJlmzdmG5VePw+PIU2fAp
+XpHj1JVxE7IDggEGAAKCAQEAqh1v9VPCu2tkvTsFFN5PWL8XNct0oclgPI9kYx8F
+LDKEZ1MW5am2UfFeFFzjjt4+Pqzhz4BvVJqG75vNmizfnWTW3bFI8qJpuot1kRgD
+2elpK2W9YxfXkEgps7t0L7p5AIJ/lhQ+JuKuFOS1zMlLHZ8CL+DSCv6q0liwjSDj
+THNICMUqBmoTxFm2j0+sO3SPB4dTZNyzDanFxammaJ8ah0AuNp15nkPYXG5/48Zq
+qv+QM6YAxaZgADlyJfNFsNln22m/TfDT53iqMPxVNhJdUiWy5hVTKN3GpSoNkctq
+7uCcO1yTIH8QtyluWxrc/NYbOMy+bub/zIvAHz57RDdXMqOCAUUwggFBMAwGA1Ud
+EwQFMAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRp
+ZmljYXRlMB0GA1UdDgQWBBTS4K/9+Uc2bNwMc2bazv8es4GKmjCB4wYDVR0jBIHb
+MIHYgBT+5OxTJPCVlccQteFEtV05ZVrjfqGBtKSBsTCBrjELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJy
+YXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxEDAOBgNVBAsTB1Jv
+b3QgQ0ExFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnht
+bHNlY0BhbGVrc2V5LmNvbYIJAK+ii7kzrdqtMA0GCSqGSIb3DQEBBQUAA0EAGN7+
+p/0NF8rNfgawPc1pEcRnYxDNTtNtY0ybAh052l/jLYThz/0f7klUu4VXTKYY8wnE
++IzoJB6Zzegun8uEqw==
+-----END CERTIFICATE-----
diff --git a/tests/keys/demoCA/newcerts/AFA28BB933ADDAB3.pem b/tests/keys/demoCA/newcerts/AFA28BB933ADDAB3.pem
new file mode 100644
index 0000000..d23189d
--- /dev/null
+++ b/tests/keys/demoCA/newcerts/AFA28BB933ADDAB3.pem
@@ -0,0 +1,160 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 12655831530416757427 (0xafa28bb933addab3)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ Validity
+ Not Before: Mar 5 22:54:53 2015 GMT
+ Not After : Feb 9 22:54:53 2115 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Third Level DSA 3072 Certificate, CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: dsaEncryption
+ pub:
+ 00:c9:8a:8e:a6:4e:08:f4:fe:68:37:5d:30:e8:ce:
+ e2:fa:bf:be:da:dd:c9:60:95:f5:3a:18:de:66:c6:
+ 7f:6b:87:d2:5d:44:87:bb:8f:34:09:9e:f5:3c:ab:
+ 44:e7:a8:59:e6:71:3a:f8:ae:67:63:4b:95:77:fb:
+ 55:c7:20:63:bf:35:40:2e:2f:7c:35:90:f5:b5:2a:
+ 64:dc:fc:7b:98:7a:b5:be:37:9a:66:ed:9c:97:ef:
+ 56:c1:5a:47:f1:d1:34:16:8c:e5:de:0e:7a:12:65:
+ 0d:4d:06:e8:fc:1a:41:db:70:6d:1f:20:22:50:1d:
+ dd:9f:d6:af:40:27:c7:45:30:4f:db:0a:4d:4c:8b:
+ f6:3f:8c:9f:4a:af:40:04:28:f4:30:9e:dd:12:66:
+ 17:61:a8:ea:7a:12:bd:13:22:d6:ec:1e:df:5b:ae:
+ e7:38:e4:69:ae:c9:91:a0:92:7f:b0:10:8e:c6:df:
+ 1e:c1:2f:8f:38:51:aa:65:36:8d:2c:17:8d:ed:5a:
+ 60:77:e5:91:1f:7f:15:8e:60:59:4b:2e:4a:17:4e:
+ 56:67:4a:75:d6:ef:3c:7c:a1:74:ce:21:b9:fd:2b:
+ 7d:c0:f4:d8:17:b8:3a:4c:83:b2:28:b9:48:74:15:
+ 85:76:75:58:ef:36:ac:24:f1:d6:6b:38:df:a9:02:
+ d5:7b:09:0b:cd:ea:9c:de:3e:0f:e8:04:9a:d4:95:
+ 5f:cd:3b:68:f4:06:e6:6f:97:d0:11:bf:62:58:92:
+ b6:6e:7c:5b:66:30:d0:5b:a1:fe:a3:f9:66:c5:9c:
+ 8a:9b:db:b5:c2:2e:5d:5a:ef:44:35:58:a0:af:13:
+ ca:83:dc:b8:99:1f:1f:fb:96:ca:dc:69:35:7c:29:
+ 91:7c:77:99:33:81:74:48:48:5b:39:36:46:05:c6:
+ bb:bf:2e:30:4f:ef:be:c5:2c:7d:b7:41:35:b6:81:
+ eb:4f:4b:dc:84:c5:4c:3d:92:d7:85:68:5e:32:39:
+ 40:79:2a:07:84:95:e6:65:4f:e4
+ P:
+ 00:e3:88:32:2a:76:4d:35:f3:33:d3:e1:50:2b:f3:
+ a9:62:4a:d2:9b:5f:da:5a:5c:cc:dc:1d:4c:58:5b:
+ 27:14:c3:41:d2:bf:b9:15:bc:bf:11:87:ab:01:ff:
+ a4:fc:f3:42:47:e8:fb:d7:d5:49:89:4f:cd:f8:4d:
+ 98:bd:88:62:e8:01:ca:a4:a2:db:e7:b2:16:2f:5b:
+ 5a:14:77:98:6e:bc:9f:f0:38:0c:55:5e:b3:a5:a2:
+ 41:8f:fe:92:64:3d:62:89:62:f2:7f:c7:32:80:dd:
+ 2d:d2:7f:5c:f4:df:18:67:c6:b8:19:ef:49:d1:7d:
+ 4a:f7:88:e1:b6:cb:5e:30:d2:1f:16:1b:f9:72:79:
+ 1a:83:07:5a:af:91:ac:54:5d:78:ea:46:01:82:e7:
+ dc:02:f4:0b:53:dc:71:13:e9:ed:a8:64:1e:6d:81:
+ 76:38:7a:41:0b:35:9b:5f:79:3b:01:cc:7a:c3:f5:
+ 6a:c0:98:e5:2b:87:d1:52:54:8e:81:76:6b:78:c9:
+ 6e:da:cf:7a:59:21:a8:d8:bc:59:51:81:23:ef:69:
+ 15:66:f9:d5:6a:7c:20:9a:e1:e8:b8:4e:5b:86:2a:
+ cb:f6:d2:90:ed:97:6f:60:a0:45:e0:a8:b4:51:a6:
+ 5a:2c:6e:db:3e:02:a7:14:1f:5b:92:30:d9:03:ee:
+ 69:fa:88:71:9c:5a:61:d3:68:12:ff:87:4d:07:da:
+ b0:17:92:d8:70:c1:3c:d6:b3:f6:75:ea:08:9d:5a:
+ 43:f8:09:b5:f7:8d:32:9e:90:48:38:ec:6f:51:51:
+ e4:cc:bf:4f:0d:ef:56:4f:d4:58:a3:6a:a2:b5:6f:
+ 59:7b:40:98:93:32:fa:26:57:1a:08:b4:0b:fc:5b:
+ 89:a1:5e:3e:c5:94:43:9d:56:47:34:12:28:09:74:
+ 27:48:04:6e:ce:76:45:dc:15:cf:14:6b:7a:fa:f5:
+ ce:4a:1d:07:58:61:5d:60:8a:4d:09:00:20:16:f4:
+ 31:b7:e3:1e:4c:c8:e8:8d:3e:0f
+ Q:
+ 00:c2:88:7b:78:1e:fc:98:82:4e:c4:b1:14:1c:60:
+ 35:be:9b:c8:3d:81:77:32:ea:a4:d0:f1:2f:f1:38:
+ b8:59:df
+ G:
+ 00:8b:7a:a1:1c:76:49:78:e5:33:00:c6:0a:72:85:
+ 5f:0b:dc:18:1f:c5:90:3a:e2:d0:d0:07:fa:4c:50:
+ 67:27:17:54:65:59:ef:fa:54:ec:31:66:b6:48:9f:
+ 2a:e9:74:0c:1e:07:d9:2e:b5:b8:ea:61:44:f6:41:
+ 6d:68:33:43:74:21:0f:40:d5:b9:ce:ce:4b:24:49:
+ a0:31:04:72:00:90:8f:67:a9:38:0b:79:01:96:97:
+ 38:be:cf:c5:94:3a:c3:e9:7f:5a:6e:39:11:54:f3:
+ c5:19:7f:b4:ba:15:17:00:84:e8:55:88:5e:63:b7:
+ 98:88:ad:80:39:81:05:6c:0a:1f:92:2e:92:be:92:
+ d9:e3:c7:3b:f3:f7:fd:6b:07:41:db:e0:1c:f0:e2:
+ 5c:64:c4:5a:ff:96:01:d6:42:d0:b3:f6:f0:99:04:
+ 06:ec:b0:f1:c7:2e:9c:46:ed:50:3a:27:82:36:29:
+ 7c:f6:5d:37:b2:32:fd:38:f6:b7:d6:52:fe:12:20:
+ 38:0b:b3:95:f0:72:13:3e:3d:69:2e:3c:52:c8:73:
+ f2:cb:39:8f:28:7a:60:f7:af:23:86:2a:0d:87:a1:
+ f1:85:15:bf:a8:6c:7f:b7:b6:db:15:b1:d4:fb:60:
+ d5:3b:6d:70:0a:35:3f:ae:27:06:e8:d0:04:fd:db:
+ 1f:46:58:36:e4:0b:77:3a:2c:9f:c1:e6:41:29:a4:
+ b6:02:11:ae:9b:45:63:32:7a:92:33:2e:af:19:0c:
+ f7:01:87:94:ab:f5:bf:7c:cc:cc:01:bc:83:00:29:
+ e9:0e:7a:71:55:ec:2b:25:a5:7c:41:7e:30:c1:8a:
+ ea:34:d7:26:8f:d9:43:f9:ac:16:11:92:43:fb:99:
+ 46:3c:70:7a:c6:bd:5e:3d:d0:de:16:7e:b5:67:10:
+ 5a:dd:3a:c9:ab:f6:ff:15:d4:3e:4a:39:ce:04:6e:
+ a2:64:4a:35:51:48:7d:93:da:84:12:22:11:3d:19:
+ c9:5a:23:e0:a8:63:f4:bb:c9:13
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ 94:81:05:72:34:53:0F:51:FC:63:B8:DE:59:F8:AC:6A:BB:F1:46:72
+ X509v3 Authority Key Identifier:
+ keyid:FE:E4:EC:53:24:F0:95:95:C7:10:B5:E1:44:B5:5D:39:65:5A:E3:7E
+ DirName:/C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Root CA/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ serial:AF:A2:8B:B9:33:AD:DA:AD
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 0f:77:ba:95:c6:98:64:a0:d2:1c:81:a6:1b:bc:e8:a9:30:51:
+ 59:da:7a:1e:06:4e:dc:76:bf:50:b5:a8:13:c7:e0:00:21:fe:
+ 82:a9:cc:86:29:4e:7d:ed:ee:e0:2c:89:39:3b:8a:6e:de:6a:
+ 96:e5:b1:70:51:7b:39:11:a0:ae
+-----BEGIN CERTIFICATE-----
+MIIIGjCCB8SgAwIBAgIJAK+ii7kzrdqzMA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEWMBQG
+A1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtz
+ZXkuY29tMCAXDTE1MDMwNTIyNTQ1M1oYDzIxMTUwMjA5MjI1NDUzWjCBzDELMAkG
+A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1
+cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxLjAs
+BgNVBAsTJVRlc3QgVGhpcmQgTGV2ZWwgRFNBIDMwNzIgQ2VydGlmaWNhdGUxFjAU
+BgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVr
+c2V5LmNvbTCCBMgwggM6BgcqhkjOOAQBMIIDLQKCAYEA44gyKnZNNfMz0+FQK/Op
+YkrSm1/aWlzM3B1MWFsnFMNB0r+5Fby/EYerAf+k/PNCR+j719VJiU/N+E2YvYhi
+6AHKpKLb57IWL1taFHeYbryf8DgMVV6zpaJBj/6SZD1iiWLyf8cygN0t0n9c9N8Y
+Z8a4Ge9J0X1K94jhtsteMNIfFhv5cnkagwdar5GsVF146kYBgufcAvQLU9xxE+nt
+qGQebYF2OHpBCzWbX3k7Acx6w/VqwJjlK4fRUlSOgXZreMlu2s96WSGo2LxZUYEj
+72kVZvnVanwgmuHouE5bhirL9tKQ7ZdvYKBF4Ki0UaZaLG7bPgKnFB9bkjDZA+5p
++ohxnFph02gS/4dNB9qwF5LYcME81rP2deoInVpD+Am1940ynpBIOOxvUVHkzL9P
+De9WT9RYo2qitW9Ze0CYkzL6JlcaCLQL/FuJoV4+xZRDnVZHNBIoCXQnSARuznZF
+3BXPFGt6+vXOSh0HWGFdYIpNCQAgFvQxt+MeTMjojT4PAiEAwoh7eB78mIJOxLEU
+HGA1vpvIPYF3Muqk0PEv8Ti4Wd8CggGBAIt6oRx2SXjlMwDGCnKFXwvcGB/FkDri
+0NAH+kxQZycXVGVZ7/pU7DFmtkifKul0DB4H2S61uOphRPZBbWgzQ3QhD0DVuc7O
+SyRJoDEEcgCQj2epOAt5AZaXOL7PxZQ6w+l/Wm45EVTzxRl/tLoVFwCE6FWIXmO3
+mIitgDmBBWwKH5Iukr6S2ePHO/P3/WsHQdvgHPDiXGTEWv+WAdZC0LP28JkEBuyw
+8ccunEbtUDongjYpfPZdN7Iy/Tj2t9ZS/hIgOAuzlfByEz49aS48Ushz8ss5jyh6
+YPevI4YqDYeh8YUVv6hsf7e22xWx1Ptg1TttcAo1P64nBujQBP3bH0ZYNuQLdzos
+n8HmQSmktgIRrptFYzJ6kjMurxkM9wGHlKv1v3zMzAG8gwAp6Q56cVXsKyWlfEF+
+MMGK6jTXJo/ZQ/msFhGSQ/uZRjxwesa9Xj3Q3hZ+tWcQWt06yav2/xXUPko5zgRu
+omRKNVFIfZPahBIiET0ZyVoj4Khj9LvJEwOCAYYAAoIBgQDJio6mTgj0/mg3XTDo
+zuL6v77a3clglfU6GN5mxn9rh9JdRIe7jzQJnvU8q0TnqFnmcTr4rmdjS5V3+1XH
+IGO/NUAuL3w1kPW1KmTc/HuYerW+N5pm7ZyX71bBWkfx0TQWjOXeDnoSZQ1NBuj8
+GkHbcG0fICJQHd2f1q9AJ8dFME/bCk1Mi/Y/jJ9Kr0AEKPQwnt0SZhdhqOp6Er0T
+ItbsHt9bruc45GmuyZGgkn+wEI7G3x7BL484UaplNo0sF43tWmB35ZEffxWOYFlL
+LkoXTlZnSnXW7zx8oXTOIbn9K33A9NgXuDpMg7IouUh0FYV2dVjvNqwk8dZrON+p
+AtV7CQvN6pzePg/oBJrUlV/NO2j0BuZvl9ARv2JYkrZufFtmMNBbof6j+WbFnIqb
+27XCLl1a70Q1WKCvE8qD3LiZHx/7lsrcaTV8KZF8d5kzgXRISFs5NkYFxru/LjBP
+777FLH23QTW2getPS9yExUw9kteFaF4yOUB5KgeEleZlT+SjggFFMIIBQTAMBgNV
+HRMEBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0
+aWZpY2F0ZTAdBgNVHQ4EFgQUlIEFcjRTD1H8Y7jeWfisarvxRnIwgeMGA1UdIwSB
+2zCB2IAU/uTsUyTwlZXHELXhRLVdOWVa436hgbSkgbEwga4xCzAJBgNVBAYTAlVT
+MRMwEQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGli
+cmFyeSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMpMRAwDgYDVQQLEwdS
+b290IENBMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4
+bWxzZWNAYWxla3NleS5jb22CCQCvoou5M63arTANBgkqhkiG9w0BAQUFAANBAA93
+upXGmGSg0hyBphu86KkwUVnaeh4GTtx2v1C1qBPH4AAh/oKpzIYpTn3t7uAsiTk7
+im7eapblsXBRezkRoK4=
+-----END CERTIFICATE-----
diff --git a/tests/keys/demoCA/newcerts/AFA28BB933ADDAB4.pem b/tests/keys/demoCA/newcerts/AFA28BB933ADDAB4.pem
new file mode 100644
index 0000000..14f0996
--- /dev/null
+++ b/tests/keys/demoCA/newcerts/AFA28BB933ADDAB4.pem
@@ -0,0 +1,58 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 12655831530416757428 (0xafa28bb933addab4)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ Validity
+ Not Before: Jan 29 17:26:12 2016 GMT
+ Not After : Jan 5 17:26:12 2116 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), CN=ECDSA secp256k1 Key/emailAddress=xmlsec at aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: id-ecPublicKey
+ Public-Key: (256 bit)
+ pub:
+ 04:67:db:9d:7a:d1:ed:b8:c6:06:c2:ba:2c:8a:36:
+ 2e:43:0f:cf:d3:a1:a9:6e:94:e0:45:30:84:0f:b4:
+ c1:b5:db:2f:34:6e:7e:e6:9a:52:e1:87:92:19:7d:
+ 2c:36:b9:d7:6f:1d:d7:6d:3d:8f:6e:62:5a:0c:8b:
+ 42:8c:60:30:b3
+ ASN1 OID: secp256k1
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ 3C:95:C7:89:6D:47:4A:A7:70:6E:E7:29:11:28:B5:25:E2:09:1C:A0
+ X509v3 Authority Key Identifier:
+ keyid:FE:E4:EC:53:24:F0:95:95:C7:10:B5:E1:44:B5:5D:39:65:5A:E3:7E
+ DirName:/C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Root CA/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ serial:AF:A2:8B:B9:33:AD:DA:AD
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 5c:1e:03:4d:d0:a3:77:b7:06:f5:38:31:3d:f0:9e:c9:fb:55:
+ 9b:a4:4c:8e:b5:7b:0c:ab:18:24:2c:84:e7:39:9e:0d:d3:b8:
+ d7:cd:70:0b:b0:87:00:e7:4e:41:c4:6a:b6:f0:bc:6d:ce:98:
+ 92:25:fb:20:ea:81:5b:53:0f:d3
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAyagAwIBAgIJAK+ii7kzrdq0MA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEWMBQG
+A1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtz
+ZXkuY29tMCAXDTE2MDEyOTE3MjYxMloYDzIxMTYwMTA1MTcyNjEyWjCBojELMAkG
+A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1
+cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHDAa
+BgNVBAMTE0VDRFNBIHNlY3AyNTZrMSBLZXkxITAfBgkqhkiG9w0BCQEWEnhtbHNl
+Y0BhbGVrc2V5LmNvbTBWMBAGByqGSM49AgEGBSuBBAAKA0IABGfbnXrR7bjGBsK6
+LIo2LkMPz9OhqW6U4EUwhA+0wbXbLzRufuaaUuGHkhl9LDa5128d1209j25iWgyL
+QoxgMLOjggFFMIIBQTAMBgNVHRMEBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVu
+U1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUPJXHiW1HSqdwbucp
+ESi1JeIJHKAwgeMGA1UdIwSB2zCB2IAU/uTsUyTwlZXHELXhRLVdOWVa436hgbSk
+gbEwga4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQK
+EzRYTUwgU2VjdXJpdHkgTGlicmFyeSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94
+bWxzZWMpMRAwDgYDVQQLEwdSb290IENBMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQCvoou5M63arTAN
+BgkqhkiG9w0BAQUFAANBAFweA03Qo3e3BvU4MT3wnsn7VZukTI61ewyrGCQshOc5
+ng3TuNfNcAuwhwDnTkHEarbwvG3OmJIl+yDqgVtTD9M=
+-----END CERTIFICATE-----
diff --git a/tests/keys/demoCA/serial b/tests/keys/demoCA/serial
index 4c8059c..f10ea95 100644
--- a/tests/keys/demoCA/serial
+++ b/tests/keys/demoCA/serial
@@ -1 +1 @@
-AFA28BB933ADDAB2
+AFA28BB933ADDAB5
diff --git a/tests/keys/demoCA/serial.old b/tests/keys/demoCA/serial.old
index a774cc1..adf3394 100644
--- a/tests/keys/demoCA/serial.old
+++ b/tests/keys/demoCA/serial.old
@@ -1 +1 @@
-AFA28BB933ADDAB1
+AFA28BB933ADDAB4
diff --git a/tests/keys/dsa2048cert.der b/tests/keys/dsa2048cert.der
new file mode 100644
index 0000000..95617d6
Binary files /dev/null and b/tests/keys/dsa2048cert.der differ
diff --git a/tests/keys/dsa2048cert.pem b/tests/keys/dsa2048cert.pem
new file mode 100644
index 0000000..370106f
--- /dev/null
+++ b/tests/keys/dsa2048cert.pem
@@ -0,0 +1,128 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 12655831530416757426 (0xafa28bb933addab2)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ Validity
+ Not Before: Mar 5 22:54:09 2015 GMT
+ Not After : Feb 9 22:54:09 2115 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Third Level DSA 2048 Certificate, CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: dsaEncryption
+ pub:
+ 00:aa:1d:6f:f5:53:c2:bb:6b:64:bd:3b:05:14:de:
+ 4f:58:bf:17:35:cb:74:a1:c9:60:3c:8f:64:63:1f:
+ 05:2c:32:84:67:53:16:e5:a9:b6:51:f1:5e:14:5c:
+ e3:8e:de:3e:3e:ac:e1:cf:80:6f:54:9a:86:ef:9b:
+ cd:9a:2c:df:9d:64:d6:dd:b1:48:f2:a2:69:ba:8b:
+ 75:91:18:03:d9:e9:69:2b:65:bd:63:17:d7:90:48:
+ 29:b3:bb:74:2f:ba:79:00:82:7f:96:14:3e:26:e2:
+ ae:14:e4:b5:cc:c9:4b:1d:9f:02:2f:e0:d2:0a:fe:
+ aa:d2:58:b0:8d:20:e3:4c:73:48:08:c5:2a:06:6a:
+ 13:c4:59:b6:8f:4f:ac:3b:74:8f:07:87:53:64:dc:
+ b3:0d:a9:c5:c5:a9:a6:68:9f:1a:87:40:2e:36:9d:
+ 79:9e:43:d8:5c:6e:7f:e3:c6:6a:aa:ff:90:33:a6:
+ 00:c5:a6:60:00:39:72:25:f3:45:b0:d9:67:db:69:
+ bf:4d:f0:d3:e7:78:aa:30:fc:55:36:12:5d:52:25:
+ b2:e6:15:53:28:dd:c6:a5:2a:0d:91:cb:6a:ee:e0:
+ 9c:3b:5c:93:20:7f:10:b7:29:6e:5b:1a:dc:fc:d6:
+ 1b:38:cc:be:6e:e6:ff:cc:8b:c0:1f:3e:7b:44:37:
+ 57:32
+ P:
+ 00:de:1f:fa:4f:ad:29:09:d4:8a:62:1f:b2:eb:a4:
+ 6d:eb:f4:78:8d:4a:0b:5e:2b:2b:c5:3b:54:ed:a7:
+ 1b:72:37:96:67:44:5c:2a:d2:4c:ff:30:41:88:e3:
+ d2:77:e4:df:3b:17:b0:39:4c:d0:16:ce:97:b7:69:
+ 56:ae:b7:92:df:02:e9:5a:9f:6a:70:05:be:c5:b5:
+ 6b:ff:e3:81:26:a4:a1:06:7c:c4:9a:b3:dc:e6:5d:
+ 7a:b2:16:56:6f:b2:ec:cf:fc:a6:bc:08:2f:66:95:
+ 10:91:ff:10:93:14:ac:db:db:6c:ea:62:f0:ad:f7:
+ f8:fa:8f:fa:4d:ad:b0:eb:5f:f0:84:94:5a:17:1c:
+ 11:b5:fb:66:9b:03:95:17:90:1c:be:9a:5e:a3:04:
+ 47:05:2b:c3:12:fd:b5:d0:6f:53:d6:f5:ce:f3:fe:
+ 50:d6:ad:f4:85:1f:c1:82:20:7d:c1:62:43:71:6f:
+ 79:62:0c:36:59:1a:9f:7b:47:6b:97:ec:c9:7d:b2:
+ 05:06:8b:9c:8b:63:4e:a1:35:46:2b:0e:ec:52:c8:
+ eb:b9:03:01:cd:0f:09:ff:55:44:9d:5d:a8:87:da:
+ cb:47:5f:66:60:3d:f9:b7:26:65:0f:3b:a6:13:79:
+ 47:bb:3c:da:fc:5d:90:46:52:16:19:1d:71:59:c1:
+ c9:af
+ Q:
+ 00:c0:ec:2c:22:81:0b:ff:bb:27:c7:06:56:22:5b:
+ 30:4a:ae:ef:99:1e:c8:7d:98:7b:06:98:ca:41:97:
+ 7c:bc:7d
+ G:
+ 12:5d:71:1a:b6:f4:9b:22:cf:26:ab:eb:93:58:b7:
+ fa:34:e5:00:22:00:b9:89:31:14:62:bf:f0:d8:5f:
+ ac:ce:52:25:e6:d8:b5:cc:79:ee:97:bd:a3:ed:dd:
+ bf:0e:70:cd:50:b9:b0:42:76:32:95:f7:cd:92:c2:
+ d7:34:f6:b4:bf:5e:b0:5e:58:e1:49:8d:db:00:5b:
+ 14:7e:7b:d8:8a:7b:86:2c:86:52:56:d5:80:a2:77:
+ 9f:79:2d:55:d9:7c:0d:b0:aa:78:eb:3a:e1:b3:f9:
+ 60:39:38:af:82:3b:85:65:69:bb:19:ec:6a:dd:5e:
+ 7e:5b:ac:54:9e:f8:b3:31:48:96:37:e0:b7:16:c5:
+ 06:64:35:0c:af:7a:4f:76:cc:b4:40:9e:07:53:91:
+ 83:9a:8b:59:62:d1:71:de:67:17:a7:ce:fe:b6:56:
+ 76:cd:79:7a:cc:17:07:52:92:e9:22:bc:30:99:38:
+ b6:94:82:2e:cc:b3:4e:e7:a2:3b:2d:36:56:cc:12:
+ 48:03:4f:d5:36:ad:37:47:c6:4c:48:f5:b9:a9:49:
+ 1e:63:95:ae:e9:c6:e5:f7:e6:a8:0d:bd:7c:f8:8c:
+ d8:01:e8:f2:20:e5:ec:e7:26:59:b3:76:61:b9:55:
+ e3:f0:f8:f2:14:d9:f0:29:5e:91:e3:d4:95:71:13:
+ b2
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ D2:E0:AF:FD:F9:47:36:6C:DC:0C:73:66:DA:CE:FF:1E:B3:81:8A:9A
+ X509v3 Authority Key Identifier:
+ keyid:FE:E4:EC:53:24:F0:95:95:C7:10:B5:E1:44:B5:5D:39:65:5A:E3:7E
+ DirName:/C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Root CA/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ serial:AF:A2:8B:B9:33:AD:DA:AD
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 18:de:fe:a7:fd:0d:17:ca:cd:7e:06:b0:3d:cd:69:11:c4:67:
+ 63:10:cd:4e:d3:6d:63:4c:9b:02:1d:39:da:5f:e3:2d:84:e1:
+ cf:fd:1f:ee:49:54:bb:85:57:4c:a6:18:f3:09:c4:f8:8c:e8:
+ 24:1e:99:cd:e8:2e:9f:cb:84:ab
+-----BEGIN CERTIFICATE-----
+MIIGmTCCBkOgAwIBAgIJAK+ii7kzrdqyMA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEWMBQG
+A1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtz
+ZXkuY29tMCAXDTE1MDMwNTIyNTQwOVoYDzIxMTUwMjA5MjI1NDA5WjCBzDELMAkG
+A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1
+cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxLjAs
+BgNVBAsTJVRlc3QgVGhpcmQgTGV2ZWwgRFNBIDIwNDggQ2VydGlmaWNhdGUxFjAU
+BgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVr
+c2V5LmNvbTCCA0cwggI5BgcqhkjOOAQBMIICLAKCAQEA3h/6T60pCdSKYh+y66Rt
+6/R4jUoLXisrxTtU7acbcjeWZ0RcKtJM/zBBiOPSd+TfOxewOUzQFs6Xt2lWrreS
+3wLpWp9qcAW+xbVr/+OBJqShBnzEmrPc5l16shZWb7Lsz/ymvAgvZpUQkf8QkxSs
+29ts6mLwrff4+o/6Ta2w61/whJRaFxwRtftmmwOVF5AcvppeowRHBSvDEv210G9T
+1vXO8/5Q1q30hR/BgiB9wWJDcW95Ygw2WRqfe0drl+zJfbIFBouci2NOoTVGKw7s
+UsjruQMBzQ8J/1VEnV2oh9rLR19mYD35tyZlDzumE3lHuzza/F2QRlIWGR1xWcHJ
+rwIhAMDsLCKBC/+7J8cGViJbMEqu75keyH2YewaYykGXfLx9AoIBABJdcRq29Jsi
+zyar65NYt/o05QAiALmJMRRiv/DYX6zOUiXm2LXMee6XvaPt3b8OcM1QubBCdjKV
+982Swtc09rS/XrBeWOFJjdsAWxR+e9iKe4YshlJW1YCid595LVXZfA2wqnjrOuGz
++WA5OK+CO4VlabsZ7GrdXn5brFSe+LMxSJY34LcWxQZkNQyvek92zLRAngdTkYOa
+i1li0XHeZxenzv62VnbNeXrMFwdSkukivDCZOLaUgi7Ms07nojstNlbMEkgDT9U2
+rTdHxkxI9bmpSR5jla7pxuX35qgNvXz4jNgB6PIg5eznJlmzdmG5VePw+PIU2fAp
+XpHj1JVxE7IDggEGAAKCAQEAqh1v9VPCu2tkvTsFFN5PWL8XNct0oclgPI9kYx8F
+LDKEZ1MW5am2UfFeFFzjjt4+Pqzhz4BvVJqG75vNmizfnWTW3bFI8qJpuot1kRgD
+2elpK2W9YxfXkEgps7t0L7p5AIJ/lhQ+JuKuFOS1zMlLHZ8CL+DSCv6q0liwjSDj
+THNICMUqBmoTxFm2j0+sO3SPB4dTZNyzDanFxammaJ8ah0AuNp15nkPYXG5/48Zq
+qv+QM6YAxaZgADlyJfNFsNln22m/TfDT53iqMPxVNhJdUiWy5hVTKN3GpSoNkctq
+7uCcO1yTIH8QtyluWxrc/NYbOMy+bub/zIvAHz57RDdXMqOCAUUwggFBMAwGA1Ud
+EwQFMAMBAf8wLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRp
+ZmljYXRlMB0GA1UdDgQWBBTS4K/9+Uc2bNwMc2bazv8es4GKmjCB4wYDVR0jBIHb
+MIHYgBT+5OxTJPCVlccQteFEtV05ZVrjfqGBtKSBsTCBrjELMAkGA1UEBhMCVVMx
+EzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1cml0eSBMaWJy
+YXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxEDAOBgNVBAsTB1Jv
+b3QgQ0ExFjAUBgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnht
+bHNlY0BhbGVrc2V5LmNvbYIJAK+ii7kzrdqtMA0GCSqGSIb3DQEBBQUAA0EAGN7+
+p/0NF8rNfgawPc1pEcRnYxDNTtNtY0ybAh052l/jLYThz/0f7klUu4VXTKYY8wnE
++IzoJB6Zzegun8uEqw==
+-----END CERTIFICATE-----
diff --git a/tests/keys/dsa2048key.der b/tests/keys/dsa2048key.der
new file mode 100644
index 0000000..d5848e0
Binary files /dev/null and b/tests/keys/dsa2048key.der differ
diff --git a/tests/keys/dsa2048key.p12 b/tests/keys/dsa2048key.p12
new file mode 100644
index 0000000..f37040a
Binary files /dev/null and b/tests/keys/dsa2048key.p12 differ
diff --git a/tests/keys/dsa2048key.p8-der b/tests/keys/dsa2048key.p8-der
new file mode 100644
index 0000000..ef0acf2
Binary files /dev/null and b/tests/keys/dsa2048key.p8-der differ
diff --git a/tests/keys/dsa2048key.p8-pem b/tests/keys/dsa2048key.p8-pem
new file mode 100644
index 0000000..7881652
--- /dev/null
+++ b/tests/keys/dsa2048key.p8-pem
@@ -0,0 +1,16 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIICkTAbBgkqhkiG9w0BBQMwDgQI91oYgqxFl0sCAggABIICcBrX4V56uQzG60QS
+4Q+zK6lvto6OAN+YSAdJ+f4K2YLXOZbJO6NmUFdN4geQzU2yDuk4I+KE9Ztcp1Zk
++nSmoHe0RGUak/vKftJvnicLOJht38dx+Vz3jqiOZD7d9Pxyhsp8qIOIGwKCm1Vy
+OguvX420USnwpF8Y/VnRfGPco7WjW/hRO68JPSYvteW2RaQSAyJMeUElVr0L5SPV
+NuzriEsUcVLxmO52/Ycld6p92UXH4ztO2XNQ8SLVxr96s8Cd3HGOCv4bIQWERCSo
+RQM3M2btjD2GMq+EfyTDGN7rxxZ4iRMB/f08ZALVqnmQaUj/lFhnxeTTWYnhaiNW
+s9C6v0GPjfwp9kDhDjcno16//UvBJEPEu56lRn9fONsBiWMGj1SHx148oYKudSYQ
+qunTybRDilhy/5cqZmm1JYxgXeDVhLUdjBUuTQN4O/+nCKbYX2GiPAje3C20QQP9
+RgaGo+M0gf2bz8dylPTivMch7aM1zfkE8kqf3gXvQWD7UfUXxiaX90Pdr7LLzm/P
++RWaD+yPKtN0wIQriWsqHGsiRRYW3KTLSlYaYrtmNleiVpdKG/c0et/QaXzrMsXh
+CSSZj438An7YMF9UdtAx5RjYr72USBrNbp8FKuQEo3fj1HNJaEHdrYZfkpEoCNxW
+u77r37/N7SjtgMpmEHT8gLBo+rs7cNmwwK6cH0xtg4PspEu9MjRobfV7QxqSzv+V
+ot9Ynhn3KXSzYgp2xqdOdGUJ+iUqdgQorfa+zU5NDOPqGWNKouKSDzMW/xcmcJui
+Jwc/uoAIMSjX3y7vz4Z/Q4FvLQDHyfvyvqADNt3x06ZCkCsgMg==
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/keys/dsa2048key.pem b/tests/keys/dsa2048key.pem
new file mode 100644
index 0000000..a0b5d42
--- /dev/null
+++ b/tests/keys/dsa2048key.pem
@@ -0,0 +1,34 @@
+-----BEGIN DSA PARAMETERS-----
+MIICLAKCAQEA3h/6T60pCdSKYh+y66Rt6/R4jUoLXisrxTtU7acbcjeWZ0RcKtJM
+/zBBiOPSd+TfOxewOUzQFs6Xt2lWrreS3wLpWp9qcAW+xbVr/+OBJqShBnzEmrPc
+5l16shZWb7Lsz/ymvAgvZpUQkf8QkxSs29ts6mLwrff4+o/6Ta2w61/whJRaFxwR
+tftmmwOVF5AcvppeowRHBSvDEv210G9T1vXO8/5Q1q30hR/BgiB9wWJDcW95Ygw2
+WRqfe0drl+zJfbIFBouci2NOoTVGKw7sUsjruQMBzQ8J/1VEnV2oh9rLR19mYD35
+tyZlDzumE3lHuzza/F2QRlIWGR1xWcHJrwIhAMDsLCKBC/+7J8cGViJbMEqu75ke
+yH2YewaYykGXfLx9AoIBABJdcRq29Jsizyar65NYt/o05QAiALmJMRRiv/DYX6zO
+UiXm2LXMee6XvaPt3b8OcM1QubBCdjKV982Swtc09rS/XrBeWOFJjdsAWxR+e9iK
+e4YshlJW1YCid595LVXZfA2wqnjrOuGz+WA5OK+CO4VlabsZ7GrdXn5brFSe+LMx
+SJY34LcWxQZkNQyvek92zLRAngdTkYOai1li0XHeZxenzv62VnbNeXrMFwdSkuki
+vDCZOLaUgi7Ms07nojstNlbMEkgDT9U2rTdHxkxI9bmpSR5jla7pxuX35qgNvXz4
+jNgB6PIg5eznJlmzdmG5VePw+PIU2fApXpHj1JVxE7I=
+-----END DSA PARAMETERS-----
+-----BEGIN DSA PRIVATE KEY-----
+MIIDVgIBAAKCAQEA3h/6T60pCdSKYh+y66Rt6/R4jUoLXisrxTtU7acbcjeWZ0Rc
+KtJM/zBBiOPSd+TfOxewOUzQFs6Xt2lWrreS3wLpWp9qcAW+xbVr/+OBJqShBnzE
+mrPc5l16shZWb7Lsz/ymvAgvZpUQkf8QkxSs29ts6mLwrff4+o/6Ta2w61/whJRa
+FxwRtftmmwOVF5AcvppeowRHBSvDEv210G9T1vXO8/5Q1q30hR/BgiB9wWJDcW95
+Ygw2WRqfe0drl+zJfbIFBouci2NOoTVGKw7sUsjruQMBzQ8J/1VEnV2oh9rLR19m
+YD35tyZlDzumE3lHuzza/F2QRlIWGR1xWcHJrwIhAMDsLCKBC/+7J8cGViJbMEqu
+75keyH2YewaYykGXfLx9AoIBABJdcRq29Jsizyar65NYt/o05QAiALmJMRRiv/DY
+X6zOUiXm2LXMee6XvaPt3b8OcM1QubBCdjKV982Swtc09rS/XrBeWOFJjdsAWxR+
+e9iKe4YshlJW1YCid595LVXZfA2wqnjrOuGz+WA5OK+CO4VlabsZ7GrdXn5brFSe
++LMxSJY34LcWxQZkNQyvek92zLRAngdTkYOai1li0XHeZxenzv62VnbNeXrMFwdS
+kukivDCZOLaUgi7Ms07nojstNlbMEkgDT9U2rTdHxkxI9bmpSR5jla7pxuX35qgN
+vXz4jNgB6PIg5eznJlmzdmG5VePw+PIU2fApXpHj1JVxE7ICggEBAKodb/VTwrtr
+ZL07BRTeT1i/FzXLdKHJYDyPZGMfBSwyhGdTFuWptlHxXhRc447ePj6s4c+Ab1Sa
+hu+bzZos351k1t2xSPKiabqLdZEYA9npaStlvWMX15BIKbO7dC+6eQCCf5YUPibi
+rhTktczJSx2fAi/g0gr+qtJYsI0g40xzSAjFKgZqE8RZto9PrDt0jweHU2Tcsw2p
+xcWppmifGodALjadeZ5D2Fxuf+PGaqr/kDOmAMWmYAA5ciXzRbDZZ9tpv03w0+d4
+qjD8VTYSXVIlsuYVUyjdxqUqDZHLau7gnDtckyB/ELcpblsa3PzWGzjMvm7m/8yL
+wB8+e0Q3VzICIB9PWz6BWBYKojMpNr4DVTBQnwurewOuPPB7YS0OamXE
+-----END DSA PRIVATE KEY-----
diff --git a/tests/keys/dsa3072cert.der b/tests/keys/dsa3072cert.der
new file mode 100644
index 0000000..d8e82b5
Binary files /dev/null and b/tests/keys/dsa3072cert.der differ
diff --git a/tests/keys/dsa3072cert.pem b/tests/keys/dsa3072cert.pem
new file mode 100644
index 0000000..d23189d
--- /dev/null
+++ b/tests/keys/dsa3072cert.pem
@@ -0,0 +1,160 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 12655831530416757427 (0xafa28bb933addab3)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ Validity
+ Not Before: Mar 5 22:54:53 2015 GMT
+ Not After : Feb 9 22:54:53 2115 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), OU=Test Third Level DSA 3072 Certificate, CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: dsaEncryption
+ pub:
+ 00:c9:8a:8e:a6:4e:08:f4:fe:68:37:5d:30:e8:ce:
+ e2:fa:bf:be:da:dd:c9:60:95:f5:3a:18:de:66:c6:
+ 7f:6b:87:d2:5d:44:87:bb:8f:34:09:9e:f5:3c:ab:
+ 44:e7:a8:59:e6:71:3a:f8:ae:67:63:4b:95:77:fb:
+ 55:c7:20:63:bf:35:40:2e:2f:7c:35:90:f5:b5:2a:
+ 64:dc:fc:7b:98:7a:b5:be:37:9a:66:ed:9c:97:ef:
+ 56:c1:5a:47:f1:d1:34:16:8c:e5:de:0e:7a:12:65:
+ 0d:4d:06:e8:fc:1a:41:db:70:6d:1f:20:22:50:1d:
+ dd:9f:d6:af:40:27:c7:45:30:4f:db:0a:4d:4c:8b:
+ f6:3f:8c:9f:4a:af:40:04:28:f4:30:9e:dd:12:66:
+ 17:61:a8:ea:7a:12:bd:13:22:d6:ec:1e:df:5b:ae:
+ e7:38:e4:69:ae:c9:91:a0:92:7f:b0:10:8e:c6:df:
+ 1e:c1:2f:8f:38:51:aa:65:36:8d:2c:17:8d:ed:5a:
+ 60:77:e5:91:1f:7f:15:8e:60:59:4b:2e:4a:17:4e:
+ 56:67:4a:75:d6:ef:3c:7c:a1:74:ce:21:b9:fd:2b:
+ 7d:c0:f4:d8:17:b8:3a:4c:83:b2:28:b9:48:74:15:
+ 85:76:75:58:ef:36:ac:24:f1:d6:6b:38:df:a9:02:
+ d5:7b:09:0b:cd:ea:9c:de:3e:0f:e8:04:9a:d4:95:
+ 5f:cd:3b:68:f4:06:e6:6f:97:d0:11:bf:62:58:92:
+ b6:6e:7c:5b:66:30:d0:5b:a1:fe:a3:f9:66:c5:9c:
+ 8a:9b:db:b5:c2:2e:5d:5a:ef:44:35:58:a0:af:13:
+ ca:83:dc:b8:99:1f:1f:fb:96:ca:dc:69:35:7c:29:
+ 91:7c:77:99:33:81:74:48:48:5b:39:36:46:05:c6:
+ bb:bf:2e:30:4f:ef:be:c5:2c:7d:b7:41:35:b6:81:
+ eb:4f:4b:dc:84:c5:4c:3d:92:d7:85:68:5e:32:39:
+ 40:79:2a:07:84:95:e6:65:4f:e4
+ P:
+ 00:e3:88:32:2a:76:4d:35:f3:33:d3:e1:50:2b:f3:
+ a9:62:4a:d2:9b:5f:da:5a:5c:cc:dc:1d:4c:58:5b:
+ 27:14:c3:41:d2:bf:b9:15:bc:bf:11:87:ab:01:ff:
+ a4:fc:f3:42:47:e8:fb:d7:d5:49:89:4f:cd:f8:4d:
+ 98:bd:88:62:e8:01:ca:a4:a2:db:e7:b2:16:2f:5b:
+ 5a:14:77:98:6e:bc:9f:f0:38:0c:55:5e:b3:a5:a2:
+ 41:8f:fe:92:64:3d:62:89:62:f2:7f:c7:32:80:dd:
+ 2d:d2:7f:5c:f4:df:18:67:c6:b8:19:ef:49:d1:7d:
+ 4a:f7:88:e1:b6:cb:5e:30:d2:1f:16:1b:f9:72:79:
+ 1a:83:07:5a:af:91:ac:54:5d:78:ea:46:01:82:e7:
+ dc:02:f4:0b:53:dc:71:13:e9:ed:a8:64:1e:6d:81:
+ 76:38:7a:41:0b:35:9b:5f:79:3b:01:cc:7a:c3:f5:
+ 6a:c0:98:e5:2b:87:d1:52:54:8e:81:76:6b:78:c9:
+ 6e:da:cf:7a:59:21:a8:d8:bc:59:51:81:23:ef:69:
+ 15:66:f9:d5:6a:7c:20:9a:e1:e8:b8:4e:5b:86:2a:
+ cb:f6:d2:90:ed:97:6f:60:a0:45:e0:a8:b4:51:a6:
+ 5a:2c:6e:db:3e:02:a7:14:1f:5b:92:30:d9:03:ee:
+ 69:fa:88:71:9c:5a:61:d3:68:12:ff:87:4d:07:da:
+ b0:17:92:d8:70:c1:3c:d6:b3:f6:75:ea:08:9d:5a:
+ 43:f8:09:b5:f7:8d:32:9e:90:48:38:ec:6f:51:51:
+ e4:cc:bf:4f:0d:ef:56:4f:d4:58:a3:6a:a2:b5:6f:
+ 59:7b:40:98:93:32:fa:26:57:1a:08:b4:0b:fc:5b:
+ 89:a1:5e:3e:c5:94:43:9d:56:47:34:12:28:09:74:
+ 27:48:04:6e:ce:76:45:dc:15:cf:14:6b:7a:fa:f5:
+ ce:4a:1d:07:58:61:5d:60:8a:4d:09:00:20:16:f4:
+ 31:b7:e3:1e:4c:c8:e8:8d:3e:0f
+ Q:
+ 00:c2:88:7b:78:1e:fc:98:82:4e:c4:b1:14:1c:60:
+ 35:be:9b:c8:3d:81:77:32:ea:a4:d0:f1:2f:f1:38:
+ b8:59:df
+ G:
+ 00:8b:7a:a1:1c:76:49:78:e5:33:00:c6:0a:72:85:
+ 5f:0b:dc:18:1f:c5:90:3a:e2:d0:d0:07:fa:4c:50:
+ 67:27:17:54:65:59:ef:fa:54:ec:31:66:b6:48:9f:
+ 2a:e9:74:0c:1e:07:d9:2e:b5:b8:ea:61:44:f6:41:
+ 6d:68:33:43:74:21:0f:40:d5:b9:ce:ce:4b:24:49:
+ a0:31:04:72:00:90:8f:67:a9:38:0b:79:01:96:97:
+ 38:be:cf:c5:94:3a:c3:e9:7f:5a:6e:39:11:54:f3:
+ c5:19:7f:b4:ba:15:17:00:84:e8:55:88:5e:63:b7:
+ 98:88:ad:80:39:81:05:6c:0a:1f:92:2e:92:be:92:
+ d9:e3:c7:3b:f3:f7:fd:6b:07:41:db:e0:1c:f0:e2:
+ 5c:64:c4:5a:ff:96:01:d6:42:d0:b3:f6:f0:99:04:
+ 06:ec:b0:f1:c7:2e:9c:46:ed:50:3a:27:82:36:29:
+ 7c:f6:5d:37:b2:32:fd:38:f6:b7:d6:52:fe:12:20:
+ 38:0b:b3:95:f0:72:13:3e:3d:69:2e:3c:52:c8:73:
+ f2:cb:39:8f:28:7a:60:f7:af:23:86:2a:0d:87:a1:
+ f1:85:15:bf:a8:6c:7f:b7:b6:db:15:b1:d4:fb:60:
+ d5:3b:6d:70:0a:35:3f:ae:27:06:e8:d0:04:fd:db:
+ 1f:46:58:36:e4:0b:77:3a:2c:9f:c1:e6:41:29:a4:
+ b6:02:11:ae:9b:45:63:32:7a:92:33:2e:af:19:0c:
+ f7:01:87:94:ab:f5:bf:7c:cc:cc:01:bc:83:00:29:
+ e9:0e:7a:71:55:ec:2b:25:a5:7c:41:7e:30:c1:8a:
+ ea:34:d7:26:8f:d9:43:f9:ac:16:11:92:43:fb:99:
+ 46:3c:70:7a:c6:bd:5e:3d:d0:de:16:7e:b5:67:10:
+ 5a:dd:3a:c9:ab:f6:ff:15:d4:3e:4a:39:ce:04:6e:
+ a2:64:4a:35:51:48:7d:93:da:84:12:22:11:3d:19:
+ c9:5a:23:e0:a8:63:f4:bb:c9:13
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ 94:81:05:72:34:53:0F:51:FC:63:B8:DE:59:F8:AC:6A:BB:F1:46:72
+ X509v3 Authority Key Identifier:
+ keyid:FE:E4:EC:53:24:F0:95:95:C7:10:B5:E1:44:B5:5D:39:65:5A:E3:7E
+ DirName:/C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Root CA/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ serial:AF:A2:8B:B9:33:AD:DA:AD
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 0f:77:ba:95:c6:98:64:a0:d2:1c:81:a6:1b:bc:e8:a9:30:51:
+ 59:da:7a:1e:06:4e:dc:76:bf:50:b5:a8:13:c7:e0:00:21:fe:
+ 82:a9:cc:86:29:4e:7d:ed:ee:e0:2c:89:39:3b:8a:6e:de:6a:
+ 96:e5:b1:70:51:7b:39:11:a0:ae
+-----BEGIN CERTIFICATE-----
+MIIIGjCCB8SgAwIBAgIJAK+ii7kzrdqzMA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEWMBQG
+A1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtz
+ZXkuY29tMCAXDTE1MDMwNTIyNTQ1M1oYDzIxMTUwMjA5MjI1NDUzWjCBzDELMAkG
+A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1
+cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxLjAs
+BgNVBAsTJVRlc3QgVGhpcmQgTGV2ZWwgRFNBIDMwNzIgQ2VydGlmaWNhdGUxFjAU
+BgNVBAMTDUFsZWtzZXkgU2FuaW4xITAfBgkqhkiG9w0BCQEWEnhtbHNlY0BhbGVr
+c2V5LmNvbTCCBMgwggM6BgcqhkjOOAQBMIIDLQKCAYEA44gyKnZNNfMz0+FQK/Op
+YkrSm1/aWlzM3B1MWFsnFMNB0r+5Fby/EYerAf+k/PNCR+j719VJiU/N+E2YvYhi
+6AHKpKLb57IWL1taFHeYbryf8DgMVV6zpaJBj/6SZD1iiWLyf8cygN0t0n9c9N8Y
+Z8a4Ge9J0X1K94jhtsteMNIfFhv5cnkagwdar5GsVF146kYBgufcAvQLU9xxE+nt
+qGQebYF2OHpBCzWbX3k7Acx6w/VqwJjlK4fRUlSOgXZreMlu2s96WSGo2LxZUYEj
+72kVZvnVanwgmuHouE5bhirL9tKQ7ZdvYKBF4Ki0UaZaLG7bPgKnFB9bkjDZA+5p
++ohxnFph02gS/4dNB9qwF5LYcME81rP2deoInVpD+Am1940ynpBIOOxvUVHkzL9P
+De9WT9RYo2qitW9Ze0CYkzL6JlcaCLQL/FuJoV4+xZRDnVZHNBIoCXQnSARuznZF
+3BXPFGt6+vXOSh0HWGFdYIpNCQAgFvQxt+MeTMjojT4PAiEAwoh7eB78mIJOxLEU
+HGA1vpvIPYF3Muqk0PEv8Ti4Wd8CggGBAIt6oRx2SXjlMwDGCnKFXwvcGB/FkDri
+0NAH+kxQZycXVGVZ7/pU7DFmtkifKul0DB4H2S61uOphRPZBbWgzQ3QhD0DVuc7O
+SyRJoDEEcgCQj2epOAt5AZaXOL7PxZQ6w+l/Wm45EVTzxRl/tLoVFwCE6FWIXmO3
+mIitgDmBBWwKH5Iukr6S2ePHO/P3/WsHQdvgHPDiXGTEWv+WAdZC0LP28JkEBuyw
+8ccunEbtUDongjYpfPZdN7Iy/Tj2t9ZS/hIgOAuzlfByEz49aS48Ushz8ss5jyh6
+YPevI4YqDYeh8YUVv6hsf7e22xWx1Ptg1TttcAo1P64nBujQBP3bH0ZYNuQLdzos
+n8HmQSmktgIRrptFYzJ6kjMurxkM9wGHlKv1v3zMzAG8gwAp6Q56cVXsKyWlfEF+
+MMGK6jTXJo/ZQ/msFhGSQ/uZRjxwesa9Xj3Q3hZ+tWcQWt06yav2/xXUPko5zgRu
+omRKNVFIfZPahBIiET0ZyVoj4Khj9LvJEwOCAYYAAoIBgQDJio6mTgj0/mg3XTDo
+zuL6v77a3clglfU6GN5mxn9rh9JdRIe7jzQJnvU8q0TnqFnmcTr4rmdjS5V3+1XH
+IGO/NUAuL3w1kPW1KmTc/HuYerW+N5pm7ZyX71bBWkfx0TQWjOXeDnoSZQ1NBuj8
+GkHbcG0fICJQHd2f1q9AJ8dFME/bCk1Mi/Y/jJ9Kr0AEKPQwnt0SZhdhqOp6Er0T
+ItbsHt9bruc45GmuyZGgkn+wEI7G3x7BL484UaplNo0sF43tWmB35ZEffxWOYFlL
+LkoXTlZnSnXW7zx8oXTOIbn9K33A9NgXuDpMg7IouUh0FYV2dVjvNqwk8dZrON+p
+AtV7CQvN6pzePg/oBJrUlV/NO2j0BuZvl9ARv2JYkrZufFtmMNBbof6j+WbFnIqb
+27XCLl1a70Q1WKCvE8qD3LiZHx/7lsrcaTV8KZF8d5kzgXRISFs5NkYFxru/LjBP
+777FLH23QTW2getPS9yExUw9kteFaF4yOUB5KgeEleZlT+SjggFFMIIBQTAMBgNV
+HRMEBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0
+aWZpY2F0ZTAdBgNVHQ4EFgQUlIEFcjRTD1H8Y7jeWfisarvxRnIwgeMGA1UdIwSB
+2zCB2IAU/uTsUyTwlZXHELXhRLVdOWVa436hgbSkgbEwga4xCzAJBgNVBAYTAlVT
+MRMwEQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQKEzRYTUwgU2VjdXJpdHkgTGli
+cmFyeSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94bWxzZWMpMRAwDgYDVQQLEwdS
+b290IENBMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmluMSEwHwYJKoZIhvcNAQkBFhJ4
+bWxzZWNAYWxla3NleS5jb22CCQCvoou5M63arTANBgkqhkiG9w0BAQUFAANBAA93
+upXGmGSg0hyBphu86KkwUVnaeh4GTtx2v1C1qBPH4AAh/oKpzIYpTn3t7uAsiTk7
+im7eapblsXBRezkRoK4=
+-----END CERTIFICATE-----
diff --git a/tests/keys/dsa3072key.der b/tests/keys/dsa3072key.der
new file mode 100644
index 0000000..c3cfe1c
Binary files /dev/null and b/tests/keys/dsa3072key.der differ
diff --git a/tests/keys/dsa3072key.p12 b/tests/keys/dsa3072key.p12
new file mode 100644
index 0000000..39a71a1
Binary files /dev/null and b/tests/keys/dsa3072key.p12 differ
diff --git a/tests/keys/dsa3072key.p8-der b/tests/keys/dsa3072key.p8-der
new file mode 100644
index 0000000..19b7f73
Binary files /dev/null and b/tests/keys/dsa3072key.p8-der differ
diff --git a/tests/keys/dsa3072key.p8-pem b/tests/keys/dsa3072key.p8-pem
new file mode 100644
index 0000000..4f8be16
--- /dev/null
+++ b/tests/keys/dsa3072key.p8-pem
@@ -0,0 +1,22 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIIDkTAbBgkqhkiG9w0BBQMwDgQI/mbFSvEwrg0CAggABIIDcJaVzTBawa3Q2z81
+PrWS+W4m/puvKonLKeVi1yRwtpcowD7T4UDPI7Ymmm4snNnbGT5MgHmYNNedm/30
+6U4JcROowefIlyHEHL4CKFkQAPccnM0QJ44Djj2OfLKMocmL24u+bSthKTmFAdo5
+JnJc0KNc715eJKlW6UMFhEML5xxFjymvluohxOzO/bNQwuE4S85ICWUvd6JzZ97l
+9Utz7UNg7UyRBPuXX6YtjA0s+sjaA1TS6eFgsX2ZxKelOpjooqdSAY7dpTx0/sG8
+bPaJSAuEfDfcbQH02smB5CoW5qf5oBecrbiAys/PSUAhf9nR7uLPD3rs8dF5szJA
+sXED4NvC8FXlHPWcyfxIRXRv9+5Q0bSKidcQRVvxOrMQyAcSkkceZuRULYtjaQDd
+4V/snKG/6+tHdlchEObuI0qZOCjlRdVso/4A3l7ApS++FGCsjBE3TUFxQZo/JMdE
+iOAG+G/tFq6O8OSWngK/k4BdfyPEHpZnUVDvqzzBPH03WJsQttzSDxwuYANk9996
+xt732wpo15FQejOWFwDn9g0wMKhuTDN92QIKv6JlcZbIICA/VN83S5/hQaGCjA+l
+gnryloZd8cmPfrIGzfCg8IpE8Iz3wPEfSv5UsXVzXIwPYU6Nrj0B4eJ7wV9PbPuE
+vCElu7Z/Q4/27OztJVoa+McVgZd9peZjLDNwgPENdDAnCDxvUz4IXqvAuoGTL35A
+pNUvpRPx1ITT1l4bvZBEnsPpMmiTtmt3IYtNN2nhBPzVo3hStIuATO19LDCUdSsA
+MPMObQaiofEpxuZ0LGR3Kajw+29R2u+B/P5/6FVVLkgLuXsT4atOxgAh4wyQ77dU
+tPcYRGFFI675a/59oRtZRy2MgDbwJuBiV0hNi1O/2V947Cek1c9EYvLNijiVtBkf
+bSVjRZ2hHCuk8t+FIW3XvGQGXHRqsjswJCgQXv/O+KeZsGbCxAvRkqyIEChAATg2
+OUoUK3VOQmf6pg07OZIKvALF3NhhAJTiP9TyFs8AnUa/ILnBqA/kKGy+uUi9Nn2z
+Y8AEWvr21H45Y6HA51zKRR66RkrZXSMuMcEFo1rdja/SOfMpilI9RqhBnGCsLqiq
++h39z8KWmi3/VrIGKSJ5rQE90nzGJa8lU6QFHi6hC92X76fDL2IUFU0WcJvimLlP
+3Eb3jHQ=
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/tests/keys/dsa3072key.pem b/tests/keys/dsa3072key.pem
new file mode 100644
index 0000000..3b2d3e5
--- /dev/null
+++ b/tests/keys/dsa3072key.pem
@@ -0,0 +1,48 @@
+-----BEGIN DSA PARAMETERS-----
+MIIDLQKCAYEA44gyKnZNNfMz0+FQK/OpYkrSm1/aWlzM3B1MWFsnFMNB0r+5Fby/
+EYerAf+k/PNCR+j719VJiU/N+E2YvYhi6AHKpKLb57IWL1taFHeYbryf8DgMVV6z
+paJBj/6SZD1iiWLyf8cygN0t0n9c9N8YZ8a4Ge9J0X1K94jhtsteMNIfFhv5cnka
+gwdar5GsVF146kYBgufcAvQLU9xxE+ntqGQebYF2OHpBCzWbX3k7Acx6w/VqwJjl
+K4fRUlSOgXZreMlu2s96WSGo2LxZUYEj72kVZvnVanwgmuHouE5bhirL9tKQ7Zdv
+YKBF4Ki0UaZaLG7bPgKnFB9bkjDZA+5p+ohxnFph02gS/4dNB9qwF5LYcME81rP2
+deoInVpD+Am1940ynpBIOOxvUVHkzL9PDe9WT9RYo2qitW9Ze0CYkzL6JlcaCLQL
+/FuJoV4+xZRDnVZHNBIoCXQnSARuznZF3BXPFGt6+vXOSh0HWGFdYIpNCQAgFvQx
+t+MeTMjojT4PAiEAwoh7eB78mIJOxLEUHGA1vpvIPYF3Muqk0PEv8Ti4Wd8CggGB
+AIt6oRx2SXjlMwDGCnKFXwvcGB/FkDri0NAH+kxQZycXVGVZ7/pU7DFmtkifKul0
+DB4H2S61uOphRPZBbWgzQ3QhD0DVuc7OSyRJoDEEcgCQj2epOAt5AZaXOL7PxZQ6
+w+l/Wm45EVTzxRl/tLoVFwCE6FWIXmO3mIitgDmBBWwKH5Iukr6S2ePHO/P3/WsH
+QdvgHPDiXGTEWv+WAdZC0LP28JkEBuyw8ccunEbtUDongjYpfPZdN7Iy/Tj2t9ZS
+/hIgOAuzlfByEz49aS48Ushz8ss5jyh6YPevI4YqDYeh8YUVv6hsf7e22xWx1Ptg
+1TttcAo1P64nBujQBP3bH0ZYNuQLdzosn8HmQSmktgIRrptFYzJ6kjMurxkM9wGH
+lKv1v3zMzAG8gwAp6Q56cVXsKyWlfEF+MMGK6jTXJo/ZQ/msFhGSQ/uZRjxwesa9
+Xj3Q3hZ+tWcQWt06yav2/xXUPko5zgRuomRKNVFIfZPahBIiET0ZyVoj4Khj9LvJ
+Ew==
+-----END DSA PARAMETERS-----
+-----BEGIN DSA PRIVATE KEY-----
+MIIE1wIBAAKCAYEA44gyKnZNNfMz0+FQK/OpYkrSm1/aWlzM3B1MWFsnFMNB0r+5
+Fby/EYerAf+k/PNCR+j719VJiU/N+E2YvYhi6AHKpKLb57IWL1taFHeYbryf8DgM
+VV6zpaJBj/6SZD1iiWLyf8cygN0t0n9c9N8YZ8a4Ge9J0X1K94jhtsteMNIfFhv5
+cnkagwdar5GsVF146kYBgufcAvQLU9xxE+ntqGQebYF2OHpBCzWbX3k7Acx6w/Vq
+wJjlK4fRUlSOgXZreMlu2s96WSGo2LxZUYEj72kVZvnVanwgmuHouE5bhirL9tKQ
+7ZdvYKBF4Ki0UaZaLG7bPgKnFB9bkjDZA+5p+ohxnFph02gS/4dNB9qwF5LYcME8
+1rP2deoInVpD+Am1940ynpBIOOxvUVHkzL9PDe9WT9RYo2qitW9Ze0CYkzL6Jlca
+CLQL/FuJoV4+xZRDnVZHNBIoCXQnSARuznZF3BXPFGt6+vXOSh0HWGFdYIpNCQAg
+FvQxt+MeTMjojT4PAiEAwoh7eB78mIJOxLEUHGA1vpvIPYF3Muqk0PEv8Ti4Wd8C
+ggGBAIt6oRx2SXjlMwDGCnKFXwvcGB/FkDri0NAH+kxQZycXVGVZ7/pU7DFmtkif
+Kul0DB4H2S61uOphRPZBbWgzQ3QhD0DVuc7OSyRJoDEEcgCQj2epOAt5AZaXOL7P
+xZQ6w+l/Wm45EVTzxRl/tLoVFwCE6FWIXmO3mIitgDmBBWwKH5Iukr6S2ePHO/P3
+/WsHQdvgHPDiXGTEWv+WAdZC0LP28JkEBuyw8ccunEbtUDongjYpfPZdN7Iy/Tj2
+t9ZS/hIgOAuzlfByEz49aS48Ushz8ss5jyh6YPevI4YqDYeh8YUVv6hsf7e22xWx
+1Ptg1TttcAo1P64nBujQBP3bH0ZYNuQLdzosn8HmQSmktgIRrptFYzJ6kjMurxkM
+9wGHlKv1v3zMzAG8gwAp6Q56cVXsKyWlfEF+MMGK6jTXJo/ZQ/msFhGSQ/uZRjxw
+esa9Xj3Q3hZ+tWcQWt06yav2/xXUPko5zgRuomRKNVFIfZPahBIiET0ZyVoj4Khj
+9LvJEwKCAYEAyYqOpk4I9P5oN10w6M7i+r++2t3JYJX1OhjeZsZ/a4fSXUSHu480
+CZ71PKtE56hZ5nE6+K5nY0uVd/tVxyBjvzVALi98NZD1tSpk3Px7mHq1vjeaZu2c
+l+9WwVpH8dE0Fozl3g56EmUNTQbo/BpB23BtHyAiUB3dn9avQCfHRTBP2wpNTIv2
+P4yfSq9ABCj0MJ7dEmYXYajqehK9EyLW7B7fW67nOORprsmRoJJ/sBCOxt8ewS+P
+OFGqZTaNLBeN7Vpgd+WRH38VjmBZSy5KF05WZ0p11u88fKF0ziG5/St9wPTYF7g6
+TIOyKLlIdBWFdnVY7zasJPHWazjfqQLVewkLzeqc3j4P6ASa1JVfzTto9Abmb5fQ
+Eb9iWJK2bnxbZjDQW6H+o/lmxZyKm9u1wi5dWu9ENVigrxPKg9y4mR8f+5bK3Gk1
+fCmRfHeZM4F0SEhbOTZGBca7vy4wT+++xSx9t0E1toHrT0vchMVMPZLXhWheMjlA
+eSoHhJXmZU/kAiAJlxSx721HQx7dCU+U3FcT28sdzvwYwd2Xt14n8vyo3w==
+-----END DSA PRIVATE KEY-----
diff --git a/tests/keys/ecdsa-secp256k1-cert.der b/tests/keys/ecdsa-secp256k1-cert.der
new file mode 100644
index 0000000..a26dbb1
Binary files /dev/null and b/tests/keys/ecdsa-secp256k1-cert.der differ
diff --git a/tests/keys/ecdsa-secp256k1-cert.pem b/tests/keys/ecdsa-secp256k1-cert.pem
new file mode 100644
index 0000000..14f0996
--- /dev/null
+++ b/tests/keys/ecdsa-secp256k1-cert.pem
@@ -0,0 +1,58 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 12655831530416757428 (0xafa28bb933addab4)
+ Signature Algorithm: sha1WithRSAEncryption
+ Issuer: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ Validity
+ Not Before: Jan 29 17:26:12 2016 GMT
+ Not After : Jan 5 17:26:12 2116 GMT
+ Subject: C=US, ST=California, O=XML Security Library (http://www.aleksey.com/xmlsec), CN=ECDSA secp256k1 Key/emailAddress=xmlsec at aleksey.com
+ Subject Public Key Info:
+ Public Key Algorithm: id-ecPublicKey
+ Public-Key: (256 bit)
+ pub:
+ 04:67:db:9d:7a:d1:ed:b8:c6:06:c2:ba:2c:8a:36:
+ 2e:43:0f:cf:d3:a1:a9:6e:94:e0:45:30:84:0f:b4:
+ c1:b5:db:2f:34:6e:7e:e6:9a:52:e1:87:92:19:7d:
+ 2c:36:b9:d7:6f:1d:d7:6d:3d:8f:6e:62:5a:0c:8b:
+ 42:8c:60:30:b3
+ ASN1 OID: secp256k1
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:TRUE
+ Netscape Comment:
+ OpenSSL Generated Certificate
+ X509v3 Subject Key Identifier:
+ 3C:95:C7:89:6D:47:4A:A7:70:6E:E7:29:11:28:B5:25:E2:09:1C:A0
+ X509v3 Authority Key Identifier:
+ keyid:FE:E4:EC:53:24:F0:95:95:C7:10:B5:E1:44:B5:5D:39:65:5A:E3:7E
+ DirName:/C=US/ST=California/O=XML Security Library (http://www.aleksey.com/xmlsec)/OU=Root CA/CN=Aleksey Sanin/emailAddress=xmlsec at aleksey.com
+ serial:AF:A2:8B:B9:33:AD:DA:AD
+
+ Signature Algorithm: sha1WithRSAEncryption
+ 5c:1e:03:4d:d0:a3:77:b7:06:f5:38:31:3d:f0:9e:c9:fb:55:
+ 9b:a4:4c:8e:b5:7b:0c:ab:18:24:2c:84:e7:39:9e:0d:d3:b8:
+ d7:cd:70:0b:b0:87:00:e7:4e:41:c4:6a:b6:f0:bc:6d:ce:98:
+ 92:25:fb:20:ea:81:5b:53:0f:d3
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAyagAwIBAgIJAK+ii7kzrdq0MA0GCSqGSIb3DQEBBQUAMIGcMQswCQYD
+VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTE9MDsGA1UEChM0WE1MIFNlY3Vy
+aXR5IExpYnJhcnkgKGh0dHA6Ly93d3cuYWxla3NleS5jb20veG1sc2VjKTEWMBQG
+A1UEAxMNQWxla3NleSBTYW5pbjEhMB8GCSqGSIb3DQEJARYSeG1sc2VjQGFsZWtz
+ZXkuY29tMCAXDTE2MDEyOTE3MjYxMloYDzIxMTYwMTA1MTcyNjEyWjCBojELMAkG
+A1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExPTA7BgNVBAoTNFhNTCBTZWN1
+cml0eSBMaWJyYXJ5IChodHRwOi8vd3d3LmFsZWtzZXkuY29tL3htbHNlYykxHDAa
+BgNVBAMTE0VDRFNBIHNlY3AyNTZrMSBLZXkxITAfBgkqhkiG9w0BCQEWEnhtbHNl
+Y0BhbGVrc2V5LmNvbTBWMBAGByqGSM49AgEGBSuBBAAKA0IABGfbnXrR7bjGBsK6
+LIo2LkMPz9OhqW6U4EUwhA+0wbXbLzRufuaaUuGHkhl9LDa5128d1209j25iWgyL
+QoxgMLOjggFFMIIBQTAMBgNVHRMEBTADAQH/MCwGCWCGSAGG+EIBDQQfFh1PcGVu
+U1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUPJXHiW1HSqdwbucp
+ESi1JeIJHKAwgeMGA1UdIwSB2zCB2IAU/uTsUyTwlZXHELXhRLVdOWVa436hgbSk
+gbEwga4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMT0wOwYDVQQK
+EzRYTUwgU2VjdXJpdHkgTGlicmFyeSAoaHR0cDovL3d3dy5hbGVrc2V5LmNvbS94
+bWxzZWMpMRAwDgYDVQQLEwdSb290IENBMRYwFAYDVQQDEw1BbGVrc2V5IFNhbmlu
+MSEwHwYJKoZIhvcNAQkBFhJ4bWxzZWNAYWxla3NleS5jb22CCQCvoou5M63arTAN
+BgkqhkiG9w0BAQUFAANBAFweA03Qo3e3BvU4MT3wnsn7VZukTI61ewyrGCQshOc5
+ng3TuNfNcAuwhwDnTkHEarbwvG3OmJIl+yDqgVtTD9M=
+-----END CERTIFICATE-----
diff --git a/tests/keys/ecdsa-secp256k1-key.der b/tests/keys/ecdsa-secp256k1-key.der
new file mode 100644
index 0000000..0ac4989
Binary files /dev/null and b/tests/keys/ecdsa-secp256k1-key.der differ
diff --git a/tests/keys/ecdsa-secp256k1-key.p12 b/tests/keys/ecdsa-secp256k1-key.p12
new file mode 100644
index 0000000..3ece815
Binary files /dev/null and b/tests/keys/ecdsa-secp256k1-key.p12 differ
diff --git a/tests/keys/ecdsa-secp256k1-key.p8-der b/tests/keys/ecdsa-secp256k1-key.p8-der
new file mode 100644
index 0000000..aa333b8
Binary files /dev/null and b/tests/keys/ecdsa-secp256k1-key.p8-der differ
diff --git a/tests/keys/ecdsa-secp256k1-key.pem b/tests/keys/ecdsa-secp256k1-key.pem
new file mode 100644
index 0000000..9e6cc2c
--- /dev/null
+++ b/tests/keys/ecdsa-secp256k1-key.pem
@@ -0,0 +1,5 @@
+-----BEGIN EC PRIVATE KEY-----
+MHQCAQEEINGkcANg91R1Kvm7ZZ5vmWCKK2SsZhGxYfVn4Px2S7xcoAcGBSuBBAAK
+oUQDQgAEZ9udetHtuMYGwrosijYuQw/P06GpbpTgRTCED7TBtdsvNG5+5ppS4YeS
+GX0sNrnXbx3XbT2PbmJaDItCjGAwsw==
+-----END EC PRIVATE KEY-----
diff --git a/tests/keys/gost2012_256.pem b/tests/keys/gost2012_256.pem
new file mode 100644
index 0000000..d70326c
--- /dev/null
+++ b/tests/keys/gost2012_256.pem
@@ -0,0 +1,8 @@
+-----BEGIN CERTIFICATE-----
+MIIBRzCB86ADAgECAhDYvceOSjlEUQPqYpNAPDZlMAwGCCqFAwcBAQMCBQAwITEfMB0GA1UEAxMW
+Z29zdC0yMDEyLTI1Ni10ZXN0LTAwMTAeFw0xMzEyMDkxNDIzMTlaFw0zOTEyMzEyMzU5NTlaMCEx
+HzAdBgNVBAMTFmdvc3QtMjAxMi0yNTYtdGVzdC0wMDEwZjAfBggqhQMHAQEBATATBgcqhQMCAiMB
+BggqhQMHAQECAgNDAARAd6J9ff29w6XQsUDdggB1LCYM2oDRrlrg3mPZB+NXNsyZmO1WHCDHw01U
+IW+Jq9ReLxWCkHYA+TTMfmciE1F0rjAMBggqhQMHAQEDAgUAA0EAPoJj9VFY7DeVWDWuoH7Jrv9x
+UNMFCxSYPVn0Tpf40jVBu4+46sHuS8ShK+sqJu5rGEQse2UhAIzMBvw8AfHysA==
+-----END CERTIFICATE-----
diff --git a/tests/keys/gost2012_512.pem b/tests/keys/gost2012_512.pem
new file mode 100644
index 0000000..e1dc33b
--- /dev/null
+++ b/tests/keys/gost2012_512.pem
@@ -0,0 +1,11 @@
+-----BEGIN CERTIFICATE-----
+MIIBzjCCATigAwIBAgIQaLzR+6Byrz72SsBV3IMTCjAMBggqhQMHAQEDAwUAMCExHzAdBgNVBAMT
+Fmdvc3QtMjAxMi01MTItdGVzdC0wMDMwHhcNMTMxMjA5MTQzMjU4WhcNMzkxMjMxMjM1OTU5WjAh
+MR8wHQYDVQQDExZnb3N0LTIwMTItNTEyLXRlc3QtMDAzMIGqMCEGCCqFAwcBAQECMBUGCSqFAwcB
+AgECAQYIKoUDBwEBAgMDgYQABIGAYU+aJU4/ouaeqbL6A3a1KeiCaurafF6NwsCX4W/tjSHOTaTv
+she3MqCDYGgWC6OQ1a8RWYunTtI8Tf0wmUVPO4ltgDCg4qwnJsKMzNWnDRK+OWNuXE7kJuFCjnM0
+TTbdP8DlXyXO9v9D17613FcBnrz189UkxpSGZp7M+c81B64wDAYIKoUDBwEBAwMFAAOBgQB7rFkF
+r9uG2WTVkebjOXRuxNkL1orfzo6VRO4JhHARjfjQvHEq892f2iUEsJxO//xjgFxBQx3h6gAsaNZZ
+zKXzsuxpfrwrTR/tAXz2qzJiMR0iY4JMp6EG2GkjsIymUt+JZGf0kjVR7s3zDih3mc9S5bqF0aLX
+cL+4H4JZm19yCw==
+-----END CERTIFICATE-----
diff --git a/tests/testDSig.sh b/tests/testDSig.sh
index aed6a02..fa4836b 100755
--- a/tests/testDSig.sh
+++ b/tests/testDSig.sh
@@ -303,6 +303,15 @@ execDSigTest $res_success \
"--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
execDSigTest $res_success \
+ "aleksey-xmldsig-01" \
+ "enveloping-sha256-rsa-sha256-relationship" \
+ "sha256 rsa-sha256 relationship" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/rsakey$priv_key_suffix.$priv_key_format --pwd secret123" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+execDSigTest $res_success \
"" \
"aleksey-xmldsig-01/enveloping-sha384-rsa-sha384" \
"sha384 rsa-sha384" \
@@ -320,6 +329,51 @@ execDSigTest $res_success \
"$priv_key_option $topfolder/keys/largersakey$priv_key_suffix.$priv_key_format --pwd secret123" \
"--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha256-dsa2048-sha256" \
+ "sha256 dsa-sha256" \
+ "dsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/dsa2048key$priv_key_suffix.$priv_key_format --pwd secret123" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha256-dsa3072-sha256" \
+ "sha256 dsa-sha256" \
+ "dsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/dsa3072key$priv_key_suffix.$priv_key_format --pwd secret123" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha1-ecdsa-sha1" \
+ "sha1 ecdsa-sha1" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/ecdsa-secp256k1-key.$priv_key_format --pwd secret123" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha256-ecdsa-sha256" \
+ "sha256 ecdsa-sha256" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/ecdsa-secp256k1-key.$priv_key_format --pwd secret123" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
+execDSigTest $res_success \
+ "" \
+ "aleksey-xmldsig-01/enveloping-sha512-ecdsa-sha512" \
+ "sha512 ecdsa-sha512" \
+ "rsa x509" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509" \
+ "$priv_key_option $topfolder/keys/ecdsa-secp256k1-key.$priv_key_format --pwd secret123" \
+ "--trusted-$cert_format $topfolder/keys/cacert.$cert_format --enabled-key-data x509"
+
#
# To generate expired cert run the following command
# > xmlsec1 sign --pkcs12 tests/keys/expiredkey.p12 --pwd secret123 --output out.xml ./tests/aleksey-xmldsig-01/enveloping-expired-cert.tmpl
@@ -788,15 +842,17 @@ execDSigTest $res_success \
# test dynamic signature
#
##########################################################################
+if [ -n "$XMLSEC_TEST_NAME" -a "$XMLSEC_TEST_NAME" = "dsig-dynamic" ]; then
echo "Dynamic signature template"
printf " Create new signature "
-echo "$xmlsec_app sign-tmpl $xmlsec_params --keys-file $keysfile --output $tmpfile" >> $logfile
+echo "$VALGRIND $xmlsec_app sign-tmpl $xmlsec_params --keys-file $keysfile --output $tmpfile" >> $logfile
$VALGRIND $xmlsec_app sign-tmpl $xmlsec_params --keys-file $keysfile --output $tmpfile >> $logfile 2>> $logfile
printRes $res_success $?
printf " Verify new signature "
-echo "$xmlsec_app verify --keys-file $keysfile $tmpfile" >> $logfile
+echo "$VALGRIND $xmlsec_app verify --keys-file $keysfile $tmpfile" >> $logfile
$VALGRIND $xmlsec_app verify $xmlsec_params --keys-file $keysfile $tmpfile >> $logfile 2>> $logfile
printRes $res_success $?
+fi
##########################################################################
diff --git a/tests/testEnc.sh b/tests/testEnc.sh
index 54d1ca8..9970e33 100755
--- a/tests/testEnc.sh
+++ b/tests/testEnc.sh
@@ -366,15 +366,17 @@ execEncTest $res_success \
# test dynamicencryption
#
##########################################################################
+if [ -n "$XMLSEC_TEST_NAME" -a "$XMLSEC_TEST_NAME" = "enc-dynamic" ]; then
echo "Dynamic encryption template"
printf " Encrypt template "
-echo "$xmlsec_app encrypt-tmpl $xmlsec_params --keys-file $keysfile --output $tmpfile" >> $logfile
+echo "$VALGRIND $xmlsec_app encrypt-tmpl $xmlsec_params --keys-file $keysfile --output $tmpfile" >> $logfile
$VALGRIND $xmlsec_app encrypt-tmpl $xmlsec_params --keys-file $keysfile --output $tmpfile >> $logfile 2>> $logfile
printRes $res_success $?
printf " Decrypt document "
-echo "$xmlsec_app decrypt $xmlsec_params $keysfile $tmpfile" >> $logfile
+echo "$VALGRIND $xmlsec_app decrypt $xmlsec_params $keysfile $tmpfile" >> $logfile
$VALGRIND $xmlsec_app decrypt $xmlsec_params --keys-file $keysfile $tmpfile >> $logfile 2>> $logfile
printRes $res_success $?
+fi
##########################################################################
diff --git a/tests/testXKMS.sh b/tests/testXKMS.sh
deleted file mode 100755
index be972dd..0000000
--- a/tests/testXKMS.sh
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/bin/sh
-#
-# This script needs to be called from testrun.sh script
-#
-
-##########################################################################
-##########################################################################
-##########################################################################
-echo "--- testXKMS started for xmlsec-$crypto library ($timestamp)"
-echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
-echo "--- log file is $logfile"
-echo "--- testXKMS started for xmlsec-$crypto library ($timestamp)" >> $logfile
-echo "--- LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> $logfile
-
-##########################################################################
-##########################################################################
-##########################################################################
-echo "--------- Positive Testing ----------"
-
-execXkmsServerRequestTest $res_success \
- "" \
- "aleksey-xkms-01/locate-example-1" \
- "" \
- "no-match" \
- "--xkms-service http://www.example.com/xkms"
-
-execXkmsServerRequestTest $res_success \
- "" \
- "aleksey-xkms-01/locate-example-1" \
- "" \
- "bad-service" \
- "--xkms-service http://www.example.com/xkms-bad-service"
-
-execXkmsServerRequestTest $res_success \
- "" \
- "aleksey-xkms-01/locate-example-2" \
- "" \
- "no-match" \
- "--xkms-service http://www.example.com/xkms"
-
-execXkmsServerRequestTest $res_success \
- "" \
- "aleksey-xkms-01/validate-example-1" \
- "" \
- "no-match" \
- "--xkms-service http://www.example.com/xkms"
-
-execXkmsServerRequestTest $res_success \
- "" \
- "aleksey-xkms-01/locate-opaque-client-data" \
- "" \
- "no-match" \
- "--xkms-service http://www.example.com/xkms"
-
-execXkmsServerRequestTest $res_success \
- "" \
- "aleksey-xkms-01/compound-example-1" \
- "" \
- "no-match" \
- "--xkms-service http://www.example.com/xkms"
-
-execXkmsServerRequestTest $res_success \
- "" \
- "aleksey-xkms-01/status-request" \
- "" \
- "success" \
- "--xkms-service http://www.example.com/xkms"
-
-execXkmsServerRequestTest $res_success \
- "" \
- "aleksey-xkms-01/bad-request-name" \
- "" \
- "not-supported" \
- "--xkms-service http://www.example.com/xkms"
-
-execXkmsServerRequestTest $res_success \
- "" \
- "aleksey-xkms-01/soap12-locate-example-1" \
- "" \
- "no-match" \
- "--xkms-service http://www.example.com/xkms --xkms-format soap-1.2"
-
-execXkmsServerRequestTest $res_success \
- "" \
- "aleksey-xkms-01/soap11-locate-example-1" \
- "" \
- "unsupported" \
- "--xkms-service http://www.example.com/xkms --xkms-format soap-1.2"
-
-execXkmsServerRequestTest $res_success \
- "" \
- "aleksey-xkms-01/soap12-bad-request-name" \
- "" \
- "msg-invalid" \
- "--xkms-service http://www.example.com/xkms --xkms-format soap-1.2"
-
-execXkmsServerRequestTest $res_success \
- "" \
- "aleksey-xkms-01/soap11-locate-example-1" \
- "" \
- "no-match" \
- "--xkms-service http://www.example.com/xkms --xkms-format soap-1.1"
-
-execXkmsServerRequestTest $res_success \
- "" \
- "aleksey-xkms-01/soap12-locate-example-1" \
- "" \
- "unsupported" \
- "--xkms-service http://www.example.com/xkms --xkms-format soap-1.1"
-
-execXkmsServerRequestTest $res_success \
- "" \
- "aleksey-xkms-01/soap11-bad-request-name" \
- "" \
- "msg-invalid" \
- "--xkms-service http://www.example.com/xkms --xkms-format soap-1.1"
-
-##########################################################################
-##########################################################################
-##########################################################################
-echo "--------- Negative Testing ----------"
-
-##########################################################################
-##########################################################################
-##########################################################################
-echo "--- testXKMS finished" >> $logfile
-echo "--- testXKMS finished"
-echo "--- detailed log is written to $logfile"
-
diff --git a/tests/testrun.sh b/tests/testrun.sh
index c1f629b..9e94423 100755
--- a/tests/testrun.sh
+++ b/tests/testrun.sh
@@ -144,6 +144,10 @@ execKeysTest() {
key_name="$3"
alg_name="$4"
+ if [ -n "$XMLSEC_TEST_NAME" -a "$XMLSEC_TEST_NAME" != "$key_name" ]; then
+ return
+ fi
+
# prepare
rm -f $tmpfile
old_pwd=`pwd`
@@ -176,7 +180,7 @@ execKeysTest() {
if [ -f $keysfile ] ; then
params="$params --keys-file $keysfile"
fi
- echo "$xmlsec_app keys $params $xmlsec_params $keysfile" >> $logfile
+ echo "$VALGRIND $xmlsec_app keys $params $xmlsec_params $keysfile" >> $logfile
$VALGRIND $xmlsec_app keys $params $xmlsec_params $keysfile >> $logfile 2>> $logfile
printRes $expected_res $?
@@ -198,6 +202,10 @@ execDSigTest() {
params2="$7"
params3="$8"
+ if [ -n "$XMLSEC_TEST_NAME" -a "$XMLSEC_TEST_NAME" != "$filename" ]; then
+ return
+ fi
+
# prepare
rm -f $tmpfile
old_pwd=`pwd`
@@ -251,21 +259,21 @@ execDSigTest() {
# run tests
if [ -n "$params1" ] ; then
printf " Verify existing signature "
- echo "$xmlsec_app verify $xmlsec_params $params1 $full_file.xml" >> $logfile
+ echo "$VALGRIND $xmlsec_app verify $xmlsec_params $params1 $full_file.xml" >> $logfile
$VALGRIND $xmlsec_app verify $xmlsec_params $params1 $full_file.xml >> $logfile 2>> $logfile
printRes $expected_res $?
fi
if [ -n "$params2" -a -z "$PERF_TEST" ] ; then
printf " Create new signature "
- echo "$xmlsec_app sign $xmlsec_params $params2 --output $tmpfile $full_file.tmpl" >> $logfile
+ echo "$VALGRIND $xmlsec_app sign $xmlsec_params $params2 --output $tmpfile $full_file.tmpl" >> $logfile
$VALGRIND $xmlsec_app sign $xmlsec_params $params2 --output $tmpfile $full_file.tmpl >> $logfile 2>> $logfile
printRes $expected_res $?
fi
if [ -n "$params3" -a -z "$PERF_TEST" ] ; then
printf " Verify new signature "
- echo "$xmlsec_app verify $xmlsec_params $params3 $tmpfile" >> $logfile
+ echo "$VALGRIND $xmlsec_app verify $xmlsec_params $params3 $tmpfile" >> $logfile
$VALGRIND $xmlsec_app verify $xmlsec_params $params3 $tmpfile >> $logfile 2>> $logfile
printRes $expected_res $?
fi
@@ -287,6 +295,10 @@ execEncTest() {
params2="$6"
params3="$7"
+ if [ -n "$XMLSEC_TEST_NAME" -a "$XMLSEC_TEST_NAME" != "$filename" ]; then
+ return
+ fi
+
# prepare
rm -f $tmpfile $tmpfile.2
old_pwd=`pwd`
@@ -326,7 +338,7 @@ execEncTest() {
if [ -n "$params1" ] ; then
rm -f $tmpfile
printf " Decrypt existing document "
- echo "$xmlsec_app decrypt $xmlsec_params $params1 $full_file.xml" >> $logfile
+ echo "$VALGRIND $xmlsec_app decrypt $xmlsec_params $params1 $full_file.xml" >> $logfile
$VALGRIND $xmlsec_app decrypt $xmlsec_params $params1 $full_file.xml > $tmpfile 2>> $logfile
res=$?
if [ $res = 0 ]; then
@@ -340,7 +352,7 @@ execEncTest() {
if [ -n "$params2" -a -z "$PERF_TEST" ] ; then
rm -f $tmpfile
printf " Encrypt document "
- echo "$xmlsec_app encrypt $xmlsec_params $params2 --output $tmpfile $full_file.tmpl" >> $logfile
+ echo "$VALGRIND $xmlsec_app encrypt $xmlsec_params $params2 --output $tmpfile $full_file.tmpl" >> $logfile
$VALGRIND $xmlsec_app encrypt $xmlsec_params $params2 --output $tmpfile $full_file.tmpl >> $logfile 2>> $logfile
printRes $expected_res $?
fi
@@ -348,7 +360,7 @@ execEncTest() {
if [ -n "$params3" -a -z "$PERF_TEST" ] ; then
rm -f $tmpfile.2
printf " Decrypt new document "
- echo "$xmlsec_app decrypt $xmlsec_params $params3 --output $tmpfile.2 $tmpfile" >> $logfile
+ echo "$VALGRIND $xmlsec_app decrypt $xmlsec_params $params3 --output $tmpfile.2 $tmpfile" >> $logfile
$VALGRIND $xmlsec_app decrypt $xmlsec_params $params3 --output $tmpfile.2 $tmpfile >> $logfile 2>> $logfile
res=$?
if [ $res = 0 ]; then
@@ -364,74 +376,6 @@ execEncTest() {
rm -f $tmpfile $tmpfile.2
}
-execXkmsServerRequestTest() {
- expected_res="$1"
- folder="$2"
- filename="$3"
- req_transforms="$4"
- response="$5"
- params1="$6"
-
- # prepare
- rm -f $tmpfile $tmpfile.2 tmpfile.3
- old_pwd=`pwd`
-
- # check params
- if [ "z$expected_res" != "z$res_success" -a "z$expected_res" != "z$res_fail" ] ; then
- echo " Bad parameter: expected_res=$expected_res"
- cd $old_pwd
- return
- fi
- if [ -n "$folder" ] ; then
- cd $topfolder/$folder
- full_file=$filename
- full_resfile=$filename-$response
- echo "$folder/$filename ($response)"
- echo "Test: $folder/$filename in folder " `pwd` " $response ($expected_res)" >> $logfile
- else
- full_file=$topfolder/$filename
- full_resfile=$topfolder/$filename-$response
- echo "$filename ($response)"
- echo "Test: $folder/$filename $response ($expected_res)" >> $logfile
- fi
-
- # check transforms
- if [ -n "$req_transforms" ] ; then
- printf " Checking required transforms "
- echo "$xmlsec_app check-transforms $xmlsec_params $req_transforms" >> $logfile
- $xmlsec_app check-transforms $xmlsec_params $req_transforms >> $logfile 2>> $logfile
- res=$?
- if [ $res = 0 ]; then
- echo " OK"
- else
- echo " Skip"
- return
- fi
- fi
-
- # run tests
- if [ -n "$params1" ] ; then
- printf " Processing xkms request "
- echo "$xmlsec_app --xkms-server-request --output $tmpfile $xmlsec_params $params1 $full_file.xml" >> $logfile
- $VALGRIND $xmlsec_app --xkms-server-request --output $tmpfile $xmlsec_params $params1 $full_file.xml >> $logfile 2>> $logfile
- res=$?
- if [ $res = 0 ]; then
- # cleanup Id attribute because it is generated every time
- sed 's/ Id="[^\"]*"/ Id=""/g' $full_resfile > $tmpfile.2
- sed 's/ Id="[^\"]*"/ Id=""/g' $tmpfile > $tmpfile.3
- diff $tmpfile.2 $tmpfile.3 >> $logfile 2>> $logfile
- printRes $expected_res $?
- else
- printRes $expected_res $res
- fi
- fi
-
- # cleanup
- cd $old_pwd
- rm -f $tmpfile $tmpfile.2 tmpfile.3
-}
-
-
# prepare
rm -rf $tmpfile $tmpfile.2 tmpfile.3
diff --git a/win32/Makefile.msvc b/win32/Makefile.msvc
index 2712a0a..8c887a1 100644
--- a/win32/Makefile.msvc
+++ b/win32/Makefile.msvc
@@ -148,12 +148,12 @@ XMLSEC_OBJS = \
$(XMLSEC_INTDIR)\membuf.obj \
$(XMLSEC_INTDIR)\nodeset.obj \
$(XMLSEC_INTDIR)\parser.obj \
+ $(XMLSEC_INTDIR)\relationship.obj \
$(XMLSEC_INTDIR)\soap.obj \
$(XMLSEC_INTDIR)\strings.obj \
$(XMLSEC_INTDIR)\templates.obj \
$(XMLSEC_INTDIR)\transforms.obj \
$(XMLSEC_INTDIR)\x509.obj \
- $(XMLSEC_INTDIR)\xkms.obj \
$(XMLSEC_INTDIR)\xmldsig.obj \
$(XMLSEC_INTDIR)\xmlenc.obj \
$(XMLSEC_INTDIR)\xmlsec.obj \
@@ -179,12 +179,12 @@ XMLSEC_OBJS_A = \
$(XMLSEC_INTDIR_A)\membuf.obj \
$(XMLSEC_INTDIR_A)\nodeset.obj \
$(XMLSEC_INTDIR_A)\parser.obj \
+ $(XMLSEC_INTDIR_A)\relationship.obj \
$(XMLSEC_INTDIR_A)\soap.obj \
$(XMLSEC_INTDIR_A)\strings.obj \
$(XMLSEC_INTDIR_A)\templates.obj \
$(XMLSEC_INTDIR_A)\transforms.obj \
$(XMLSEC_INTDIR_A)\x509.obj \
- $(XMLSEC_INTDIR_A)\xkms.obj \
$(XMLSEC_INTDIR_A)\xmldsig.obj \
$(XMLSEC_INTDIR_A)\xmlenc.obj \
$(XMLSEC_INTDIR_A)\xmlsec.obj \
@@ -334,7 +334,7 @@ CFLAGS = $(CFLAGS) /DXMLSEC_MSCRYPTO_NT4=1
!else
!endif
-APP_CFLAGS = /D "XMLSEC_CRYPTO=\"$(XMLSEC_CRYPTO)\""
+CFLAGS = $(CFLAGS) /D "XMLSEC_DEFAULT_CRYPTO=\"$(XMLSEC_DEFAULT_CRYPTO)\""
!if "$(WITH_DL)" == "1"
CFLAGS = $(CFLAGS) /D "XMLSEC_DL_WIN32"
APP_CFLAGS = $(APP_CFLAGS) /D "XMLSEC_CRYPTO_DYNAMIC_LOADING"
@@ -346,12 +346,12 @@ APP_CFLAGS = $(APP_CFLAGS) /D "XMLSEC_NO_TMPL_TEST"
!endif
!if "$(WITH_OPENSSL_VERSION)" == ""
-XMLSEC_OPENSSL_CFLAGS = /D "XMLSEC_CRYPTO_OPENSSL" /D "XMLSEC_CRYPTO=\"openssl\""
+XMLSEC_OPENSSL_CFLAGS = /D "XMLSEC_CRYPTO_OPENSSL" /D "XMLSEC_DEFAULT_CRYPTO=\"openssl\""
!else
-XMLSEC_OPENSSL_CFLAGS = /D "$(WITH_OPENSSL_VERSION)" /D "XMLSEC_CRYPTO_OPENSSL" /D "XMLSEC_CRYPTO=\"openssl\""
+XMLSEC_OPENSSL_CFLAGS = /D "$(WITH_OPENSSL_VERSION)" /D "XMLSEC_CRYPTO_OPENSSL" /D "XMLSEC_DEFAULT_CRYPTO=\"openssl\""
!endif
-XMLSEC_NSS_CFLAGS = /D "XMLSEC_CRYPTO_NSS" /D "XMLSEC_CRYPTO=\"nss\""
-XMLSEC_MSCRYPTO_CFLAGS = /D "XMLSEC_CRYPTO_MSCRYPTO" /D "XMLSEC_CRYPTO=\"mscrypto\""
+XMLSEC_NSS_CFLAGS = /D "XMLSEC_CRYPTO_NSS" /D "XMLSEC_DEFAULT_CRYPTO=\"nss\""
+XMLSEC_MSCRYPTO_CFLAGS = /D "XMLSEC_CRYPTO_MSCRYPTO" /D "XMLSEC_DEFAULT_CRYPTO=\"mscrypto\""
#
# The linker and its options.
@@ -410,33 +410,33 @@ ARFLAGS = /nologo
# xmlsec-<default-crypto> options
#
!if "$(WITH_DEFAULT_CRYPTO)" == "openssl"
-XMLSEC_CRYPTO = "openssl"
+XMLSEC_DEFAULT_CRYPTO = "openssl"
XMLSEC_CRYPTO_CFLAGS = $(XMLSEC_OPENSSL_CFLAGS)
XMLSEC_CRYPTO_SOLIBS = $(XMLSEC_OPENSSL_SOLIBS)
XMLSEC_CRYPTO_ALIBS = $(XMLSEC_OPENSSL_ALIBS)
XMLSEC_CRYPTO_SO = $(XMLSEC_OPENSSL_SO)
-XMLSEC_CRYPTO_IMP = $(XMLSEC_OPENSSL_IMP)
-XMLSEC_CRYPTO_A = $(XMLSEC_OPENSSL_A)
+XMLSEC_CRYPTO_IMP = $(XMLSEC_OPENSSL_IMP)
+XMLSEC_CRYPTO_A = $(XMLSEC_OPENSSL_A)
!endif
!if "$(WITH_DEFAULT_CRYPTO)" == "nss"
-XMLSEC_CRYPTO = "nss"
+XMLSEC_DEFAULT_CRYPTO = "nss"
XMLSEC_CRYPTO_CFLAGS = $(XMLSEC_NSS_CFLAGS)
XMLSEC_CRYPTO_SOLIBS = $(XMLSEC_NSS_SOLIBS)
XMLSEC_CRYPTO_ALIBS = $(XMLSEC_NSS_ALIBS)
XMLSEC_CRYPTO_SO = $(XMLSEC_NSS_SO)
-XMLSEC_CRYPTO_IMP = $(XMLSEC_NSS_IMP)
-XMLSEC_CRYPTO_A = $(XMLSEC_NSS_A)
+XMLSEC_CRYPTO_IMP = $(XMLSEC_NSS_IMP)
+XMLSEC_CRYPTO_A = $(XMLSEC_NSS_A)
!endif
!if "$(WITH_DEFAULT_CRYPTO)" == "mscrypto"
-XMLSEC_CRYPTO = "mscrypto"
+XMLSEC_DEFAULT_CRYPTO = "mscrypto"
XMLSEC_CRYPTO_CFLAGS = $(XMLSEC_MSCRYPTO_CFLAGS)
XMLSEC_CRYPTO_SOLIBS = $(XMLSEC_MSCRYPTO_SOLIBS)
XMLSEC_CRYPTO_ALIBS = $(XMLSEC_MSCRYPTO_ALIBS)
XMLSEC_CRYPTO_SO = $(XMLSEC_MSCRYPTO_SO)
-XMLSEC_CRYPTO_IMP = $(XMLSEC_MSCRYPTO_IMP)
-XMLSEC_CRYPTO_A = $(XMLSEC_MSCRYPTO_A)
+XMLSEC_CRYPTO_IMP = $(XMLSEC_MSCRYPTO_IMP)
+XMLSEC_CRYPTO_A = $(XMLSEC_MSCRYPTO_A)
!endif
#
@@ -480,13 +480,6 @@ check-enc : $(BINDIR)\$(APP_NAME)
sh ./tests/testrun.sh ./tests/testEnc.sh default ./tests win32/$(BINDIR)/$(APP_NAME) der
cd win32
-check-xkms : $(BINDIR)\$(APP_NAME)
- cd ..
- if not exist win32\tmp mkdir win32\tmp
- set TMPFOLDER=win32\tmp
- sh ./tests/testrun.sh ./tests/testXKMS.sh default ./tests win32/$(BINDIR)/$(APP_NAME) der
- cd win32
-
clean :
if exist $(XMLSEC_INTDIR) rmdir /S /Q $(XMLSEC_INTDIR)
if exist $(XMLSEC_INTDIR_A) rmdir /S /Q $(XMLSEC_INTDIR_A)
diff --git a/win32/README.txt b/win32/README.txt
index 511aa16..7040e05 100644
--- a/win32/README.txt
+++ b/win32/README.txt
@@ -127,7 +127,7 @@ you need to add one of the following global defines:
#define XMLSEC_CRYPTO_NSS
Also you'll need to define all configuration parameters used during XML Security
-Library compilation (XMLSEC_OPENSSL_096, XMLSEC_NO_AES, XMLSEC_NO_X509,...).
+Library compilation (XMLSEC_OPENSSL_100, XMLSEC_NO_AES, XMLSEC_NO_X509,...).
2.1 Additional Global Defines for static linking.
-------------
-------------
-------------
------
diff --git a/win32/configure.js b/win32/configure.js
index 1d3622c..7bbba19 100644
--- a/win32/configure.js
+++ b/win32/configure.js
@@ -21,7 +21,7 @@ var baseName = "libxmlsec";
/* Configure file which contains the version and the output file where
we can store our build configuration. */
-var configFile = baseDir + "\\configure.in";
+var configFile = baseDir + "\\configure.ac";
var versionFile = ".\\configure.txt";
/* Input and output files regarding the lib(e)xml features. The second
@@ -311,19 +311,19 @@ for (j = 0; j < crlist.length; j++) {
if (crlist[j] == "openssl") {
curcrypto="openssl";
withOpenSSL = 1;
- withOpenSSLVersion = "098"; /* default */
- } else if (crlist[j] == "openssl=096") {
+ withOpenSSLVersion = "100"; /* default */
+ } else if (crlist[j] == "openssl=098") {
curcrypto="openssl";
withOpenSSL = 1;
- withOpenSSLVersion = "096";
- } else if (crlist[j] == "openssl=097") {
+ withOpenSSLVersion = "098";
+ } else if (crlist[j] == "openssl=100") {
curcrypto="openssl";
withOpenSSL = 1;
- withOpenSSLVersion = "097";
- } else if (crlist[j] == "openssl=098") {
+ withOpenSSLVersion = "100";
+ } else if (crlist[j] == "openssl=110") {
curcrypto="openssl";
withOpenSSL = 1;
- withOpenSSLVersion = "098";
+ withOpenSSLVersion = "110";
} else if (crlist[j] == "nss") {
curcrypto="nss";
withNss = 1;
diff --git a/win32/mycfg.bat b/win32/mycfg.bat
index 9af468e..17617b0 100644
--- a/win32/mycfg.bat
+++ b/win32/mycfg.bat
@@ -3,7 +3,7 @@ REM
REM This is my personal configuration file.
REM I am lazy to type all this crap again and again
REM You are welcome to customize this file for your
-REM needs but do not check it into the CVS, please.
+REM needs but do not check it into the GitHub, please.
REM
REM Aleksey Sanin <aleksey at aleksey.com>
REM
diff --git a/xmlsec-config.in b/xmlsec-config.in
index cb46909..521ac95 100644
--- a/xmlsec-config.in
+++ b/xmlsec-config.in
@@ -4,7 +4,7 @@ prefix="@prefix@"
package="@PACKAGE@"
exec_prefix="@exec_prefix@"
exec_prefix_set=no
-package_libdir="@libdir@"
+libdir="@libdir@"
usage()
{
@@ -13,15 +13,19 @@ Usage: $package-config [OPTION]...
Known values for OPTION are:
- --prefix=DIR change XMLSEC prefix
- --exec-prefix=DIR change XMLSEC executable prefix
- --libs print library linking information
- --cflags print pre-processor and compiler flags
- --crypto print the default crypto library name
- --help display this help and exit
- --version output version information
- --crypto=LIB configure with XMLSEC crypto library (one of the
- following: none default openssl nss gnutls gcrypt)
+ --cflags print pre-processor and compiler flags
+ --libs print library linking information
+ --prefix print the default XMLSEC prefix folder
+ --exec-prefix print the default XMLSEC executable prefix folder
+ --libdir print the default XMLSEC libraries folder
+ --crypto print the default crypto library name
+ --prefix=DIR change XMLSEC prefix folder
+ --exec-prefix=DIR change XMLSEC executable prefix folder
+ --libdir=DIR change XMLSEC libraries folder
+ --crypto=LIB configure with XMLSEC crypto library (one of the
+ following: none default openssl nss gnutls gcrypt)
+ --help display this help and exit
+ --version output version information
EOF
exit $1
@@ -48,62 +52,75 @@ fi
while [ $# -gt 0 ]
do
case "$1" in
- -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) optarg= ;;
+ -*=*)
+ optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
+ ;;
+ *)
+ optarg=
+ ;;
esac
case "$1" in
--crypto=*)
- crypto=$optarg
- ;;
-
+ crypto=$optarg
+ ;;
+
--prefix=*)
- prefix=$optarg
- if [ $exec_prefix_set = no ]
+ prefix=$optarg
+ if [ $exec_prefix_set = no ] ;
then
- exec_prefix=$optarg
- fi
- ;;
+ exec_prefix=$optarg
+ fi
+ ;;
--prefix)
- echo $prefix
- ;;
+ echo $prefix
+ ;;
--exec-prefix=*)
- exec_prefix=$optarg
- exec_prefix_set=yes
- ;;
+ exec_prefix=$optarg
+ exec_prefix_set=yes
+ ;;
--exec-prefix)
- echo $exec_prefix
- ;;
+ echo $exec_prefix
+ ;;
+
+ --libdir=*)
+ libdir=$optarg
+ ;;
+
+ --libdir)
+ echo $libdir
+ ;;
--version)
- echo @VERSION@
- exit 0
- ;;
+ echo @VERSION@
+ exit 0
+ ;;
--crypto)
- echo @XMLSEC_CRYPTO@
- exit 0
- ;;
-
+ echo @XMLSEC_DEFAULT_CRYPTO@
+ exit 0
+ ;;
+
--help)
- usage 0
- ;;
+ usage 0
+ ;;
--cflags)
- cflags=true
- ;;
+ cflags=true
+ ;;
--libs)
- libs=true
- ;;
+ libs=true
+ ;;
*)
- usage 1
- ;;
+ usage 1
+ ;;
esac
+
shift
done
@@ -118,7 +135,8 @@ the_xml_libs="`@LIBXML_CONFIG@ --libs`"
#
the_xslt_flags=""
the_xslt_libs=""
-if test "@XMLSEC_NO_LIBXSLT@" = "0"; then
+if test "@XMLSEC_NO_LIBXSLT@" = "0" ;
+then
the_xslt_flags="`@LIBXSLT_CONFIG@ --cflags`"
the_xslt_libs="`@LIBXSLT_CONFIG@ --libs`"
fi
@@ -135,57 +153,61 @@ none)
# than one crypto engine i sused by application)
if [ "z at XMLSEC_NO_CRYPTO_DYNAMIC_LOADING@" != "z1" ] ;
then
- the_crypto_flags="-DXMLSEC_CRYPTO_DYNAMIC_LOADING=1 -DXMLSEC_CRYPTO=\\\"@XMLSEC_CRYPTO@\\\""
+ the_crypto_flags="-DXMLSEC_CRYPTO_DYNAMIC_LOADING=1"
fi
;;
default)
- the_crypto_flags="@XMLSEC_CRYPTO_CFLAGS@ -DXMLSEC_CRYPTO=\\\"@XMLSEC_CRYPTO@\\\""
+ the_crypto_flags="@XMLSEC_CRYPTO_CFLAGS@"
the_crypto_libs="@XMLSEC_CRYPTO_LIBS@"
the_xmlsec_crypto_lib="-l at XMLSEC_CRYPTO_LIB@"
;;
openssl)
- if test "@XMLSEC_NO_OPENSSL@" = "0"; then
- the_crypto_flags="@OPENSSL_CFLAGS@ -DXMLSEC_CRYPTO=\\\"openssl\\\""
- the_crypto_libs="@OPENSSL_LIBS@"
+ if test "@XMLSEC_NO_OPENSSL@" = "0" ;
+ then
+ the_crypto_flags="@OPENSSL_CFLAGS@"
+ the_crypto_libs="@OPENSSL_LIBS@"
the_xmlsec_crypto_lib="-l at OPENSSL_CRYPTO_LIB@"
else
echo "Error: the \"$crypto\" cryptographic library is not supported"
- usage 1
+ usage 1
fi
;;
gnutls)
- if test "@XMLSEC_NO_GNUTLS@" = "0"; then
- the_crypto_flags="@GNUTLS_CFLAGS@ -DXMLSEC_CRYPTO=\\\"gnutls\\\""
- the_crypto_libs="@GNUTLS_LIBS@"
+ if test "@XMLSEC_NO_GNUTLS@" = "0" ;
+ then
+ the_crypto_flags="@GNUTLS_CFLAGS@"
+ the_crypto_libs="@GNUTLS_LIBS@"
the_xmlsec_crypto_lib="-l at GNUTLS_CRYPTO_LIB@"
else
echo "Error: the \"$crypto\" cryptographic library is not supported"
- usage 1
+ usage 1
fi
;;
gcrypt)
- if test "@XMLSEC_NO_GCRYPT@" = "0"; then
- the_crypto_flags="@GCRYPT_CFLAGS@ -DXMLSEC_CRYPTO=\\\"gcrypt\\\""
- the_crypto_libs="@GCRYPT_LIBS@"
+ if test "@XMLSEC_NO_GCRYPT@" = "0" ;
+ then
+ the_crypto_flags="@GCRYPT_CFLAGS at L"
+ the_crypto_libs="@GCRYPT_LIBS@"
the_xmlsec_crypto_lib="-l at GCRYPT_CRYPTO_LIB@"
else
echo "Error: the \"$crypto\" cryptographic library is not supported"
- usage 1
+ usage 1
fi
;;
nss)
- if test "@XMLSEC_NO_NSS@" = "0"; then
- the_crypto_flags="@NSS_CFLAGS@ -DXMLSEC_CRYPTO=\\\"nss\\\""
- the_crypto_libs="@NSS_LIBS@"
+ if test "@XMLSEC_NO_NSS@" = "0";
+ then
+ the_crypto_flags="@NSS_CFLAGS@"
+ the_crypto_libs="@NSS_LIBS@"
the_xmlsec_crypto_lib="-l at NSS_CRYPTO_LIB@"
else
echo "Error: the \"$crypto\" cryptographic library is not supported"
- usage 1
+ usage 1
fi
;;
@@ -200,17 +222,20 @@ esac
# Assemble all the settings together
#
the_flags="$the_flags @XMLSEC_CORE_CFLAGS@ $the_xml_flags $the_xslt_flags $the_crypto_flags"
-the_libs="$the_libs -L${package_libdir} @XMLSEC_CORE_LIBS@ $the_xmlsec_crypto_lib -lxmlsec1 $the_xml_libs $the_xslt_libs $the_crypto_libs"
+the_libs="$the_libs -L${libdir} @XMLSEC_CORE_LIBS@ $the_xmlsec_crypto_lib -lxmlsec1 $the_xml_libs $the_xslt_libs $the_crypto_libs"
-if $cflags; then
+if $cflags ;
+then
all_flags="$the_flags"
fi
-if $libs; then
+if $libs ;
+then
all_flags="$all_flags $services $the_libs"
fi
-if test -z "$all_flags" || test "x$all_flags" = "x "; then
+if test -z "$all_flags" || test "x$all_flags" = "x " ;
+then
exit 1
fi
@@ -221,20 +246,33 @@ rev_libs=
for i in $all_flags; do
case "$i" in
# a library, save it for later, in reverse order
- -l*) rev_libs="$i $rev_libs" ;;
+ -l*)
+ rev_libs="$i $rev_libs"
+ ;;
*)
- case " $other_flags " in
- *\ $i\ *) ;; # already there
- *) other_flags="$other_flags $i" ;; # add it to output
- esac ;;
+ case " $other_flags " in
+ *\ $i\ *)
+ # already there
+ ;;
+ *)
+ # add it to output
+ other_flags="$other_flags $i"
+ ;;
+ esac
+ ;;
esac
done
ord_libs=
for i in $rev_libs; do
case " $ord_libs " in
- *\ $i\ *) ;; # already there
- *) ord_libs="$i $ord_libs" ;; # add it to output in reverse order
+ *\ $i\ *)
+ # already there
+ ;;
+ *)
+ # add it to output in reverse order
+ ord_libs="$i $ord_libs"
+ ;;
esac
done
diff --git a/xmlsec-gcrypt.pc.in b/xmlsec-gcrypt.pc.in
index 1c00496..95627d5 100644
--- a/xmlsec-gcrypt.pc.in
+++ b/xmlsec-gcrypt.pc.in
@@ -6,6 +6,6 @@ includedir=@includedir@
Name: xmlsec1-gcrypt
Version: @VERSION@
Description: XML Security Library implements XML Signature and XML Encryption standards
-Requires: libxml-2.0 >= @LIBXML_MIN_VERSION@ libxslt >= @LIBXSLT_MIN_VERSION@
-Cflags: -DXMLSEC_CRYPTO=\"gcrypt\" @XMLSEC_GCRYPT_CFLAGS@
+Requires: libxml-2.0 >= @LIBXML_MIN_VERSION@ @LIBXSLT_PC_FILE_COND@
+Cflags: @XMLSEC_GCRYPT_CFLAGS@
Libs: @XMLSEC_GCRYPT_LIBS@
diff --git a/xmlsec-gnutls.pc.in b/xmlsec-gnutls.pc.in
index e538cd4..ababfa0 100644
--- a/xmlsec-gnutls.pc.in
+++ b/xmlsec-gnutls.pc.in
@@ -6,6 +6,6 @@ includedir=@includedir@
Name: xmlsec1-gnutls
Version: @VERSION@
Description: XML Security Library implements XML Signature and XML Encryption standards
-Requires: libxml-2.0 >= @LIBXML_MIN_VERSION@ libxslt >= @LIBXSLT_MIN_VERSION@
-Cflags: -DXMLSEC_CRYPTO=\"gnutls\" @XMLSEC_GNUTLS_CFLAGS@
+Requires: libxml-2.0 >= @LIBXML_MIN_VERSION@ @LIBXSLT_PC_FILE_COND@
+Cflags: @XMLSEC_GNUTLS_CFLAGS@
Libs: @XMLSEC_GNUTLS_LIBS@
diff --git a/xmlsec-nss.pc.in b/xmlsec-nss.pc.in
index a6d6c5c..a9654c2 100644
--- a/xmlsec-nss.pc.in
+++ b/xmlsec-nss.pc.in
@@ -6,6 +6,6 @@ includedir=@includedir@
Name: xmlsec1-nss
Version: @VERSION@
Description: XML Security Library implements XML Signature and XML Encryption standards
-Requires: libxml-2.0 >= @LIBXML_MIN_VERSION@ libxslt >= @LIBXSLT_MIN_VERSION@ @NSPR_PACKAGE@ >= @MOZILLA_MIN_VERSION@ @NSS_PACKAGE@ >= @MOZILLA_MIN_VERSION@
-Cflags: -DXMLSEC_CRYPTO=\"nss\" -DXMLSEC_CRYPTO_NSS=1 @XMLSEC_CORE_CFLAGS@
+Requires: libxml-2.0 >= @LIBXML_MIN_VERSION@ @LIBXSLT_PC_FILE_COND@ @NSPR_PACKAGE@ >= @MOZILLA_MIN_VERSION@ @NSS_PACKAGE@ >= @MOZILLA_MIN_VERSION@
+Cflags: -DXMLSEC_CRYPTO_NSS=1 @XMLSEC_CORE_CFLAGS@
Libs: -L${libdir} -lxmlsec1-nss @XMLSEC_CORE_LIBS@
diff --git a/xmlsec-openssl.pc.in b/xmlsec-openssl.pc.in
index 85ee2b0..40635cf 100644
--- a/xmlsec-openssl.pc.in
+++ b/xmlsec-openssl.pc.in
@@ -6,6 +6,6 @@ includedir=@includedir@
Name: xmlsec1-openssl
Version: @VERSION@
Description: XML Security Library implements XML Signature and XML Encryption standards
-Requires: libxml-2.0 >= @LIBXML_MIN_VERSION@ libxslt >= @LIBXSLT_MIN_VERSION@
-Cflags: -DXMLSEC_CRYPTO=\"openssl\" @XMLSEC_OPENSSL_CFLAGS@
+Requires: libxml-2.0 >= @LIBXML_MIN_VERSION@ @LIBXSLT_PC_FILE_COND@
+Cflags: @XMLSEC_OPENSSL_CFLAGS@
Libs: @XMLSEC_OPENSSL_LIBS@
diff --git a/xmlsec.pc.in b/xmlsec.pc.in
index a750ab8..2d5a3ad 100644
--- a/xmlsec.pc.in
+++ b/xmlsec.pc.in
@@ -6,6 +6,6 @@ includedir=@includedir@
Name: xmlsec1
Version: @VERSION@
Description: XML Security Library implements XML Signature and XML Encryption standards
-Requires: libxml-2.0 >= @LIBXML_MIN_VERSION@ libxslt >= @LIBXSLT_MIN_VERSION@
-Cflags: -DXMLSEC_CRYPTO=\"@XMLSEC_CRYPTO@\" -DXMLSEC_CRYPTO_DYNAMIC_LOADING=1 @XMLSEC_CORE_CFLAGS@
+Requires: libxml-2.0 >= @LIBXML_MIN_VERSION@ @LIBXSLT_PC_FILE_COND@
+Cflags: -DXMLSEC_CRYPTO_DYNAMIC_LOADING=1 @XMLSEC_CORE_CFLAGS@
Libs: -L${libdir} @XMLSEC_CORE_LIBS@
diff --git a/xmlsec.spec.in b/xmlsec.spec.in
index 102555a..15741a3 100644
--- a/xmlsec.spec.in
+++ b/xmlsec.spec.in
@@ -12,7 +12,7 @@ BuildRoot: %{_tmppath}/@PACKAGE at -%{version}-root
URL: http://www.aleksey.com/xmlsec
Requires: libxml2 >= @LIBXML_MIN_VERSION@
Requires: libxslt >= @LIBXSLT_MIN_VERSION@
-Requires: ltdl
+Requires: libtool-ltdl
BuildRequires: libxml2-devel >= @LIBXML_MIN_VERSION@
BuildRequires: libxslt-devel >= @LIBXSLT_MIN_VERSION@
Prefix: %{_prefix}
@@ -33,7 +33,8 @@ Requires: xmlsec1 = %{version}
Requires: libxml2-devel >= @LIBXML_MIN_VERSION@
Requires: libxslt-devel >= @LIBXSLT_MIN_VERSION@
Requires: openssl-devel >= @OPENSSL_MIN_VERSION@
-Requires: zlib-devel
+Requires: zlib-devel
+Requires: libtool-ltdl-devel
%description devel
Libraries, includes, etc. you can use to develop applications with XML Digital
diff --git a/xmlsec1-config b/xmlsec1-config
old mode 100644
new mode 100755
index bbc1930..11d42c3
--- a/xmlsec1-config
+++ b/xmlsec1-config
@@ -4,7 +4,7 @@ prefix="/usr"
package="xmlsec1"
exec_prefix="${prefix}"
exec_prefix_set=no
-package_libdir="${exec_prefix}/lib"
+libdir="${exec_prefix}/lib"
usage()
{
@@ -13,15 +13,19 @@ Usage: $package-config [OPTION]...
Known values for OPTION are:
- --prefix=DIR change XMLSEC prefix
- --exec-prefix=DIR change XMLSEC executable prefix
- --libs print library linking information
- --cflags print pre-processor and compiler flags
- --crypto print the default crypto library name
- --help display this help and exit
- --version output version information
- --crypto=LIB configure with XMLSEC crypto library (one of the
- following: none default openssl nss gnutls gcrypt)
+ --cflags print pre-processor and compiler flags
+ --libs print library linking information
+ --prefix print the default XMLSEC prefix folder
+ --exec-prefix print the default XMLSEC executable prefix folder
+ --libdir print the default XMLSEC libraries folder
+ --crypto print the default crypto library name
+ --prefix=DIR change XMLSEC prefix folder
+ --exec-prefix=DIR change XMLSEC executable prefix folder
+ --libdir=DIR change XMLSEC libraries folder
+ --crypto=LIB configure with XMLSEC crypto library (one of the
+ following: none default openssl nss gnutls gcrypt)
+ --help display this help and exit
+ --version output version information
EOF
exit $1
@@ -48,62 +52,75 @@ fi
while [ $# -gt 0 ]
do
case "$1" in
- -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) optarg= ;;
+ -*=*)
+ optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
+ ;;
+ *)
+ optarg=
+ ;;
esac
case "$1" in
--crypto=*)
- crypto=$optarg
- ;;
-
+ crypto=$optarg
+ ;;
+
--prefix=*)
- prefix=$optarg
- if [ $exec_prefix_set = no ]
+ prefix=$optarg
+ if [ $exec_prefix_set = no ] ;
then
- exec_prefix=$optarg
- fi
- ;;
+ exec_prefix=$optarg
+ fi
+ ;;
--prefix)
- echo $prefix
- ;;
+ echo $prefix
+ ;;
--exec-prefix=*)
- exec_prefix=$optarg
- exec_prefix_set=yes
- ;;
+ exec_prefix=$optarg
+ exec_prefix_set=yes
+ ;;
--exec-prefix)
- echo $exec_prefix
- ;;
+ echo $exec_prefix
+ ;;
+
+ --libdir=*)
+ libdir=$optarg
+ ;;
+
+ --libdir)
+ echo $libdir
+ ;;
--version)
- echo 1.2.20
- exit 0
- ;;
+ echo 1.2.23
+ exit 0
+ ;;
--crypto)
- echo openssl
- exit 0
- ;;
-
+ echo openssl
+ exit 0
+ ;;
+
--help)
- usage 0
- ;;
+ usage 0
+ ;;
--cflags)
- cflags=true
- ;;
+ cflags=true
+ ;;
--libs)
- libs=true
- ;;
+ libs=true
+ ;;
*)
- usage 1
- ;;
+ usage 1
+ ;;
esac
+
shift
done
@@ -118,7 +135,8 @@ the_xml_libs="`xml2-config --libs`"
#
the_xslt_flags=""
the_xslt_libs=""
-if test "0" = "0"; then
+if test "0" = "0" ;
+then
the_xslt_flags="`xslt-config --cflags`"
the_xslt_libs="`xslt-config --libs`"
fi
@@ -135,57 +153,61 @@ none)
# than one crypto engine i sused by application)
if [ "z0" != "z1" ] ;
then
- the_crypto_flags="-DXMLSEC_CRYPTO_DYNAMIC_LOADING=1 -DXMLSEC_CRYPTO=\\\"openssl\\\""
+ the_crypto_flags="-DXMLSEC_CRYPTO_DYNAMIC_LOADING=1"
fi
;;
default)
- the_crypto_flags=" -DXMLSEC_OPENSSL_100=1 -DXMLSEC_CRYPTO_OPENSSL=1 -DXMLSEC_CRYPTO=\\\"openssl\\\""
- the_crypto_libs="-lssl -lcrypto "
+ the_crypto_flags=" -DXMLSEC_OPENSSL_100=1 -DXMLSEC_CRYPTO_OPENSSL=1"
+ the_crypto_libs="-lssl -lcrypto "
the_xmlsec_crypto_lib="-lxmlsec1-openssl"
;;
openssl)
- if test "0" = "0"; then
- the_crypto_flags=" -DXMLSEC_OPENSSL_100=1 -DXMLSEC_CRYPTO_OPENSSL=1 -DXMLSEC_CRYPTO=\\\"openssl\\\""
- the_crypto_libs="-lssl -lcrypto "
+ if test "0" = "0" ;
+ then
+ the_crypto_flags=" -DXMLSEC_OPENSSL_100=1 -DXMLSEC_CRYPTO_OPENSSL=1"
+ the_crypto_libs="-lssl -lcrypto "
the_xmlsec_crypto_lib="-lxmlsec1-openssl"
else
echo "Error: the \"$crypto\" cryptographic library is not supported"
- usage 1
+ usage 1
fi
;;
gnutls)
- if test "0" = "0"; then
- the_crypto_flags="-I/usr/include/p11-kit-1 -DXMLSEC_CRYPTO_GNUTLS=1 -DXMLSEC_CRYPTO=\\\"gnutls\\\""
- the_crypto_libs="-lgnutls "
+ if test "0" = "0" ;
+ then
+ the_crypto_flags="-I/usr/include/p11-kit-1 -DXMLSEC_CRYPTO_GNUTLS=1"
+ the_crypto_libs="-lgnutls "
the_xmlsec_crypto_lib="-lxmlsec1-gnutls"
else
echo "Error: the \"$crypto\" cryptographic library is not supported"
- usage 1
+ usage 1
fi
;;
gcrypt)
- if test "0" = "0"; then
- the_crypto_flags=" -DXMLSEC_CRYPTO_GCRYPT=1 -DXMLSEC_CRYPTO=\\\"gcrypt\\\""
- the_crypto_libs=" -L/lib/i386-linux-gnu -lgcrypt"
+ if test "0" = "0" ;
+ then
+ the_crypto_flags=" -I/home/aleksey/local/include -DXMLSEC_CRYPTO_GCRYPT=1L"
+ the_crypto_libs=" -L/home/aleksey/local/lib -lgcrypt -L/usr/lib/i386-linux-gnu -lgpg-error"
the_xmlsec_crypto_lib="-lxmlsec1-gcrypt"
else
echo "Error: the \"$crypto\" cryptographic library is not supported"
- usage 1
+ usage 1
fi
;;
nss)
- if test "0" = "0"; then
- the_crypto_flags="-I/usr/include/nspr -I/usr/include/nss -DXMLSEC_CRYPTO_NSS=1 -DXMLSEC_CRYPTO=\\\"nss\\\""
- the_crypto_libs="-lnss3 -lnssutil3 -lsmime3 -lssl3 -lplds4 -lplc4 -lnspr4 "
+ if test "0" = "0";
+ then
+ the_crypto_flags="-I/usr/include/nspr -I/usr/include/nss -I/usr/include/nspr -DXMLSEC_CRYPTO_NSS=1"
+ the_crypto_libs="-lplds4 -lplc4 -lnspr4 -lnss3 -lnssutil3 -lsmime3 -lssl3 -lplds4 -lplc4 -lnspr4 "
the_xmlsec_crypto_lib="-lxmlsec1-nss"
else
echo "Error: the \"$crypto\" cryptographic library is not supported"
- usage 1
+ usage 1
fi
;;
@@ -199,18 +221,21 @@ esac
#
# Assemble all the settings together
#
-the_flags="$the_flags -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_XKMS=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1 $the_xml_flags $the_xslt_flags $the_crypto_flags"
-the_libs="$the_libs -L${package_libdir} -lxmlsec1 -lltdl $the_xmlsec_crypto_lib -lxmlsec1 $the_xml_libs $the_xslt_libs $the_crypto_libs"
+the_flags="$the_flags -D__XMLSEC_FUNCTION__=__func__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_GOST2012=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1 $the_xml_flags $the_xslt_flags $the_crypto_flags"
+the_libs="$the_libs -L${libdir} -lxmlsec1 -lltdl $the_xmlsec_crypto_lib -lxmlsec1 $the_xml_libs $the_xslt_libs $the_crypto_libs"
-if $cflags; then
+if $cflags ;
+then
all_flags="$the_flags"
fi
-if $libs; then
+if $libs ;
+then
all_flags="$all_flags $services $the_libs"
fi
-if test -z "$all_flags" || test "x$all_flags" = "x "; then
+if test -z "$all_flags" || test "x$all_flags" = "x " ;
+then
exit 1
fi
@@ -221,20 +246,33 @@ rev_libs=
for i in $all_flags; do
case "$i" in
# a library, save it for later, in reverse order
- -l*) rev_libs="$i $rev_libs" ;;
+ -l*)
+ rev_libs="$i $rev_libs"
+ ;;
*)
- case " $other_flags " in
- *\ $i\ *) ;; # already there
- *) other_flags="$other_flags $i" ;; # add it to output
- esac ;;
+ case " $other_flags " in
+ *\ $i\ *)
+ # already there
+ ;;
+ *)
+ # add it to output
+ other_flags="$other_flags $i"
+ ;;
+ esac
+ ;;
esac
done
ord_libs=
for i in $rev_libs; do
case " $ord_libs " in
- *\ $i\ *) ;; # already there
- *) ord_libs="$i $ord_libs" ;; # add it to output in reverse order
+ *\ $i\ *)
+ # already there
+ ;;
+ *)
+ # add it to output in reverse order
+ ord_libs="$i $ord_libs"
+ ;;
esac
done
diff --git a/xmlsec1-gcrypt.pc b/xmlsec1-gcrypt.pc
index b31dba9..c093148 100644
--- a/xmlsec1-gcrypt.pc
+++ b/xmlsec1-gcrypt.pc
@@ -4,8 +4,8 @@ libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: xmlsec1-gcrypt
-Version: 1.2.20
+Version: 1.2.23
Description: XML Security Library implements XML Signature and XML Encryption standards
Requires: libxml-2.0 >= 2.7.4 libxslt >= 1.0.20
-Cflags: -DXMLSEC_CRYPTO=\"gcrypt\" -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_XKMS=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1 -DXMLSEC_CRYPTO_GCRYPT=1
-Libs: -L${exec_prefix}/lib -lxmlsec1-gcrypt -lxmlsec1 -lltdl -L/lib/i386-linux-gnu -lgcrypt
+Cflags: -D__XMLSEC_FUNCTION__=__func__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_GOST2012=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1 -I/home/aleksey/local/include -DXMLSEC_CRYPTO_GCRYPT=1
+Libs: -L${exec_prefix}/lib -lxmlsec1-gcrypt -lxmlsec1 -lltdl -L/home/aleksey/local/lib -lgcrypt -L/usr/lib/i386-linux-gnu -lgpg-error
diff --git a/xmlsec1-gnutls.pc b/xmlsec1-gnutls.pc
index 6a2d5da..9353d20 100644
--- a/xmlsec1-gnutls.pc
+++ b/xmlsec1-gnutls.pc
@@ -4,8 +4,8 @@ libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: xmlsec1-gnutls
-Version: 1.2.20
+Version: 1.2.23
Description: XML Security Library implements XML Signature and XML Encryption standards
Requires: libxml-2.0 >= 2.7.4 libxslt >= 1.0.20
-Cflags: -DXMLSEC_CRYPTO=\"gnutls\" -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_XKMS=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1 -I/usr/include/p11-kit-1 -DXMLSEC_CRYPTO_GNUTLS=1
-Libs: -L${exec_prefix}/lib -lxmlsec1-gnutls -lxmlsec1-gcrypt -lxmlsec1 -lltdl -lgnutls
+Cflags: -D__XMLSEC_FUNCTION__=__func__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_GOST2012=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1 -I/usr/include/p11-kit-1 -DXMLSEC_CRYPTO_GNUTLS=1
+Libs: -L${exec_prefix}/lib -lxmlsec1-gnutls -lxmlsec1-gcrypt -lxmlsec1 -lltdl -lgnutls
diff --git a/xmlsec1-nss.pc b/xmlsec1-nss.pc
index 1a283cd..d2757af 100644
--- a/xmlsec1-nss.pc
+++ b/xmlsec1-nss.pc
@@ -4,8 +4,8 @@ libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: xmlsec1-nss
-Version: 1.2.20
+Version: 1.2.23
Description: XML Security Library implements XML Signature and XML Encryption standards
Requires: libxml-2.0 >= 2.7.4 libxslt >= 1.0.20 xulrunner-nspr >= 1.4 xulrunner-nss >= 1.4
-Cflags: -DXMLSEC_CRYPTO=\"nss\" -DXMLSEC_CRYPTO_NSS=1 -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_XKMS=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1
+Cflags: -DXMLSEC_CRYPTO_NSS=1 -D__XMLSEC_FUNCTION__=__func__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_GOST2012=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1
Libs: -L${libdir} -lxmlsec1-nss -lxmlsec1 -lltdl
diff --git a/xmlsec1-openssl.pc b/xmlsec1-openssl.pc
index e51a529..c411816 100644
--- a/xmlsec1-openssl.pc
+++ b/xmlsec1-openssl.pc
@@ -4,8 +4,8 @@ libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: xmlsec1-openssl
-Version: 1.2.20
+Version: 1.2.23
Description: XML Security Library implements XML Signature and XML Encryption standards
-Requires: libxml-2.0 >= 2.7.4 libxslt >= 1.0.20
-Cflags: -DXMLSEC_CRYPTO=\"openssl\" -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_XKMS=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1 -DXMLSEC_OPENSSL_100=1 -DXMLSEC_CRYPTO_OPENSSL=1
-Libs: -L${exec_prefix}/lib -lxmlsec1-openssl -lxmlsec1 -lltdl -lssl -lcrypto
+Requires: libxml-2.0 >= 2.7.4 libxslt >= 1.0.20
+Cflags: -D__XMLSEC_FUNCTION__=__func__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_GOST2012=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1 -DXMLSEC_OPENSSL_100=1 -DXMLSEC_CRYPTO_OPENSSL=1
+Libs: -L${exec_prefix}/lib -lxmlsec1-openssl -lxmlsec1 -lltdl -lssl -lcrypto
diff --git a/xmlsec1.pc b/xmlsec1.pc
index 3a69537..12947c7 100644
--- a/xmlsec1.pc
+++ b/xmlsec1.pc
@@ -4,8 +4,8 @@ libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: xmlsec1
-Version: 1.2.20
+Version: 1.2.23
Description: XML Security Library implements XML Signature and XML Encryption standards
Requires: libxml-2.0 >= 2.7.4 libxslt >= 1.0.20
-Cflags: -DXMLSEC_CRYPTO=\"openssl\" -DXMLSEC_CRYPTO_DYNAMIC_LOADING=1 -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_XKMS=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1
+Cflags: -DXMLSEC_CRYPTO_DYNAMIC_LOADING=1 -D__XMLSEC_FUNCTION__=__func__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_GOST2012=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1
Libs: -L${libdir} -lxmlsec1 -lltdl
diff --git a/xmlsec1.spec b/xmlsec1.spec
index 6272fe2..74a104a 100644
--- a/xmlsec1.spec
+++ b/xmlsec1.spec
@@ -1,6 +1,6 @@
Summary: Library providing support for "XML Signature" and "XML Encryption" standards
Name: xmlsec1
-Version: 1.2.20
+Version: 1.2.23
Release: 1
License: MIT
Group: Development/Libraries
@@ -12,7 +12,7 @@ BuildRoot: %{_tmppath}/xmlsec1-%{version}-root
URL: http://www.aleksey.com/xmlsec
Requires: libxml2 >= 2.7.4
Requires: libxslt >= 1.0.20
-Requires: ltdl
+Requires: libtool-ltdl
BuildRequires: libxml2-devel >= 2.7.4
BuildRequires: libxslt-devel >= 1.0.20
Prefix: %{_prefix}
@@ -32,8 +32,9 @@ Group: Development/Libraries
Requires: xmlsec1 = %{version}
Requires: libxml2-devel >= 2.7.4
Requires: libxslt-devel >= 1.0.20
-Requires: openssl-devel >= 0.9.6
-Requires: zlib-devel
+Requires: openssl-devel >= 0.9.8
+Requires: zlib-devel
+Requires: libtool-ltdl-devel
%description devel
Libraries, includes, etc. you can use to develop applications with XML Digital
@@ -45,8 +46,8 @@ Group: Development/Libraries
Requires: xmlsec1 = %{version}
Requires: libxml2 >= 2.7.4
Requires: libxslt >= 1.0.20
-Requires: openssl >= 0.9.6
-BuildRequires: openssl-devel >= 0.9.6
+Requires: openssl >= 0.9.8
+BuildRequires: openssl-devel >= 0.9.8
%description openssl
OpenSSL plugin for XML Security Library provides OpenSSL based crypto services
@@ -60,8 +61,8 @@ Requires: xmlsec1-devel = %{version}
Requires: xmlsec1-openssl = %{version}
Requires: libxml2-devel >= 2.7.4
Requires: libxslt-devel >= 1.0.20
-Requires: openssl >= 0.9.6
-Requires: openssl-devel >= 0.9.6
+Requires: openssl >= 0.9.8
+Requires: openssl-devel >= 0.9.8
%description openssl-devel
Libraries, includes, etc. for developing XML Security applications with OpenSSL
diff --git a/xmlsec1Conf.sh b/xmlsec1Conf.sh
old mode 100644
new mode 100755
index cb36e3c..fde6222
--- a/xmlsec1Conf.sh
+++ b/xmlsec1Conf.sh
@@ -7,7 +7,7 @@ libdir="${exec_prefix}/lib"
includedir="${prefix}/include"
XMLSEC_LIBDIR="${exec_prefix}/lib"
-XMLSEC_INCLUDEDIR=" -D__XMLSEC_FUNCTION__=__FUNCTION__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_XKMS=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1 -I/usr/include/libxml2 -I/usr/include/libxml2 -DXMLSEC_OPENSSL_100=1 -DXMLSEC_CRYPTO_OPENSSL=1 -DXMLSEC_CRYPTO=\\\"openssl\\\""
-XMLSEC_LIBS="-L${exec_prefix}/lib -lxmlsec1-openssl -lxmlsec1 -lltdl -lxml2 -lxslt -lxml2 -lssl -lcrypto "
-MODULE_VERSION="xmlsec-1.2.20-openssl"
+XMLSEC_INCLUDEDIR=" -D__XMLSEC_FUNCTION__=__func__ -DXMLSEC_NO_GOST=1 -DXMLSEC_NO_GOST2012=1 -DXMLSEC_DL_LIBLTDL=1 -I${prefix}/include/xmlsec1 -I/usr/include/libxml2 -I/usr/include/libxml2 -DXMLSEC_OPENSSL_100=1 -DXMLSEC_CRYPTO_OPENSSL=1"
+XMLSEC_LIBS="-L${exec_prefix}/lib -lxmlsec1-openssl -lxmlsec1 -lltdl -lxml2 -lxslt -lxml2 -lssl -lcrypto "
+MODULE_VERSION="xmlsec-1.2.23-openssl"
diff --git a/xmlsecConf.sh.in b/xmlsecConf.sh.in
index 19e1216..2f81eda 100644
--- a/xmlsecConf.sh.in
+++ b/xmlsecConf.sh.in
@@ -7,7 +7,7 @@ libdir="@libdir@"
includedir="@includedir@"
XMLSEC_LIBDIR="@XMLSEC_LIBDIR@"
-XMLSEC_INCLUDEDIR="@XMLSEC_CFLAGS@ -DXMLSEC_CRYPTO=\\\"@XMLSEC_CRYPTO@\\\""
+XMLSEC_INCLUDEDIR="@XMLSEC_CFLAGS@"
XMLSEC_LIBS="@XMLSEC_LIBS@"
-MODULE_VERSION="xmlsec- at VERSION@- at XMLSEC_CRYPTO@"
+MODULE_VERSION="xmlsec- at VERSION@- at XMLSEC_DEFAULT_CRYPTO@"
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-xml-sgml/xmlsec1.git
More information about the debian-xml-sgml-commit
mailing list